Задать вопрос
@kavermoki
junior

Как выполнить функцию anti_flood только в чате игнорируя функцию в боте?

есть рабочая но и то абы как написана функция антифлуда:

async def anti_flood(*args, **kwargs):
    message = args[0]
    muteint = int(1)
    await message.answer(f"{message.from_user.first_name}, Бан 1 минута за флуд!")
    await bot.restrict_chat_member(message.chat.id, message.from_user.id, until_date=int(time.time()) + muteint*30)


Не знаю, правильно ли я описал обработчики, чувствую нет: (но работает)
@dp.message_handler(content_types=['text'])
@dp.throttled(anti_flood, rate=1)
async def main(message: types.Message):
    handle = None


Основная проблема заключается в том, что при флуде непосредственно в боте функция тоже работает, естественно бот не может заблокировать диалог со своим пользователем и пишет ошибку Method is available only for supergroups.

Понимаю, что нужно повесить проверку внутри функции anti_flood:
if message.from_user.id == message.chat.id:
............


но оно не работает...
  • Вопрос задан
  • 29 просмотров
Подписаться 1 Простой 4 комментария
Пригласить эксперта
Ваш ответ на вопрос

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

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