@tortyana

Как сохранить полученное от пользователя видео в class?

Вот есть такой код

class user_data(StatesGroup):
text_a = State()
photo_a = State()
video_a = State()
media_a = State()

@dp.message_handler(content_types=['video'], state=user_data.video_a)
async def data_video(message: types.Message, state: FSMContext) -> None:
async with state.proxy() as d_video:
d_video['video_a'] = message.video[0].file_id
await state.finish()

Но, при получении видео от пользователя, выскакивает вот такая вот ошибка

future: exception=KeyError(0)>
Traceback (most recent call last):
File "C:\Users\merif\PycharmProjects\bot_1_0\venv\lib\site-packages\aiogram\dispatcher\dispatcher.py", line 415, in _process_polling_updates
for responses in itertools.chain.from_iterable(await self.process_updates(updates, fast)):
File "C:\Users\merif\PycharmProjects\bot_1_0\venv\lib\site-packages\aiogram\dispatcher\dispatcher.py", line 235, in process_updates
return await asyncio.gather(*tasks)
File "C:\Users\merif\PycharmProjects\bot_1_0\venv\lib\site-packages\aiogram\dispatcher\handler.py", line 117, in notify
response = await handler_obj.handler(*args, **partial_data)
File "C:\Users\merif\PycharmProjects\bot_1_0\venv\lib\site-packages\aiogram\dispatcher\dispatcher.py", line 256, in process_update
return await self.message_handlers.notify(update.message)
File "C:\Users\merif\PycharmProjects\bot_1_0\venv\lib\site-packages\aiogram\dispatcher\handler.py", line 117, in notify
response = await handler_obj.handler(*args, **partial_data)
File "C:\Users\merif\PycharmProjects\bot_1_0\async_bot2.py", line 546, in data_video
d_video['video_a'] = message.video[0].file_id
File "C:\Users\merif\PycharmProjects\bot_1_0\venv\lib\site-packages\aiogram\types\base.py", line 234, in __getitem__
return self.values[item]
KeyError: 0

Как исправить ошибку?
  • Вопрос задан
  • 124 просмотра
Решения вопроса 1
febday
@febday
d_video['video_a'] = message.video.file_id

Вот только я не понимаю для чего вы записывает в стэйт данные и сразу же его завершаете. В чём смысл?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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