import vk_api from config import Config from db import db, VkPost from datetime import datetime def publish_vk_posts(): vk_session = vk_api.VkApi(token=Config.VK_GROUP_TOKEN) vk = vk_session.get_api() posts = VkPost.query.filter( VkPost.published.is_(False), VkPost.publish_at <= datetime.utcnow() ).all() for post in posts: attachments = [] if post.image_path: upload = vk_api.VkUpload(vk_session) photo = upload.photo_wall(post.image_path, group_id=Config.VK_GROUP_ID) attachments.append(f"photo{photo[0]['owner_id']}_{photo[0]['id']}") vk.wall.post( owner_id=-Config.VK_GROUP_ID, message=post.text, attachments=",".join(attachments), ) post.published = True db.session.commit()