Как боту группировать и пересылать фото?

Мне нужно, чтобы при пересылке комментария бот группировал фото и присылал мне с именем пользователя и комментом, а он шлёт каждое фото отдельно:

from telegram.ext import ApplicationBuilder, CommandHandler, MessageHandler, filters, ContextTypes

TOKEN = 
YOUR_CHAT_ID = 
EXCKUB_USER_IDS = 

async def start(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
    await update.message.reply_text('Бот запущен!')

async def forward_and_delete_comment(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
    # Получаем инфу о пользователе
    user = update.message.from_user
    user_info = f"Пользователь: {user.first_name} {user.last_name} (@{user.username})"
    # Проверка наличия пользователя в списке исключений 
    if user.id in EXCKUB_USER_IDS:
         return

    # Провека фоткрафии в сообщении
    if update.message.photo:
        # Если фотографии присутствуют, формируем список объектов InputMediaPhoto с одной фотографией
        media = [InputMediaPhoto(media=update.message.photo[-1].file_id, caption=f"{user_info}\n\n{update.message.caption}")]
        # Пересылаем фотографию с текстом комментария и информацией о пользователе
        await context.bot.send_media_group(chat_id=YOUR_CHAT_ID, media=media)
    else:
        # Если фотографии нет, просто пересылаем текст сообщения с информацией о пользователе
        await context.bot.send_message(chat_id=YOUR_CHAT_ID, text=f"{user_info}\n\n{update.message.text}")

    # Удаляем комментарий
    await context.bot.delete_message(chat_id=update.message.chat_id, message_id=update.message.message_id)

def main() -> None:
    app = ApplicationBuilder().token(TOKEN).build()

    # Обработка текстовых сообщений и сообщений с фотографиями, а также команды /start
    app.add_handler(MessageHandler(filters.TEXT | filters.PHOTO, forward_and_delete_comment))
    app.add_handler(CommandHandler('start', start))

    app.run_polling()

if __name__ == '__main__':
    main()

введите сюда описание изображения

А при использовании InputMediaPhoto с несколькими фото, а не с одной как в коде на данный момент, если пользователь прислал, например 3 фотографии, он пришлёт 3 сообщения с этими фотографиями по 4 сгруппированных копии (пример выше) вместо того, чтобы сгруппировать эти 3 фотографии в одном сообщении вместе с комментарием и именем пользователя.

Подскажите пожалуйста что можно сделать?


Ответы (0 шт):