Возможно ли узнать, создан ли приватный чат с пользователем в боте на aiogram 2?

Да, возможно узнать, создан ли приватный чат с пользователем в боте на aiogram 2.

В aiogram 2 есть специальный класс types.Chat, который представляет собой сущность чата в терминах Telegram. У этого класса есть ряд полей, которые позволяют определить, является ли чат приватным или нет.

Одно из полей, которые помогают определить, является ли чат приватным или нет, - это поле type, которое может принимать одно из значений, определенных в types.ChatType. Если значение type равно ChatType.PRIVATE, то это означает, что чат является приватным.

Для того чтобы узнать, создан ли приватный чат с пользователем, необходимо получить объект types.Chat из сообщения, которое было получено в боте. В aiogram 2 это можно сделать с помощью атрибута chat у объекта types.Message, который содержит информацию о чате.

Пример кода, который позволяет определить, создан ли приватный чат с пользователем:

from aiogram import types

async def is_private_chat(message: types.Message) -> bool:
    chat: types.Chat = message.chat
    return chat.type == types.ChatType.PRIVATE

Вышеприведенная функция is_private_chat принимает объект types.Message и возвращает значение True, если чат является приватным, и False в противном случае.

Пример использования функции:

from aiogram import Bot, Dispatcher, types

async def on_message(message: types.Message):
    if await is_private_chat(message):
        print("Приватный чат")
    else:
        print("Не приватный чат")

bot = Bot("<token>")
dp = Dispatcher(bot)
dp.register_message_handler(on_message)

В приведенном примере функция on_message будет вызываться каждый раз, когда бот получает новое сообщение. Внутри функции мы вызываем is_private_chat, передавая ей объект types.Message, и в зависимости от результата выводим соответствующее сообщение.