@CodeWriterB

Как сделать проверку где писал user?

Мне надо сделать одного бота на чат и команды.

Бот в чате должен принимать команды. В личных сообщениях должен отвечать на запросы по клавиатуре.

т.е. допустим на команду /start бот не должен отвечать в чате а только в лс с ботом
@dp.message_handler(commands=['start'])
async def process_start_command(message: types.Message):
    await message.answer("Добро пожаловать в бота сети «ПарОк» по городу Волгоград")


но команду /ban он должен принимать именно в чате
@dp.message_handler(is_admin=True, commands=["ban"], commands_prefix="!/")
async def cmd_ban(message: types.Message):
    if not message.reply_to_message:
        await message.reply("Эта команда должна быть ответом на сообщение!")
        return

    await message.bot.delete_message(chat_id=config.GROUP_ID, message_id=message.message_id)
    await message.bot.kick_chat_member(chat_id=config.GROUP_ID, user_id=message.reply_to_message.from_user.id)

    await message.reply_to_message.reply("Пользавтель заблокирован")
  • Вопрос задан
  • 92 просмотра
Решения вопроса 1
Vindicar
@Vindicar
RTFM!
В официальном FAQ есть же.
How can I distinguish a User and a GroupChat in message.chat?
Telegram Bot API support new type Chat for message.chat.
Check the type attribute in Chat object:

if message.chat.type == "private":
	# private chat message

if message.chat.type == "group":
	# group chat message

if message.chat.type == "supergroup":
	# supergroup chat message

if message.chat.type == "channel":
	# channel message
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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