await bot.delete_webhook(drop_pending_updates=True)
странно, что вроде вебхук, а работает даже с пуллингом :{
ага) ну все равно странно
А тебя не удивляет, что кикнуть человека из группы нужно методом unbanChatMember? :)
🤷♂ https://core.telegram.org/bots/api#deletewebhook
ну я так понимаю это же "фишка" телеги. Можно же по идее в самом фреймворке сделать нормальные функции, а обращаться к телеговским.
ну вот и сброс апдейтов через deleteWebhook — тоже фишка телеги)
> Можно же по идее в самом фреймворке сделать нормальные функции, а обращаться к телеговским. Есть риск "сломать" людям ботов. Ну типа когда у тебя метод называется skip_updates, а внутри делает delete_webhook, может сломаться получение апдейтов, если у человека настроены вебхуки
ну тип skip_updates же параметр только для пуллинга
только в двойке и там есть баг, когда последний апдейт всё равно прилетает
да, этот баг заставил меня делать подтверждение для /restart, так что можно сказать даже наставил на путь истинный) но все равно это лучше, чем отдельная функция, которая называется хер знает как и вообще к апдейтам в пуллинге не относится по идее
Или просто один раз запоминаешь решение и везде используешь, и не паришься
да, но я про то, что можно сделать это в фреймворке и облегчить жизнь многим новичкам, да и не только новичкам (и я не только про это, твой пример с киком по идее тоже можно нормально реализовать)
Делай issue на добавление skip_updates в тройку =) (если ещё нет)
Думал задокументировать что если нужен скип апдейтов, то в стартап добавлять вызов удаления вебхука
Как вариант, это минимальное изменение и ничего не ломает
Фикс уже в dev-2.x
Дока для 3ки актуальна, т.е. примеры? Просто кто-то говорил, что некоторые моменты поменялись
есть небольшие отличия
в том же порядке что и в документации и эта часть пишется не руками, а кодогенерацией.
а были случаи когда они меняли порядок?
бывает в середину списка добавляются новые аргументы
а проверку на присутствие вебхуков можно сделать?
API Reference: getWebhookInfo
if (await bot.get_webhook_info()).url: await bot.get_updates(offset=-1) else: await bot.delete_webhook(drop_pending_updates=True) Так же можно? Знаю, лишний запрос, нооо... Плюсов так и не нашёл
Чел, просто юзай await bot.delete_webhook(drop_pending_updates=True) Не важно, поллинг у тебя или вебхуки Просто если вебхуки, то не забывай потом ставить заново вебхук
ну да, но убирать вебхук чтобы удалить апдейты
Игнорируй)) но мы вот не нашли способа так сделать всё равно. Я вчера пытался
ну смотри, в каждом объекте обновления message, callback query ... есть дата отправки, можно просто добавить проверку при skip_updates на то, что обновление пришло после start_polling
а какой юзкейс, завершение работы бота?
quit(1)
quit сделан для интерактивного режима
должна быть функция позволяющая задать коллбэк при завершении скрипта
Обсуждают сегодня