Объект чата



from pyrogram import Client
import asyncio

api_id = 1111
api_hash = ""
group_url = "Test_group"
app = Client("my_session", api_id=api_id, api_hash=api_hash)
def main():
    with app:
        chat = app.get_chat(group_url)
        print(type(chat))

main()
<class 'pyrogram.types.user_and_chats.chat.Chat'>

Класс pyrogram.types.user_and_chats.chat.Chat представляет собой объект чата и содержит различные атрибуты и методы для работы с этим чатом.

Вот некоторые из атрибутов, которые могут быть доступны в объекте Chat:

chat.id — уникальный идентификатор чата;
chat.type — тип чата (может быть «private», «group», «supergroup» или «channel»);
chat.username — имя пользователя чата, если это личный чат, или @username канала/супергруппы;
chat.first_name и last_name — имя и фамилия пользователя, если это личный чат;
chat.title — название группы, супергруппы или канала;
chat.description — описание группы, супергруппы или канала;
chat.pinned_message — закрепленное сообщение в чате, если оно есть;
chat.permissions — права участников чата;
chat.photo — фотография профиля чата, если она установлена.

Этот JSON представляет собой словарь с информацией о чате в Telegram, полученной с использованием библиотеки Pyrogram. Вот описание каждой строки:

Для лучше читаемости, скопируйте этот JSON куда-нибудь где нет ограничений по длине строки.

