Как сделать, чтобы бот отправлял альбом из фотографий, отправленных пользователем? Как получать несколько фото в одном хендлере Aiogram?
Есть некий хендлер который ловит в себя фото и к примеру пересылает куда-то там.
@dp.message_handler(content_types=types.ContentTypes.PHOTO)
async def send_to_admin(message: types.Message):
await bot.send_photo(chat_id=ADMIN_ID, photo=message.photo[-1].file_id)
Так вот если этот юзер(который присылает боту фото) пришлет не одно а два и более, и они буду группированы вот так.
То возникает странная ситуация, хендлер реагирует на каждое отдельное фото, собственно отдельно. По факту он срабатывает дважды (по 1-му на фото), то есть наша message.photo имеет только вариации одной из фоток (размеры) но не имеет другого фото в себе.
Я написал программу, которая отправляет в чат альбом, но бот также отправляет первое фото из альбома:
Вот мой код:
media = []
async def get_state2(message: types.Message, state: FSMContext):
global media
if message.text == "Назад":
await FSMAdmin.state1.set()
await bot.send_message(message.from_user.id, 'Выберите город, в котором хотите выписать штраф',
reply_markup=clubs)
else:
photos = message.photo[-1].file_id.split()
media.append(InputMediaPhoto(photos[-1]))
media_files = media
await bot.send_media_group(chat_id=config.chat_id_zel, media=media)
await FSMAdmin.next()
await bot.send_message(message.from_user.id, 'Напишите нарушение', reply_markup=back_button_admin)
Источник: Stack Overflow на русском