Files
medods_vk/vk_handler.py
T
2025-12-20 13:59:31 +03:00

52 lines
1.6 KiB
Python

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 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}\n{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()