add mediaGroup func
This commit is contained in:
BIN
helper_bot/handlers/callback/__pycache__/main.cpython-312.pyc
Normal file
BIN
helper_bot/handlers/callback/__pycache__/main.cpython-312.pyc
Normal file
Binary file not shown.
@@ -8,7 +8,7 @@ from helper_bot.keyboards.main import create_keyboard_with_pagination, get_reply
|
||||
create_keyboard_for_ban_reason
|
||||
from helper_bot.utils.base_dependency_factory import BaseDependencyFactory
|
||||
from helper_bot.utils.helper_func import send_text_message, send_photo_message, get_banned_users_list, \
|
||||
get_banned_users_buttons, delete_user_blacklist, get_help_message_id, send_media_group_message
|
||||
get_banned_users_buttons, delete_user_blacklist, get_help_message_id, send_media_group_with_caption
|
||||
from logs.custom_logger import logger
|
||||
|
||||
callback_router = Router()
|
||||
@@ -31,8 +31,8 @@ BotDB = bdf.get_db()
|
||||
)
|
||||
async def post_for_group(call: CallbackQuery, state: FSMContext):
|
||||
logger.info(
|
||||
f'Получен callback-запрос с данными: {call.data} от пользователя {call.from_user.full_name} (ID: {call.from_user.id})')
|
||||
if call.data == 'publish' and call.message.content_type == 'text' and call.message.text != "^":
|
||||
f'Получен callback-запрос с действием: {call.data} от пользователя {call.from_user.full_name} (ID сообщения: {call.message.message_id})')
|
||||
if call.message.content_type == 'text' and call.message.text != "^":
|
||||
try:
|
||||
await send_text_message(MAIN_PUBLIC, call.message, call.message.text)
|
||||
await call.bot.delete_message(chat_id=GROUP_FOR_POST, message_id=call.message.message_id)
|
||||
@@ -43,7 +43,7 @@ async def post_for_group(call: CallbackQuery, state: FSMContext):
|
||||
text=f"Произошла ошибка: {str(e)}\n\nTraceback:\n{traceback.format_exc()}")
|
||||
logger.error(f'Ошибка при публикации текста в канал {MAIN_PUBLIC}: {str(e)}')
|
||||
await call.answer(text='Что-то пошло не так!', show_alert=True, cache_time=3)
|
||||
elif call.data == 'publish' and call.message.content_type == 'photo':
|
||||
elif call.message.content_type == 'photo':
|
||||
try:
|
||||
await send_photo_message(MAIN_PUBLIC, call.message, call.message.photo[-1].file_id, call.message.caption)
|
||||
await call.bot.delete_message(chat_id=GROUP_FOR_POST, message_id=call.message.message_id)
|
||||
@@ -54,18 +54,18 @@ async def post_for_group(call: CallbackQuery, state: FSMContext):
|
||||
text=f"Произошла ошибка: {str(e)}\n\nTraceback:\n{traceback.format_exc()}")
|
||||
logger.error(f'Ошибка при публикации фотографии в канал {MAIN_PUBLIC}: {str(e)}')
|
||||
await call.answer(text='Что-то пошло не так!', show_alert=True, cache_time=3)
|
||||
elif call.data == 'publish' and call.message.text == "^":
|
||||
print('Попали куда надо')
|
||||
elif call.message.text == "^":
|
||||
user_data = await state.get_data()
|
||||
print(f'В CALLBACK ГЕТ ДАТА: {user_data}')
|
||||
media_group_message_id = get_help_message_id(call.message.message_id, user_data)
|
||||
print(f'ПОЛУЧАЮ МЕССАГ ГРУПП АЙДИ ИЗ ГЕТ ДАТЫ: {media_group_message_id}')
|
||||
print(f'ИДЕНТИФИКАТОР СООБЩЕНИЯ У КОТОРОГО ЖМУ КОЛЛБЭК: {call.message.message_id}')
|
||||
await call.bot.copy_message(chat_id=MAIN_PUBLIC, from_chat_id=GROUP_FOR_POST, message_id=media_group_message_id, reply_markup=None)
|
||||
await call.bot.delete_message(chat_id=MAIN_PUBLIC, message_id=media_group_message_id)
|
||||
# Получил идентификатор последнего предложенного сообщения из кэша
|
||||
help_message = get_help_message_id(call.message.message_id, user_data)
|
||||
media_group_id = help_message-1
|
||||
post_content = BotDB.get_post_content_from_telegram_by_last_id(media_group_id)
|
||||
post_text = BotDB.get_post_text_from_telegram_by_last_id(media_group_id)
|
||||
await send_media_group_with_caption(bot=call.bot, chat_id=MAIN_PUBLIC, post_content=post_content, post_text=post_text)
|
||||
await call.answer(text='Выложено!', show_alert=True, cache_time=3)
|
||||
|
||||
|
||||
|
||||
@callback_router.callback_query(
|
||||
F.data == "decline"
|
||||
)
|
||||
|
||||
BIN
helper_bot/handlers/private/__pycache__/main.cpython-312.pyc
Normal file
BIN
helper_bot/handlers/private/__pycache__/main.cpython-312.pyc
Normal file
Binary file not shown.
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user