def import_data(request): if not request.user.is_authenticated: return Response({}) instance = Post.objects.filter( source__pexels=request.data.get("id")).first() if instance is None: media = Media.objects.save_url(url=request.data.get("download")) if media: username = request.data.get("user_username") fullname = request.data.get("user_full_name") user = User.objects.filter(username=username).first() if user is None: user = User.objects.create_user(username=username, password="******") Profile.objects.create(user=user, nick=fullname) source = {"pexels": request.data.get("id")} instance = Post(user=user, source=source, content=request.data.get("title")) instance.save() instance.medias.add(media) address = None if request.data.get("location"): addresses = get_addresses(search=request.data.get("location")) if len(addresses) > 0: address = addresses[0] action.send(sender=instance.user, verb='POSTED', action_object=instance, address=address) return Response({})
def handle(self, *args, **options): posts = Post.objects.filter(date_published__lte=timezone.now()) for post in posts: action.send( sender=post.user, verb='POSTED', action_object=post, address=post.address, destination=post.destination )
def create(self, request, *args, **kwargs): destination_id = request.data.get("destination") destination = Destination.objects.get(pk=int(destination_id)) serializer = self.get_serializer(data=request.data) serializer.is_valid(raise_exception=True) instance = self.perform_create(serializer) action.send(sender=instance.user, verb='POSTED', action_object=instance, destination=destination) headers = self.get_success_headers(serializer.data) return Response(serializer.data, status=status.HTTP_201_CREATED, headers=headers)
def get_action_id(app_id, slug, flag): if flag: q = Q(uid=int(slug)) else: if slug.isnumeric(): q = Q(id=int(slug)) else: q = Q(slug=slug) post = models.Post.objects.filter(q).first() if post is not None: if post.options is None: post.options = {} old_action = Action.objects.filter( id=post.options.get("action_post", 0)).first() if old_action is None and post.status == "POSTED": new_action = action.send( post.user, verb=verbs.POST_CREATED, action_object=post, target=post.primary_publication if post.primary_publication is not None else None) old_action = new_action[0][1] post.options['action_post'] = old_action.id post.save() return old_action.id return None
def on_post_save(sender, instance, created, *args, **kwargs): if created and instance.id and str(instance.id) not in instance.slug: if instance.status == "POSTED" and hasattr(instance, "id"): if instance.options is None: instance.options = {} if instance.options.get("action_post", None) is None: check = Action.objects.filter( verb=verbs.POST_CREATED, action_object_content_type=ContentType.objects.get( model='post'), action_object_object_id=str(instance.id)).first() if check is None and instance.user is not None: new_action = action.send( instance.user, verb=verbs.POST_CREATED, action_object=instance, target=instance.primary_publication if instance.primary_publication is not None else None) check = new_action[0][1] if check is not None: instance.options['action_post'] = check.id instance.save() if instance.id: terms = instance.terms.filter(options__sync=True) for term in terms: term.sync()
def my_cron_job(): lam = User.objects.get(pk=1) if lam.profile.options is None: lam.profile.options = {} is_running = lam.profile.options.get("cron_running", False) if not is_running: lam.profile.options["cron_running"] = True lam.profile.save() posts = Post.objects.filter(publish_status="PENDING", date_published__lte=timezone.now()) for post in posts: action.send(sender=post.user, verb='POSTED', action_object=post, address=post.address, destination=post.destination) post.publish_status = "POSTED" post.save() lam.profile.options["cron_running"] = False lam.profile.save()