@e56c00849db

Как можно определить отправил ли пользователь больше 3-х раз одну и туже команду?

В боте пользователь может постоянно нажимать на команды или кнопки.
Из-за этого бот начинает лагать у всех пользователей.

Как можно определить отправил ли пользователь допустим больше 3-х раз одну и туже команду и выдавать предупреждение о флуде?
  • Вопрос задан
  • 43 просмотра
Пригласить эксперта
Ответы на вопрос 2
fox_12
@fox_12 Куратор тега Python
Расставляю биты, управляю заряженными частицами
Запоминать событие нажатия кнопки в связке с уникальным id пользователя очевидно, - осуществлять суммирование событий с одинаковым id пользователя и проверку на превышение им порога.
Либо сразу переменную под пользователя заводить при первом событии и инкрементировать, и проверять ее на превышение порога.
Ответ написан
Комментировать
@rPman
Если один пользователь нажимая на кнопки может вызвать ddos у бота, то что то не так ты там сделал

на практике достаточно пользователю ограничить нажатие кнопки чаще чем определенное количество за N секунд, для этого сохраняешь в боте последние нажатия с timestamp их нажатия не больше time()-Nsec, и если количество записей в этом списке больше лимита (например 10) - возвращаешь сообщение - 'я тебе потыкаю, не тыкай мне'
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы