Exemplo n.º 1
0
    def post(self, request):
        add_form = VkPostForm(request.user, data=request.POST)

        if add_form.is_valid():
            # сохранить пост в базу данных
            posts = add_form.add_posts()

            # отправить сообщение в планировщик
            for post in posts:
                helpers.send_to_scheduler(
                    dict(
                        action="add",
                        trigger_time=int(time.mktime(post.when_to_post.astimezone(pytz.utc).timetuple())),
                        data=dict(
                            antigate_key=request.POST.get("antigate_key", ""),
                            captcha_attempts=request.POST.get("captcha_attempts", ""),
                            captcha_attempts_delay=request.POST.get("captcha_attempts_delay", ""),
                            posting_delay=request.POST.get("posting_delay", ""),
                            lt_post_id=post.pk,
                            text=post.text,
                            owner_ids=post.owner_ids or "",
                            from_group=post.from_group,
                            attachments=post.attachments,
                            access_token=post.access_token,
                            action="add",
                        ),
                    )
                )

                if post.when_to_delete is not None:
                    helpers.send_to_scheduler(
                        dict(
                            action="add",
                            trigger_time=int(time.mktime(post.when_to_delete.astimezone(pytz.utc).timetuple())),
                            data=dict(access_token=post.access_token, lt_post_id=post.pk, action="delete"),
                        )
                    )

            # перенаправить на страницу с таблицей постов
            return {"error": False}
        else:
            # Отправить ответ пользователю
            return dict(error=True, errors=get_all_form_errors(add_form))