Comments 7
весь код будет без табуляции .. я так и не разобрался, как добавлять табуляцию на хабре
@bot.message_handler(commands=['unmute'])
def unmute_user(message):
if message.reply_to_message:
chat_id = message.chat.id
user_id = message.reply_to_message.from_user.id
# ...
Просто нажал [Tab] в начале нескольких строк (редактор вместо tab добавляет два пробела), всё ок ?
Если вставить (Ctrl + V) кусок кода из IDE/github, то получается так:
# Обработчик команды /start
@bot.message_handler(commands=['start'])
def start(message):
bot.reply_to(message, "Привет! Я бот для управления чатом. Напиши /help, чтобы узнать, что я умею.")
# Обработчик команды /help
Тестируем на жене
Просится фраза: В процессе теста ни одна жена не пострадала. :)
Вы храните статистику в словаре, а значит в памяти. При падении или перезапуске вся статистика обнулится, поэтому можно подключить простую tinydb.
В нескольких хендлерах вы проверяете статус юзера на админа ифами, нарушаете DRY :) может вынести в отдельную функцию и использовать оператор in?
Переменная duration с параметром по умолчанию намекает на то, что это константа, как и bad_words, можно вынести отдельно.
В хендлерк mute_user сно использовать моржовый оператор, где проверка args.
Как интересную опцию можно рассмотреть возможность по подозрительным словам отправлять сообщение на проверку с помощью open AI API чтобы нейросеть дала свое мнение спам ли это. Не помню сколько поддерживает запросов бесплатный тариф, но если делать так именно с подозрительными сообщения то возможно, что уложитесь во все лимиты и не будете банить за фразы типо «ребят, я тут вчера такую дурацкую анкету заполнял при отборе на позицию».
Только зачем бот с командами которые может выполнить админ группы в 2 клика
Пишем простого бота-администратора для Telegram на Python. Тестируем на жене