31 lines
836 B
Python
31 lines
836 B
Python
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()
|