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

Как выдать боту mute пользователю, если он материться?

есть список слов.
Как заставить бота выдать Mute пользователю, если слова, которые он печатает в чат совпадают с словами в списке.

@bot.message_handler(content_types=["text"])
def handle_text(message):
for x in blacklist:
if x in message.text:
bot.delete_message(message.chat.id, message.message_id)
time.sleep(1)
bot.send_message(message.chat.id, 'Заглушен на 15 мин!')

собственно вопрос, как дописать?
без использования БД.
  • Вопрос задан
  • 243 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 1
Zoominger
@Zoominger
System Integrator
без использования БД.

Никак. Ну то есть, конечно, можно базу хранить в виде массива в ОЗУ, но при перезапуске скрипта вы потеряете все данные о замьюченных пользователях и уже не разбаните их вовремя. Да. ещё можно костылить сохранение в файл, но зачем?

В общем виде задача выглядит так:
1. Допилить ваш скрипт для мьюта или временного бана, сохраняя в базе (или ОЗУ) данные о том, когда истекает срок бана каждого пользователя;
2. Каждую минуту (или секунду) пробегать по этой базе и разбанивать тех, чьё время разбана меньше текущего времени.

Ну и да, вордфильтр - это очень сложно. Всего-то стоит поменять один символ в слова "икс-игрек-и-неизвестная" на латинский и он не отработает.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы