Исходный код maxo.types.chat

from datetime import datetime
from typing import Any

from maxo.enums.chat_status import ChatStatus
from maxo.enums.chat_type import ChatType
from maxo.errors import AttributeIsEmptyError
from maxo.omit import Omittable, Omitted, is_defined
from maxo.types.base import MaxoType
from maxo.types.image import Image
from maxo.types.message import Message
from maxo.types.user_with_photo import UserWithPhoto


[документация] class Chat(MaxoType): """ Объект содержит общую информацию о групповом чате или канале: его тип, настройки отображения (название, аватар, описание, ссылка), публичную доступность, а также информацию об участниках (владельце, боте и других пользователях), времени их последней активности и событиях Args: chat_id: ID чата или канала description: Описание чата или канала dialog_with_user: Данные о пользователе в диалоге (только для чатов типа `"dialog"`) icon: Иконка чата или канала is_public: Доступен ли чат публично (для диалогов всегда `false`) last_event_time: Время последнего события в чате или канале link: Ссылка на чат messages_count: Количество сообщений в групповых чатах и каналах owner_id: ID владельца чата или канала participants: Участники чата или канала с временем последней активности. Может быть `null`, если запрашивается список чатов participants_count: Количество участников чата или канала. Для диалогов всегда `2` pinned_message: Закреплённое сообщение в чате (возвращается только при запросе конкретного чата или канала) status: Статус чата: - `"active"` - Бот является активным участником чата - `"removed"` - Бот был удалён из чата - `"left"` - Бот покинул чат - `"closed"` - Чат был закрыт title: Отображаемое название чата или канала. Может быть `null` для диалогов type: Тип чата: - `"chat"` - Групповой чат - `"channel"` - Канал - `"dialog"` - Диалог """ chat_id: int """ID чата или канала""" is_public: bool """Доступен ли чат публично (для диалогов всегда `false`)""" last_event_time: datetime """Время последнего события в чате или канале""" participants_count: int """Количество участников чата или канала. Для диалогов всегда `2`""" status: ChatStatus """ Статус чата: - `"active"` - Бот является активным участником чата - `"removed"` - Бот был удалён из чата - `"left"` - Бот покинул чат - `"closed"` - Чат был закрыт """ type: ChatType """ Тип чата: - `"chat"` - Групповой чат - `"channel"` - Канал - `"dialog"` - Диалог """ description: str | None = None """Описание чата или канала""" icon: Image | None = None """Иконка чата или канала""" title: str | None = None """Отображаемое название чата или канала. Может быть `null` для диалогов""" chat_message_id: Omittable[str | None] = Omitted() """Идентификатор сообщения с кнопкой, через которую был инициирован чата""" dialog_with_user: Omittable[UserWithPhoto | None] = Omitted() """Данные о пользователе в диалоге (только для чатов типа `"dialog"`)""" link: Omittable[str | None] = Omitted() """Ссылка на чат""" messages_count: Omittable[int | None] = Omitted() """Количество сообщений в групповых чатах и каналах""" owner_id: Omittable[int | None] = Omitted() """ID владельца чата или канала""" participants: Omittable[dict[str, Any] | None] = Omitted() """Участники чата или канала с временем последней активности. Может быть `null`, если запрашивается список чатов""" pinned_message: Omittable[Message | None] = Omitted() """Закреплённое сообщение в чате (возвращается только при запросе конкретного чата или канала)""" @property def id(self) -> int: return self.chat_id @property def unsafe_chat_message_id(self) -> str: if is_defined(self.chat_message_id): return self.chat_message_id raise AttributeIsEmptyError( obj=self, attr="chat_message_id", ) @property def unsafe_description(self) -> str: if is_defined(self.description): return self.description raise AttributeIsEmptyError( obj=self, attr="description", ) @property def unsafe_dialog_with_user(self) -> UserWithPhoto: if is_defined(self.dialog_with_user): return self.dialog_with_user raise AttributeIsEmptyError( obj=self, attr="dialog_with_user", ) @property def unsafe_icon(self) -> Image: if is_defined(self.icon): return self.icon raise AttributeIsEmptyError( obj=self, attr="icon", ) @property def unsafe_link(self) -> str: if is_defined(self.link): return self.link raise AttributeIsEmptyError( obj=self, attr="link", ) @property def unsafe_messages_count(self) -> int: if is_defined(self.messages_count): return self.messages_count raise AttributeIsEmptyError( obj=self, attr="messages_count", ) @property def unsafe_owner_id(self) -> int: if is_defined(self.owner_id): return self.owner_id raise AttributeIsEmptyError( obj=self, attr="owner_id", ) @property def unsafe_participants(self) -> dict[str, Any]: if is_defined(self.participants): return self.participants raise AttributeIsEmptyError( obj=self, attr="participants", ) @property def unsafe_pinned_message(self) -> Message: if is_defined(self.pinned_message): return self.pinned_message raise AttributeIsEmptyError( obj=self, attr="pinned_message", ) @property def unsafe_title(self) -> str: if is_defined(self.title): return self.title raise AttributeIsEmptyError( obj=self, attr="title", )