Size: a a a

2021 March 26

ZM

Zbysław Majewski in Moscow Python
Артем Разуваев
Есть функция edit_message с помощью которой бот редактирует свои сообщения.
Я эту функцию юзаю для обновления инлайн клавиатуры и возвращаемых значений.
Есть у телеги такой косяк/баг/фича - при попытки вставить одинаковое сообщение - возвращает 400 и укладывает бота спать.
Я сделал заглушку в виде проверки того что мы подаем на редактирование .
Стало легче, но проблема не ушла.
Если задрочить кнопку (быстро понажимать) - произойдет 400.
сделай очередь того, что подаешь на редактирование. и при добавлении в нее проверяй.
источник

АР

Артем Разуваев... in Moscow Python
оно и так в очереди
источник

АР

Артем Разуваев... in Moscow Python
полинг работает как постоянный опрос тележного сервиса. там очередь
источник

ZM

Zbysław Majewski in Moscow Python
Артем Разуваев
оно и так в очереди
а при добавлении в очередь не проверяешь или проверяешь?
источник

АР

Артем Разуваев... in Moscow Python
в принципе если вкарячить задержку на повторную отправку запроса к АПИ, то наверно прокатит.
источник

АР

Артем Разуваев... in Moscow Python
Zbysław Majewski
а при добавлении в очередь не проверяешь или проверяешь?
нет конечно. яж не управляю очередью
источник

ZM

Zbysław Majewski in Moscow Python
Артем Разуваев
нет конечно. яж не управляю очередью
да не, я про очередь запросов на отправку на сервер, которая на твоей стороне. у меня бот, который спамеров режет. каждому дается таймаут на нажатие кнопки правильной. список чатИД + юзерИД хранится в очереди, которая с неким периодом обрабатывается и юзерИД или банится в чатИД, или освобождается,
источник

АР

Артем Разуваев... in Moscow Python
ааааа
источник

АР

Артем Разуваев... in Moscow Python
понял. очередь в памяти или приблуды какие то пользуешь?
источник

ZM

Zbysław Majewski in Moscow Python
Артем Разуваев
понял. очередь в памяти или приблуды какие то пользуешь?
просто в памяти словарь списков. хотел в redis хранить, но это оверинжиниринг был бы для простого тупого бота.
источник

АР

Артем Разуваев... in Moscow Python
Zbysław Majewski
просто в памяти словарь списков. хотел в redis хранить, но это оверинжиниринг был бы для простого тупого бота.
согласен. чем проще тем лучше. Но все равно остается вероятность укладки бота (
источник

АР

Артем Разуваев... in Moscow Python
ОК спасибо ща идею!
Ща погуглю немного и наверно реализую очередь
источник

ZM

Zbysław Majewski in Moscow Python
Артем Разуваев
согласен. чем проще тем лучше. Но все равно остается вероятность укладки бота (
да, sqlite думал прикрутить, чтоб хранить очередь там на случай падения бота. может когда-нибудь руки дойдут.
не уверен, что моя идея правильная, но как-то работает
источник

АР

Артем Разуваев... in Moscow Python
О! мне как раз его надо присобачить для хранения допущенных пользователей
источник

ZM

Zbysław Majewski in Moscow Python
Артем Разуваев
ОК спасибо ща идею!
Ща погуглю немного и наверно реализую очередь
источник

ZM

Zbysław Majewski in Moscow Python
Артем Разуваев
О! мне как раз его надо присобачить для хранения допущенных пользователей
это просто. обычная табличка чатИД, юзерИД, может чото еще.
источник

АР

Артем Разуваев... in Moscow Python
да понятное дело. пиви в руки и понеслась )
источник

И

Игорь in Moscow Python
только pickle, только хардкор!
источник

AT

Andrey Terekhov in Moscow Python
Блин, как мне нравится идея)
источник

АР

Артем Разуваев... in Moscow Python
Zbysław Majewski
это просто. обычная табличка чатИД, юзерИД, может чото еще.
bot.polling(none_stop=True)
А ларчик то просто открывался )

Суть такая: если этот параметр фолс (а он форл по дефолту), то при любой неведомой херне укладвать бота спать с кодом 0 При этом не выводить эксепшены.
Это прикол пакета pyTelergramBot
источник