170 похожих чатов

Всем привет. Пишу бота для телеги на питоне, обычный ассинхронный

TelegramBotAPI. При загрузке файла от пользователя на сервер по примеру из доки.

@bot.message_handler(content_types=['document'])
async def new_message(message: telebot.types.Message):
file_path = await bot.get_file(message.document.file_id)
result_message = await bot.send_message(message.chat.id, '<i>Downloading your file...</i>', parse_mode='HTML', disable_web_page_preview=True)
downloaded_file = await bot.download_file(file_path.file_path)
with open('{}-{}.csv'.format(message.from_user.username, data_iso), 'wb') as new_file:
new_file.write(downloaded_file)
await bot.edit_message_text(chat_id=message.chat.id, message_id=result_message.id, text='<i>Done!</i>', parse_mode='HTML')

Спустя секунд 20 после успешной загрузки ловлю ошибки.
2022-08-28 11:34:36,898 (asyncio_helper.py:80 MainThread) ERROR - TeleBot: "Aiohttp ClientError: ClientOSError"
2022-08-28 11:34:36,899 (async_telebot.py:317 MainThread) ERROR - TeleBot: "Request timeout. Request: method=get url=getUpdates params=<aiohttp.formdata.FormData object at 0x0000021ABFF12C40> files=None request_timeout=None"

Нагуглил что какая-то проблема с API у телеги, но сомневаюсь что это так. Все бы ничего, оно решается добавлением non_stop=True в asyncio.run(bot.polling()), но если параллельно выполняется ещё какая-то задача то она прерывается вместе с этой ошибкой и остается только перезапускать её.

Тут 2 решения как я понимаю, либо обработать исключение, либо исправить. Исправления в интернетах я не нашёл, поэтому остается только обрабатывать если прерывается.

Может кто-то сталкивался? Подскажите куда копать или как обработать это исключение.

Если тут такое не обсуждается или нарушает правила группы сори, тогда пните куда можно задать подобный вопрос.

4 ответов

46 просмотров

Количество запросов к апи считал?

https://t.me/ru_python/1842394

balrozhka://- Автор вопроса
Keen_k
Количество запросов к апи считал?

Нет, не считал. Вроде не больше 10 получается. файлы там маленькие совсем планирую перегонять. Признаться кроме как принтом и не умею считать их, будет здорово если сможете поделиться какой-нибудь ссылкой на то как это делать правильно.

balrozhka://- Автор вопроса
Keen_k
https://t.me/ru_python/1842394

Спасибо, попробую спросить там

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

Обсуждают сегодня

у меня такой вопрос про память в x86 возник, может кто пояснить?.. у процессора есть (как минимум) 3 типа адресов (названия "п1", "п2", "п3" --- мои, чтобы проще было дальше)...
Toideng
4
у процессора есть (как минимум) 3 типа адресов (названия "п1", "п2", "п3" --- мои, чтобы проще было дальше): - "п1" --- виртуальный адрес, то есть тот, который ресолвится в "п...
Toideng
2
а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Hello, I need a hand, this is my code: body: ExtendedImageGesturePageView.builder( scrollDirection: Axis.vertical, controller: _pageController, itemCou...
𝘞𝘦𝘢𝘳𝘪𝘯𝘨𝘔𝘦𝘥𝘢𝘭 🦋
1
читать файл максимально быстро? странный вопрос))
zamtmn
50
why html and css is not standard? i mean why different browser has their own engine and styles and how them work to show result to end user?
Mr Thieves
11
Господа, как быстро вставлять множество постов через wp_insert_post? использую wp_defer_term_counting wp_defer_comment_counting SET autocommit = 0 pre_wp_unique_post_slug но ...
Александр
4
TCodePointer = record cp: CodePointer; name: string; cnt: Integer; next: TCodePointerArray; // этот тип ещё неизвестен end; TCodePointerArray = array of ...
notme
9
Добрый день. Хочу сделать отрисовку по команде на панели. Почему-то рисуется только при втором вызове. С чем может быть связано, не подскажете? procedure TForm1.FormDblClick(...
Kirill Filippenok
20
Please any new resources to learn flutter?
Gbonafha Ayehnor
8
Карта сайта