Как обрабатывать media_group в aiogram

Как можно получить все файлы из media_group? Сейчас я обрабатываю входящие файлы так:

if message.photo:
     file_id = message.photo[-1].file_id
if message.document:
     file_id = message.document.file_id
     file_name = message.document.file_name
file_info = await bot.get_file(file_id)  # получаем информацию о файле
                logger.debug(file_info)
 
            # сохраняем файл
await bot.download_file(
                    file_info.file_path,
                    os.path.join(user_dir, file_info.file_path),
                )

Но, если пользователь скидывает сразу несколько файлов или фото, то в message приходит только один и добавляется поле media_group_id.

Как я понял, media_group_id это просто формальность для определения общности нескольких файлов. А сами файлы из медиагруппы приходят отдельными сообщениям. Тогда вопрос другой, как обработать несколько таких сообщений? Вот мой хэндлер

async def start_chat_with_manager(message: types.Message, state: FSMContext):
    """функция обработки состояния first_input"""
    logger.debug("Вызвана функция start_chat_with_manager")
    try:    
        await message.answer(text="Когда мастер вам ответит мы вас оповестим")    
        async with state.proxy() as data:
            if message.photo or message.document:
                # Проверяем путь к файлу, если нет создаем
                user_dir = await gen_user_web_folder(message.from_id)
                if not os.path.exists(user_dir):
                    os.makedirs(
                    user_dir, exist_ok=True
                )
                   
                # logger.debug(message)
                if message.photo:
                    file_id = message.photo[-1].file_id
                if message.document:
                    file_id = message.document.file_id
                    file_name = message.document.file_name
                file_info = await bot.get_file(file_id)  # получаем информацию о файле
            # сохраняем файл
                await bot.download_file(
                    file_info.file_path,
                    os.path.join(user_dir, file_info.file_path),
                )

И регистрирую я его так:

dp.register_message_handler(
            start_chat_with_manager,
            state=ManagerChatState.first_input,
            content_types=[
                types.ContentType.PHOTO,
                types.ContentType.DOCUMENT,
                types.ContentType.TEXT,
                types.ContentType.VIDEO
            ],
        ) 

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