{
    "_": "Chat",                            # Тип объекта, в данном случае это чат.
    "id": -1001792221154,                   # Уникальный идентификатор чата. (chat.id)
    "type": "ChatType.SUPERGROUP",          # Тип чата, в данном случае это супергруппа. (chat.type)
    "is_verified": false,                   # Флаг, показывающий, верифицирован ли чат. (chat.is_verified)
    "is_restricted": false,                 # Флаг, показывающий, ограничен ли доступ к чату. (chat.is_restricted)
    "is_creator": false,                    # Флаг, показывающий, является ли пользователь создателем чата. (chat.is_creator)
    "is_scam": false,                       # Флаг, показывающий, является ли чат мошенническим. (chat.is_scam)
    "is_fake": false,                       # Флаг, показывающий, является ли чат фальшивым. (chat.is_fake)
    "title": "Test_group",     # Название чата. (chat.title)
    "username": "Test_group",  # Имя пользователя чата (если это канал или супергруппа). (chat.username)
    "photo": {                              # Фотография профиля чата. (chat.photo)
        "_": "ChatPhoto",                   # Тип объекта, в данном случае это фотография чата.
        "small_file_id": "AQADAgAD7MxG4XoQUoAEAIAA57hUMAW____Ft-3784XVesABB4E",  # ID маленькой версии фотографии. (chat.photo.small_file_id)
        "small_photo_unique_id": "AgAD7MxG4XoQUo",                               # Уникальный ID маленькой версии фотографии. (chat.photo.small_photo_unique_id)
        "big_file_id": "AQADAgAD7MMx4XoQUoAEAMAA57hUMAW____Ft-3784XVesABB4E",    # ID большой версии фотографии. (chat.photo.big_file_id)
        "big_photo_unique_id": "AgAD7MMG4XoQUo"                                  # Уникальный ID большой версии фотографии. (chat.photo.big_photo_unique_id)
    },
    "description": "dgf8974503g+380553g4+556034+5j08456670k4865;740359-'4=0654544066f5450646554k0456678064+g466445+97460h4567321645k565789060k6758490546673574560+7tg456857+45680g766409j32740658974=-60954=56436540526531405g3254645625034535424365067h74563765j5646857k4063",  # Описание чата. (chat.description)
    "dc_id": 2,                             # ID центра данных, где хранится информация о чате. (chat.dc_id)
    "has_protected_content": false,         # Флаг, показывающий, содержит ли чат защищенный контент. (chat.has_protected_content)
    "pinned_message": {                     # Закрепленное сообщение в чате. (chat.pinned_message)
        "_": "Message",                     # Тип объекта, в данном случае это сообщение.
        "id": 330,                          # ID сообщения. (chat.pinned_message.id)
        "from_user": {                      # Пользователь, отправивший сообщение. (chat.pinned_message.from_user)
            "_": "User",                    # Тип объекта, в данном случае это пользователь.
            "id": 5769844345,               # ID пользователя. (chat.pinned_message.from_user.id)
            "is_self": false,               # Флаг, показывающий, является ли пользователь текущим пользователем. (chat.pinned_message.from_user.is_self)
            "is_contact": false,            # Флаг, показывающий, находится ли пользователь в контактах. (chat.pinned_message.from_user.is_contact)
            "is_mutual_contact": false,     # Флаг, показывающий, является ли пользователь взаимным контактом. (chat.pinned_message.from_user.is_mutual_contact)
            "is_deleted": false,            # Флаг, показывающий, удален ли аккаунт пользователя. (chat.pinned_message.from_user.is_deleted)
            "is_bot": false,                # Флаг, показывающий, является ли пользователь ботом. (chat.pinned_message.from_user.is_bot)
            "is_verified": false,           # Флаг, показывающий, верифицирован ли пользователь. (chat.pinned_message.from_user.is_verified)
            "is_restricted": false,         # Флаг, показывающий, ограничен ли доступ пользователя. (chat.pinned_message.from_user.is_restricted)
            "is_scam": false,               # Флаг, показывающий, является ли аккаунт пользователя мошенническим. (chat.pinned_message.from_user.is_scam)
            "is_fake": false,               # Флаг, показывающий, является ли аккаунт пользователя фальшивым. (chat.pinned_message.from_user.is_fake)
            "is_support": false,            # Флаг, показывающий, является ли пользователь сотрудником поддержки Telegram. (chat.pinned_message.from_user.is_support)
            "is_premium": false,            # Флаг, показывающий, является ли пользователь премиум-пользователем. (chat.pinned_message.from_user.is_premium)
            "first_name": "Larry",          # Имя пользователя. (chat.pinned_message.from_user.first_name)
            "last_name": "Summers",         # Фамилия пользователя. (chat.pinned_message.from_user.last_name)
            "status": "UserStatus.OFFLINE",             # Статус пользователя (в данном случае оффлайн). (chat.pinned_message.from_user.status)
            "last_online_date": "2025-01-24 15:39:57",  # Последняя дата онлайн. (chat.pinned_message.from_user.last_online_date)
            "username": "User123",                # Имя пользователя в Telegram. (chat.pinned_message.from_user.username)
            "dc_id": 5,                                 # ID центра данных, где хранится информация о пользователе. (chat.pinned_message.from_user.dc_id)
            "photo": {                                  # Фотография профиля пользователя. (chat.pinned_message.from_user.photo)
                "_": "ChatPhoto",                       # Тип объекта, в данном случае это фотография чата.
                "small_file_id": "AQADBQADAbEGw3rgFYAEAIAA8mhslkBAAPoL1uFHxdshAEHgQ",  # ID маленькой версии фотографии. (chat.pinned_message.from_user.photo.small_file_id)
                "small_photo_unique_id": "AgADAGw3rgFY",                                 # Уникальный ID маленькой версии фотографии. (chat.pinned_message.from_user.photo.small_photo_unique_id)
                "big_file_id": "AQADBQADAbExGw3gFYAEAMAA8mhslkBAAPoL1uFHxshgAEHgQ",    # ID большой версии фотографии. (chat.pinned_message.from_user.photo.big_file_id)
                "big_photo_unique_id": "AgADA3rgFY"                                     # Уникальный ID большой версии фотографии. (chat.pinned_message.from_user.photo.big_photo_unique_id)
            }
        },
        "date": "2025-01-24 15:27:03",          # Дата отправки сообщения. (chat.pinned_message.date)
        "chat": {                               # Чат, в котором было отправлено сообщение. (chat.pinned_message.chat)
                                                # ... (информация о чате, аналогична предыдущему описанию)
        },
        "mentioned": false,                     # Флаг, показывающий, упоминается ли в сообщении текущий пользователь. (chat.pinned_message.mentioned)
        "scheduled": false,                     # Флаг, показывающий, является ли сообщение запланированным. (chat.pinned_message.scheduled)
        "from_scheduled": false,                # Флаг, показывающий, отправлено ли сообщение из запланированных. (chat.pinned_message.from_scheduled)
        "media": "MessageMediaType.PHOTO",      # Тип медиа в сообщении (в данном случае фото). (chat.pinned_message.media)
        "has_protected_content": false,         # Флаг, показывающий, содержит ли сообщение защищенный контент. (chat.pinned_message.has_protected_content)
        "has_media_spoiler": false,             # Флаг, показывающий, содержит ли сообщение спойлер медиа. (chat.pinned_message.has_media_spoiler)
        "photo": {
            "_": "Photo",                       # Тип объекта
            "file_id": "AgACAgUAAx0CawoOYgACAUplQ1g5FZecjTHSMcKeyBXYOqQiEQACdLUxGztEeVb1sKmzMscIDgAIAQADAgADeAAHHgQ",  # ID файла фотографии (chat.pinned_message.photo.file_id)
            "file_unique_id": "AgADdLUxGztEeVY",    # Уникальный ID файла фотографии (chat.pinned_message.photo.file_unique_id)
            "width": 700,                           # Ширина фотографии (chat.pinned_message.photo.width)
            "height": 700,                          # Высота фотографии (chat.pinned_message.photo.height)
            "file_size": 72267,                     # Размер файла фотографии в байтах (chat.pinned_message.photo.file_size)
            "date": "2023-01-24 15:27:02",          # Дата отправки фотографии (chat.pinned_message.photo.date)
            "thumbs": [                             # Миниатюры фотографии (chat.pinned_message.photo.thumbs)
                {
                    "_": "Thumbnail",               # Тип объекта
                    "file_id": "AgACAgUAAx0awoOYgACAUplQ1g5FZecjTHSMcKeyBXYOqQiEQACdLUGztEeVb1sKmzMscIDgAIAQADAgADbQAHHgQ",  # ID файла миниатюры (chat.pinned_message.photo.thumbs[0].file_id)
                    "file_unique_id": "AgADdUxGztEeVY",    # Уникальный ID файла миниатюры (chat.pinned_message.photo.thumbs[0].file_unique_id)
                    "width": 320,                           # Ширина миниатюры (chat.pinned_message.photo.thumbs[0].width)
                    "height": 320,                          # Высота миниатюры (chat.pinned_message.photo.thumbs[0].height)
                    "file_size": 25406                      # Размер файла миниатюры в байтах (chat.pinned_message.photo.thumbs[0].file_size)
                }
            ]
        },
        "outgoing": false,  # Флаг, показывающий, является ли сообщение исходящим (chat.pinned_message.outgoing)
        "can_set_sticker_set": false,  # Флаг, показывающий, может ли пользователь устанавливать набор стикеров в чате (chat.can_set_sticker_set)
        "members_count": 20,  # Количество участников чата (chat.members_count)
        "permissions": {  # Права участников чата (chat.permissions)
            "_": "ChatPermissions",  # Тип объекта
            "can_send_messages": false,  # Флаг, показывающий, могут ли участники отправлять сообщения (chat.permissions.can_send_messages)
            "can_send_media_messages": false,  # Флаг, показывающий, могут ли участники отправлять медиа-сообщения (chat.permissions.can_send_media_messages)
            "can_send_other_messages": false,  # Флаг, показывающий, могут ли участники отправлять другие типы сообщений (chat.permissions.can_send_other_messages)
            "can_send_polls": false,  # Флаг, показывающий, могут ли участники отправлять опросы (chat.permissions.can_send_polls)
            "can_add_web_page_previews": false,  # Флаг, показывающий, могут ли участники добавлять предпросмотр веб-страниц (chat.permissions.can_add_web_page_previews)
            "can_change_info": false,  # Флаг, показывающий, могут ли участники изменять информацию о чате (chat.permissions.can_change_info)
            "can_invite_users": false,  # Флаг, показывающий, могут ли участники приглашать других пользователей (chat.permissions.can_invite_users)
            "can_pin_messages": false  # Флаг, показывающий, могут ли участники закреплять сообщения (chat.permissions.can_pin_messages)
        }
}

Предположим ваша цель добраться до значения  «big_photo_unique_id»: «AgADAbExGw3rgFY», необходимо использовать следующий путь chat.pinned_message.from_user.photo.big_photo_unique_id:

Этот путь обращается к следующим элементам в этой структуре данных:

chat — объект чата;
pinned_message — закрепленное сообщение в чате;
from_user — пользователь, отправивший закрепленное сообщение;
photo — фотография профиля пользователя.
big_photo_unique_id — уникальный идентификатор большой версии фотографии профиля пользователя.

Точка (.) в выражении chat.pinned_message.from_user.photo.big_photo_unique_id используется для доступа к атрибутам или свойствам объекта. Это называется «точечная нотация». Каждая точка в выражении указывает на переход к вложенному атрибуту или свойству объекта. Таким образом можно извлекать любые данные из любых объектов предоставляемые API Telegram.



Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: