add mediaGroup func

This commit is contained in:
KatykhinAA
2024-07-17 00:15:15 +03:00
parent 88889fe87c
commit a3b53d26e2
9 changed files with 183 additions and 39 deletions

View File

@@ -17,9 +17,10 @@ from helper_bot.middlewares.blacklist_middleware import BlacklistMiddleware
from helper_bot.utils import messages
from helper_bot.utils.base_dependency_factory import BaseDependencyFactory
from helper_bot.utils.helper_func import get_first_name, get_text_message, send_text_message, send_photo_message, \
process_photo_album, send_media_group_message, check_username_and_full_name
send_media_group_message, process_photo_album, check_username_and_full_name
from logs.custom_logger import logger
private_router = Router()
private_router.message.middleware(AlbumMiddleware())
@@ -189,20 +190,28 @@ async def suggest_router(message: types.Message, state: FSMContext, album: list
await state.set_state("START")
elif message.media_group_id is not None:
post_caption = " "
# Получаем сообщение и проверяем есть ли подпись. Если подпись есть, то преобразуем ее через функцию
if album[0].caption:
lower_caption = album[0].caption.lower()
post_caption, is_anonymous = get_text_message(lower_caption, message.from_user.full_name,
message.from_user.username)
media_group = process_photo_album(album, post_caption)
media_group_message_id = await send_media_group_message(GROUP_FOR_POST, message,
media_group)
print(f'Отправил в чат предложки сообщения, media_group_message_id:{media_group_message_id}\n\n')
#Иначе обрабатываем фото и получаем медиагруппу
media_group = await process_photo_album(album, post_caption)
#Отправляем медиагруппу в секретный чат
media_group_message_id = await send_media_group_message(GROUP_FOR_POST, message, media_group)
sleep(0.2)
#Получаем клавиатуру и отправляем еще одно текстовое сообщение с кнопками
markup = get_reply_keyboard_for_post()
help_message_id = await send_text_message(GROUP_FOR_POST, message, "^", markup)
#Записываем в state идентификаторы текстового сообщения И последнего сообщения медиагруппы
await state.update_data(media_group_message_id=media_group_message_id, help_message_id=help_message_id)
d = await state.get_data()
print(f'ЗАПИСАЛ В state.update_data {d}')
#Получаем клавиатуру для пользователя, благодарим за пост, и возвращаем в дефолтное сообщение
markup_for_user = get_reply_keyboard(BotDB, message.from_user.id)
success_send_message = messages.get_message(get_first_name(message), 'SUCCESS_SEND_MESSAGE')
await message.answer(success_send_message, reply_markup=markup_for_user)