Задать вопрос
@Trefame

Как защитить бота Telegram от спама?

Возникла проблема с моим ботом телеграмм, один из его пользователей, каким то софтом решил его заспамить - получилось вполне успешно, бот лег. Как можно реализовать систему антиспама, чтобы при попытке отправить допустим больше одного сообщение в 5 секунд - приходило стоп-сообщение: Между сообщениями должна быть пауза 5 секунд! За продолжение спама Вы можете быть заблокированы. Если пользователь проигнорировал предупреждение и отправил допустим больше 5 сообщений без паузы, то его аккаунт, который я храню в базе данных приобретал статус - Заблокирован, а бот проверял статус пользователя и если он заблокирован, просто завершал работу через exit(), но это неважно, главное то, как мне хранить оставшееся время и прочее? Ничего в голову не приходит..
  • Вопрос задан
  • 3564 просмотра
Подписаться 1 Средний Комментировать
Ответ пользователя Kiki_iki К ответам на вопрос (4)
@Kiki_iki
Друзья, кому интересен реализованный код:

@bot.message_handler(func=lambda message: True)
def echo_all(message):
if message.from_user.id not in last_message:
last_message[message.from_user.id] = message.date - 5
print(last_message)
if message.date - last_message[message.from_user.id] > 5:
bot.reply_to(message, message.text)
last_message[message.from_user.id] = message.date
print(last_message)

last_message = {}
bot.polling()
Ответ написан
Комментировать