from datetime import datetime import vk_api from db import VkAPI, db from medods_handler import setDynamicText def handle_vk_post(): from app import logger logger.info("Обновление поста") vkApi = VkAPI.query.first() if not vkApi: logger.error("Информация для работы не найдена") return vkPost = setDynamicText() if not vkPost: logger.error("Информация для размещения поста не найдена") return if not vkPost.dynamic_text: # if not vkPost.dynamic_text and not vkPost.post_id: logger.info("Не требуется публикация поста") return vk_session = vk_api.VkApi(token=vkApi.access_token) vk = vk_session.get_api() new_post = {} if vkPost.dynamic_text: new_post = vk.wall.post( owner_id=-vkApi.group_id, from_group=1, message=f"{vkPost.dynamic_text}{vkPost.static_text}".strip(), attachments=f"photo-{vkApi.group_id}_{vkApi.base_photo_url}", ) logger.info(f"Пост #{new_post.get('post_id')} создан") # if vkPost.post_id: # logger.info(f"Удаление поста #{vkPost.post_id}") # vk.wall.delete(owner_id=-vkApi.group_id, post_id=vkPost.post_id) # vkPost.post_id = None # vkPost.publish_at = None if vkPost.dynamic_text: vkPost.dynamic_text = None vkPost.post_id = new_post.get("post_id") vkPost.publish_at = datetime.now() db.session.commit()