refactor MediaGroup. Add database

This commit is contained in:
KatykhinAA
2024-07-20 16:54:43 +03:00
parent 54234e59ec
commit 0b7f718f8a
11 changed files with 193 additions and 92 deletions

View File

@@ -4,6 +4,8 @@ import sys
from database.db import BotDB
current_dir = os.getcwd()
class BaseDependencyFactory:
def __init__(self):
@@ -12,7 +14,7 @@ class BaseDependencyFactory:
self.config = configparser.ConfigParser()
self.config.read(config_path)
self.settings = {}
self.database = BotDB('database/tg-bot-database')
self.database = BotDB(current_dir, 'database/tg-bot-database')
for section in self.config.sections():
self.settings[section] = {}

View File

@@ -85,28 +85,26 @@ async def prepare_media_group_from_middlewares(album, post_caption: str = ''):
return media_group # Возвращаем MediaGroup
async def add_in_db_media(sent_message, post_caption: str = ''):
async def add_in_db_media(sent_message):
"""
Идентификатор медиа-группы
Args:
sent_message: sent_message объект из Telegram API.
post_caption: Текст подписи к первому фото.
sent_message: sent_message объект из Telegram API
Returns:
Список InputMediaPhoto.
"""
media_group_message_id = sent_message[0].message_id # Получаем идентификатор медиа-группы
media_group_message_id = sent_message[-1].message_id # Получаем идентификатор медиа-группы
for i, message in enumerate(sent_message):
file_id = message.photo[-1].file_id
file_path = await download_photo(message, file_id=file_id)
if i == 0:
BotDB.add_post_from_telegram_in_db(media_group_message_id, message.message_id, 0, file_path, post_caption)
BotDB.add_post_content_in_db(media_group_message_id, message.message_id, file_path)
elif i == len(sent_message) - 1:
BotDB.add_post_from_telegram_in_db(media_group_message_id, message.message_id, 1, file_path, post_caption)
BotDB.add_post_content_in_db(media_group_message_id, message.message_id, file_path)
else:
BotDB.add_post_from_telegram_in_db(media_group_message_id, message.message_id, 0, file_path, post_caption)
return media_group_message_id
BotDB.add_post_content_in_db(media_group_message_id, message.message_id, file_path)
async def send_media_group_message_to_private_chat(chat_id: int, message: types.Message,
@@ -115,7 +113,8 @@ async def send_media_group_message_to_private_chat(chat_id: int, message: types.
chat_id=chat_id,
media=media_group,
)
await add_in_db_media(sent_message, post_caption=sent_message[-1].caption)
BotDB.add_post_in_db(sent_message[-1].message_id, sent_message[-1].caption, message.from_user.id)
await add_in_db_media(sent_message)
message_id = sent_message[-1].message_id
return message_id