コード例 #1
0
ファイル: views.py プロジェクト: hoanganhlam/FAVDES
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({})
コード例 #2
0
 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
         )
コード例 #3
0
ファイル: views.py プロジェクト: hoanganhlam/FAVDES
 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)
コード例 #4
0
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
コード例 #5
0
ファイル: signals.py プロジェクト: hoanganhlam/django_cms
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()
コード例 #6
0
ファイル: tasks.py プロジェクト: hoanganhlam/FAVDES
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()