как дать боту понять в каком чате пишет сообщение пользователь. aiogram
хэндлер ловит сообщение, но дает неправильный вариант ответа. допускаю, что ошибся в логике, но в упор не вижу. по идее, получая команду /ban
бот проверяет, является ли чат - группой, если да, до баним юзера и удаляем наше сообщение, если нет, то отправляем сообщение о том, что мы пишем в приватном чате.
код ниже
@router3.message(Command("ban"))
async def ban_user(message: Message):
if message.chat.type == 'group':
if not message.reply_to_message:
await message.reply('This command needs to be as a reply to message')
return
await message.delete()
await message.bot.ban_chat_member(chat_id=message.chat.id, user_id=message.reply_to_message.from_user.id,
until_date=timedelta(seconds=29))
return await message.reply_to_message.reply('User has been banned')
else:
await message.answer("it's private chat")
Ответы (1 шт):
Автор решения: Ersamuel
→ Ссылка
Сейчас есть 4 типа чатов в телеграме: group
, supergroup
, channel
и private
. Скорее всего, вы проводили проверку в супергруппе, поэтому результат отрицательный. Условие стоит переписать так:
if message.chat.type in ('group', 'supergroup'):