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 решения как я понимаю, либо обработать исключение, либо исправить. Исправления в интернетах я не нашёл, поэтому остается только обрабатывать если прерывается.
Может кто-то сталкивался? Подскажите куда копать или как обработать это исключение.
Если тут такое не обсуждается или нарушает правила группы сори, тогда пните куда можно задать подобный вопрос.
Количество запросов к апи считал?
https://t.me/ru_python/1842394
Нет, не считал. Вроде не больше 10 получается. файлы там маленькие совсем планирую перегонять. Признаться кроме как принтом и не умею считать их, будет здорово если сможете поделиться какой-нибудь ссылкой на то как это делать правильно.
Спасибо, попробую спросить там
Обсуждают сегодня