Есть ли встроенная защита от спама ботам в телеге?

Вопрос просто - если моему боту в телеге начнут слать каждую секунду бесполезную фигню с целью нагрузить обрабатывающий сервер то телеграм через какой-то время ограничит отправку таких сообщений юзеру? Или мне надо самому это в боте писать фильтрацию? Там вообще на платформе есть какие-то лимиты отправляемых сообщений в минуту/час/сутки например?
  • Вопрос задан
  • 189 просмотров
Решения вопроса 2
@Redeve
Веб-макаке не хватит и 640гБ
то телеграм через какой-то время ограничит отправку таких сообщений юзеру?

Нет.
Или мне надо самому это в боте писать фильтрацию?

This. Хороший пример - MissRose_bot. Перестает отвечать в группе/лс, если там нафлудили ооочень много сообщений за короткий срок. Хотя сам бот продолжает работать в других чатах.
лимиты

30 сообщений в секунду; 20 сообщений в минуту в один чат/канал; 30 обращений в секунду к Bot API. Всё это снимается поддержкой телеграма, если обрастаете огромной аудиторией и упираетесь в лимиты
Ответ написан
Комментировать
@SashaN69
Школота
Вот если что-то не ясно помогу.
import time as tm
spams = {}
msgs = 4 # Messages in
max = 5 # Seconds
ban = 300 # Seconds
def is_spam(user_id):
    try:
        usr = spams[user_id]
        usr["messages"] += 1
    except:
        spams[user_id] = {"next_time": int(tm.time()) + max, "messages": 1, "banned": 0}
        usr = spams[user_id]
    if usr["banned"] >= int(tm.time()):
        return True
    else:
        if usr["next_time"] >= int(tm.time()):
            if usr["messages"] >= msgs:
                spams[user_id]["banned"] = tm.time() + ban
                # text = """You're banned for {} minutes""".format(ban/60)
                # bot.send_message(user_id, text)
                # User is banned! alert him...
                return True
        else:
            spams[user_id]["messages"] = 1
            spams[user_id]["next_time"] = int(tm.time()) + max
    return False
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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