Aiogram получение несколько фотографий от пользователя

Бот запрашивает до 10 фотографий от пользователя и пересылает их в канал. Пользователь выбирает их и отправляет сразу все фото альбомом. Раньше все работало, но недели две назад все поломалось и бот переотправляет в канал только первую фотографию.

handler

async def article_photo(message: types.Message, state: FSMContext, album: List[types.Message] = None):
    photos = []

    if album is None:
        if message.photo:
            photos.append(message.photo[-1].file_id)
            await state.update_data(photos=photos)
            await save_photos(message, state)
            return
        await message.answer(messages.PHOTO_ERROR)
        return

    for i, obj in enumerate(album):
        if obj.photo:
            file_id = obj.photo[-1].file_id
            photos.append(file_id)
    if len(photos) == 0:
        await message.answer(messages.PHOTO_ERROR)
        return

    await state.update_data(photos=photos)
    await save_photos(message, state)

middleware (подключен, если что)

class AlbumMiddleware(BaseMiddleware):
    """This middleware is for capturing media groups."""

    album_data: dict = {}

    def __init__(self, latency: Union[int, float] = 0.01):
        """
        You can provide custom latency to make sure
        albums are handled properly in highload.
        """
        self.latency = latency
        super().__init__()

    async def on_process_message(self, message: types.Message, data: dict):
        if not message.media_group_id:
            return

        try:
            self.album_data[message.media_group_id].append(message)
            raise CancelHandler()  # Tell aiogram to cancel handler for this group element
        except KeyError:
            self.album_data[message.media_group_id] = [message]
            await asyncio.sleep(self.latency)

            message.conf["is_last"] = True
            data["album"] = self.album_data[message.media_group_id]

    async def on_post_process_message(self, message: types.Message, result: dict, data: dict):
        """Clean up after handling our album."""
        if message.media_group_id and message.conf.get("is_last"):
            del self.album_data[message.media_group_id]

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