kuchuluk
@kuchuluk

Как в машинном состоянии принимать несколько файлов?

Всем привет.
Можно ли как-то в машинном состоянии отправлять несколько файлов?
У меня приведенный код принимает один файл нормально, а если несколько, то выходит из машинного состояния.
Или для принятия нескольких файлов нужно под каждый файл новое состояние?
Просто пользователь по задумке может отравить от одного до десяти файлов. И я изначально не знаю сколько он отправит и сколько тогда делать состояний
@dp.message_handler(content_types=['photo', 'document'], state=FileSendingGroup.file_for_send)
async def load_file(message: types.Message, state: FSMContext) -> None:
    async with state.proxy() as data:
        if message.photo:
            file_type = 'photo'
        elif message.document:
            file_type = 'document'
        else:
            file_type = None
        
        data['tg_id'] = message.from_user.id
        if file_type == 'document':
            data['file_id'] = message.document.file_id
            data['file_name'] = message.document.file_name
        else:
            data['file_id'] = None
            await message.answer("Извините, нужно отправить документ как файл.")
    await FileSendingGroup.next()
  • Вопрос задан
  • 96 просмотров
Пригласить эксперта
Ответы на вопрос 1
Vindicar
@Vindicar
RTFM!
await FileSendingGroup.next() выполняет переход на следующее состояние.
Если ты можешь понять, когда пользователь послал последний файл, выполняй этот переход только тогда.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы