Перейти к содержанию

Package: maxapi.types.updates

maxapi.types.updates

base_update

BaseUpdate

Bases: BaseModel, BotMixin

Базовая модель обновления.

Attributes:

Name Type Description
update_type UpdateType

Тип обновления.

timestamp int

Временная метка обновления.

bot_added

BotAdded

Bases: BaseUpdate

Обновление, сигнализирующее о добавлении бота в чат.

Attributes:

Name Type Description
chat_id int

Идентификатор чата, куда добавлен бот.

user User

Объект пользователя-бота.

is_channel bool

Указывает, был ли бот добавлен в канал или нет

bot_removed

BotRemoved

Bases: BaseUpdate

Обновление, сигнализирующее об удалении бота из чата.

Attributes:

Name Type Description
chat_id int

Идентификатор чата, из которого удалён бот.

user User

Объект пользователя-бота.

is_channel bool

Указывает, был ли пользователь добавлен в канал или нет

bot_started

BotStarted

Bases: BaseUpdate

Обновление, сигнализирующее о первом старте бота.

Attributes:

Name Type Description
chat_id int

Идентификатор чата.

user User

Пользователь (бот).

user_locale Optional[str]

Локаль пользователя.

payload Optional[str]

Дополнительные данные.

bot_stopped

BotStopped

Bases: BaseUpdate

Обновление, сигнализирующее об остановке бота.

Attributes:

Name Type Description
chat_id int

Идентификатор чата.

user User

Пользователь (бот).

user_locale Optional[str]

Локаль пользователя.

payload Optional[str]

Дополнительные данные.

chat_title_changed

ChatTitleChanged

Bases: BaseUpdate

Обновление, сигнализирующее об изменении названия чата.

Attributes:

Name Type Description
chat_id Optional[int]

Идентификатор чата.

user User

Пользователь, совершивший изменение.

title str

Новое название чата.

dialog_cleared

DialogCleared

Bases: BaseUpdate

Обновление, сигнализирующее об очистке диалога с ботом.

Attributes:

Name Type Description
chat_id int

Идентификатор чата.

user User

Пользователь (бот).

user_locale Optional[str]

Локаль пользователя.

dialog_muted

DialogMuted

Bases: BaseUpdate

Обновление, сигнализирующее об отключении оповещений от бота.

Attributes:

Name Type Description
chat_id int

Идентификатор чата.

muted_until int

Время до включения оповещений от бота.

user User

Пользователь (бот).

user_locale Optional[str]

Локаль пользователя.

dialog_removed

DialogRemoved

Bases: BaseUpdate

Обновление, сигнализирующее об удалении диалога с ботом.

Attributes:

Name Type Description
chat_id int

Идентификатор чата.

user User

Пользователь (бот).

user_locale Optional[str]

Локаль пользователя.

dialog_unmuted

DialogUnmuted

Bases: BaseUpdate

Обновление, сигнализирующее о включении оповещений от бота.

Attributes:

Name Type Description
chat_id int

Идентификатор чата.

user User

Пользователь (бот).

user_locale Optional[str]

Локаль пользователя.

message_callback

Message

Bases: BaseModel, BotMixin

Модель сообщения.

Attributes:

Name Type Description
sender Optional[User]

Отправитель сообщения, может быть None, если сообщение отправлено каналом https://github.com/love-apples/maxapi/discussions/14.

recipient Recipient

Получатель сообщения.

timestamp int

Временная метка сообщения.

link Optional[LinkedMessage]

Связанное сообщение. Может быть None.

body Optional[MessageBody]

Содержимое сообщения. Текст + вложения. Может быть null, если сообщение содержит только пересланное сообщение

stat Optional[MessageStat]

Статистика сообщения. Может быть None.

url Optional[str]

URL сообщения. Может быть None.

bot Optional[Bot]

Объект бота, исключается из сериализации.

answer(text=None, attachments=None, link=None, format=None, parse_mode=None, *, notify=None, disable_link_preview=None, sleep_after_input_media=True) async

Отправляет сообщение (автозаполнение chat_id, user_id).

Parameters:

Name Type Description Default
text str

Текст ответа. Может быть None.

None
link NewMessageLink

Связь с другим сообщением. Может быть None.

None
format TextFormat

Режим форматирования текста. Может быть None.

None
parse_mode ParseMode

Режим форматирования текста. Может быть None.

None
notify bool

Флаг отправки уведомления. По умолчанию True.

None
disable_link_preview bool

Флаг генерации превью.

None
sleep_after_input_media bool

Флаг задержки после отправки вложений типа InputMedia. По умолчанию True.

True

Returns:

Type Description
SendedMessage | None

Optional[SendedMessage]: Результат выполнения метода send_message бота.

Source code in maxapi/types/message.py
async def answer(
    self,
    text: str | None = None,
    attachments: list[
        Attachment | InputMedia | InputMediaBuffer | AttachmentUpload
    ]
    | None = None,
    link: NewMessageLink | None = None,
    format: TextFormat | None = None,
    parse_mode: ParseMode | None = None,
    *,
    notify: bool | None = None,
    disable_link_preview: bool | None = None,
    sleep_after_input_media: bool | None = True,
) -> SendedMessage | None:
    """
    Отправляет сообщение (автозаполнение chat_id, user_id).

    Args:
        text (str, optional): Текст ответа. Может быть None.
        attachments (List[Attachment | InputMedia | InputMediaBuffer
            | AttachmentUpload], optional): Список вложений.
            Может быть None.
        link (NewMessageLink, optional): Связь с другим сообщением.
            Может быть None.
        format (TextFormat, optional): Режим форматирования текста.
            Может быть None.
        parse_mode (ParseMode, optional): Режим форматирования текста.
            Может быть None.
        notify (bool): Флаг отправки уведомления. По умолчанию True.
        disable_link_preview (bool, optional): Флаг генерации превью.
        sleep_after_input_media (bool, optional): Флаг задержки
            после отправки вложений типа InputMedia. По умолчанию True.

    Returns:
        Optional[SendedMessage]: Результат выполнения метода
            send_message бота.
    """

    return await self._ensure_bot().send_message(
        chat_id=self.recipient.chat_id,
        user_id=self.recipient.user_id,
        text=text,
        attachments=attachments,
        link=link,
        notify=notify,
        format=format,
        parse_mode=parse_mode,
        disable_link_preview=disable_link_preview,
        sleep_after_input_media=sleep_after_input_media,
    )
reply(text=None, attachments=None, format=None, parse_mode=None, *, notify=None, disable_link_preview=None, sleep_after_input_media=True) async

Отправляет ответное сообщение (автозаполнение chat_id, user_id, link).

Parameters:

Name Type Description Default
text str

Текст ответа. Может быть None.

None
notify bool

Флаг отправки уведомления. По умолчанию True.

None
format TextFormat

Режим форматирования текста. Может быть None.

None
parse_mode ParseMode

Режим форматирования текста. Может быть None.

None
disable_link_preview bool

Флаг генерации превью.

None
sleep_after_input_media bool | None

Optional[bool] = True,

True

Returns:

Type Description
SendedMessage | None

Optional[SendedMessage]: Результат выполнения метода send_message бота.

Source code in maxapi/types/message.py
async def reply(
    self,
    text: str | None = None,
    attachments: list[
        Attachment | InputMedia | InputMediaBuffer | AttachmentUpload
    ]
    | None = None,
    format: TextFormat | None = None,
    parse_mode: ParseMode | None = None,
    *,
    notify: bool | None = None,
    disable_link_preview: bool | None = None,
    sleep_after_input_media: bool | None = True,
) -> SendedMessage | None:
    """
    Отправляет ответное сообщение (автозаполнение chat_id, user_id, link).

    Args:
        text (str, optional): Текст ответа. Может быть None.
        attachments (List[Attachment | InputMedia | InputMediaBuffer
            | AttachmentUpload], optional): Список вложений.
            Может быть None.
        notify (bool): Флаг отправки уведомления. По умолчанию True.
        format (TextFormat, optional): Режим форматирования текста.
            Может быть None.
        parse_mode (ParseMode, optional): Режим форматирования текста.
            Может быть None.
        disable_link_preview (bool, optional): Флаг генерации превью.
        sleep_after_input_media: Optional[bool] = True,

    Returns:
        Optional[SendedMessage]: Результат выполнения метода
            send_message бота.
    """

    if self.body is None:
        msg = "Невозможно ответить: поле body отсутствует у сообщения"
        raise ValueError(msg)

    if self.recipient.chat_id is None:
        msg = "Невозможно ответить: chat_id отсутствует"
        raise ValueError(msg)

    return await self._ensure_bot().send_message(
        chat_id=self.recipient.chat_id,
        user_id=self.recipient.user_id,
        text=text,
        attachments=attachments,
        link=NewMessageLink(type=MessageLinkType.REPLY, mid=self.body.mid),
        notify=notify,
        format=format,
        parse_mode=parse_mode,
        disable_link_preview=disable_link_preview,
        sleep_after_input_media=sleep_after_input_media,
    )
forward(chat_id, user_id=None, attachments=None, format=None, parse_mode=None, *, notify=None, disable_link_preview=None, sleep_after_input_media=True) async

Пересылает отправленное сообщение в указанный чат. (автозаполнение link)

Parameters:

Name Type Description Default
chat_id int

ID чата для отправки (обязателен, если не указан user_id)

required
user_id int

ID пользователя для отправки (обязателен, если не указан chat_id). По умолчанию None

None
notify bool

Флаг отправки уведомления. По умолчанию True.

None
format TextFormat

Режим форматирования текста. Может быть None.

None
parse_mode ParseMode

Режим форматирования текста. Может быть None.

None
disable_link_preview bool

Флаг генерации превью.

None
sleep_after_input_media bool | None

Optional[bool] = True,

True

Returns:

Type Description
SendedMessage | None

Optional[SendedMessage]: Результат выполнения метода send_message бота.

Source code in maxapi/types/message.py
async def forward(
    self,
    chat_id: int | None,
    user_id: int | None = None,
    attachments: list[
        Attachment | InputMedia | InputMediaBuffer | AttachmentUpload
    ]
    | None = None,
    format: TextFormat | None = None,
    parse_mode: ParseMode | None = None,
    *,
    notify: bool | None = None,
    disable_link_preview: bool | None = None,
    sleep_after_input_media: bool | None = True,
) -> SendedMessage | None:
    """
    Пересылает отправленное сообщение в указанный чат.
    (автозаполнение link)

    Args:
        chat_id (int): ID чата для отправки (обязателен, если не
            указан user_id)
        user_id (int): ID пользователя для отправки (обязателен,
            если не указан chat_id). По умолчанию None
        attachments (List[Attachment | InputMedia | InputMediaBuffer
            | AttachmentUpload], optional): Список вложений.
            Может быть None.
        notify (bool): Флаг отправки уведомления. По умолчанию True.
        format (TextFormat, optional): Режим форматирования
            текста. Может быть None.
        parse_mode (ParseMode, optional): Режим форматирования
            текста. Может быть None.
        disable_link_preview (bool, optional): Флаг генерации превью.
        sleep_after_input_media: Optional[bool] = True,

    Returns:
        Optional[SendedMessage]: Результат выполнения метода
            send_message бота.
    """

    if self.body is None:
        msg = "Невозможно переслать: поле body отсутствует у сообщения"
        raise ValueError(msg)

    return await self._ensure_bot().send_message(
        chat_id=chat_id,
        user_id=user_id,
        attachments=attachments,
        link=NewMessageLink(
            type=MessageLinkType.FORWARD, mid=self.body.mid
        ),
        notify=notify,
        format=format,
        parse_mode=parse_mode,
        disable_link_preview=disable_link_preview,
        sleep_after_input_media=sleep_after_input_media,
    )
edit(text=None, attachments=None, link=None, format=None, parse_mode=None, *, notify=True, sleep_after_input_media=True) async

Редактирует текущее сообщение.

Parameters:

Name Type Description Default
text str

Новый текст сообщения. Может быть None.

None
link NewMessageLink

Новая связь с сообщением. Может быть None.

None
format TextFormat

Режим форматирования текста. Может быть None.

None
parse_mode ParseMode

Режим форматирования текста. Может быть None.

None
notify bool

Флаг отправки уведомления. По умолчанию True.

True
sleep_after_input_media bool

Флаг задержки после отправки вложений типа InputMedia. По умолчанию True.

True

Returns: Optional[EditedMessage]: Результат выполнения метода edit_message бота.

Source code in maxapi/types/message.py
async def edit(
    self,
    text: str | None = None,
    attachments: list[
        Attachment | InputMedia | InputMediaBuffer | AttachmentUpload
    ]
    | list[Attachments]
    | None = None,
    link: NewMessageLink | None = None,
    format: TextFormat | None = None,
    parse_mode: ParseMode | None = None,
    *,
    notify: bool = True,
    sleep_after_input_media: bool | None = True,
) -> EditedMessage | None:
    """
    Редактирует текущее сообщение.

    Args:
        text (str, optional): Новый текст сообщения. Может быть None.
        attachments (List[Attachment | InputMedia | InputMediaBuffer |
            AttachmentUpload], optional): Новые вложения. Может быть None.
        link (NewMessageLink, optional): Новая связь с сообщением.
            Может быть None.
        format (TextFormat, optional): Режим форматирования текста.
            Может быть None.
        parse_mode (ParseMode, optional): Режим форматирования текста.
            Может быть None.
        notify (bool): Флаг отправки уведомления. По умолчанию True.
        sleep_after_input_media (bool, optional): Флаг задержки
            после отправки вложений типа InputMedia. По умолчанию True.
    Returns:
        Optional[EditedMessage]: Результат выполнения метода
            edit_message бота.
    """

    if link is None and self.link:
        link = NewMessageLink(
            type=self.link.type, mid=self.link.message.mid
        )

    if (
        attachments is None
        and self.body is not None
        and self.body.attachments
    ):
        attachments = self.body.attachments

    if self.body is None:
        msg = "Невозможно редактировать: поле body отсутствует у сообщения"
        raise ValueError(msg)

    return await self._ensure_bot().edit_message(
        message_id=self.body.mid,
        text=text,
        attachments=attachments,
        link=link,
        notify=notify,
        format=format,
        parse_mode=parse_mode,
        sleep_after_input_media=sleep_after_input_media,
    )
delete() async

Удаляет текущее сообщение.

Returns:

Name Type Description
DeletedMessage DeletedMessage

Результат выполнения метода delete_message бота.

Source code in maxapi/types/message.py
async def delete(self) -> DeletedMessage:
    """
    Удаляет текущее сообщение.

    Returns:
        DeletedMessage: Результат выполнения метода delete_message бота.
    """

    if self.body is None:
        msg = "Невозможно удалить: поле body отсутствует у сообщения"
        raise ValueError(msg)

    return await self._ensure_bot().delete_message(
        message_id=self.body.mid,
    )
pin(*, notify=True) async

Закрепляет текущее сообщение в чате.

Parameters:

Name Type Description Default
notify bool

Флаг отправки уведомления. По умолчанию True.

True

Returns:

Name Type Description
PinnedMessage PinnedMessage

Результат выполнения метода pin_message бота.

Source code in maxapi/types/message.py
async def pin(self, *, notify: bool = True) -> PinnedMessage:
    """
    Закрепляет текущее сообщение в чате.

    Args:
        notify (bool): Флаг отправки уведомления. По умолчанию True.

    Returns:
        PinnedMessage: Результат выполнения метода pin_message бота.
    """

    if self.body is None:
        msg = "Невозможно закрепить: поле body отсутствует у сообщения"
        raise ValueError(msg)

    if self.recipient.chat_id is None:
        raise ValueError("chat_id не может быть None")

    return await self._ensure_bot().pin_message(
        chat_id=self.recipient.chat_id,
        message_id=self.body.mid,
        notify=notify,
    )

MessageForCallback

Bases: BaseModel

Модель сообщения для ответа на callback-запрос.

Attributes:

Name Type Description
text Optional[str]

Текст сообщения.

link Optional[NewMessageLink]

Связь с другим сообщением.

notify Optional[bool]

Отправлять ли уведомление.

format Optional[ParseMode]

Режим разбора текста.

MessageCallback

Bases: BaseUpdate

Обновление с callback-событием сообщения.

Attributes:

Name Type Description
message Optional[Message]

Изначальное сообщение, содержащее встроенную клавиатуру. Может быть null, если оно было удалено к моменту, когда бот получил это обновление.

user_locale Optional[str]

Локаль пользователя.

callback Callback

Объект callback.

get_ids()

Возвращает кортеж идентификаторов (chat_id, user_id).

Returns:

Type Description
tuple[int | None, int]

tuple[Optional[int], int]: Идентификаторы чата и пользователя.

Source code in maxapi/types/updates/message_callback.py
def get_ids(self) -> tuple[int | None, int]:
    """
    Возвращает кортеж идентификаторов (chat_id, user_id).

    Returns:
        tuple[Optional[int], int]: Идентификаторы чата и пользователя.
    """

    chat_id: int | None = None
    if self.message is not None:
        chat_id = self.message.recipient.chat_id

    return chat_id, self.callback.user.user_id
answer(notification=None, new_text=None, link=None, format=None, *, notify=True, raise_if_not_exists=True) async

Отправляет ответ на callback с возможностью изменить текст, вложения и параметры уведомления.

Parameters:

Name Type Description Default
notification str

Текст уведомления.

None
new_text Optional[str]

Новый текст сообщения.

None
link Optional[NewMessageLink]

Связь с другим сообщением.

None
notify bool

Отправлять ли уведомление.

True
format Optional[ParseMode]

Режим разбора текста.

None
raise_if_not_exists bool

Выдавать ошибку при отсутствии сообщения, если пытаются изменить его содержимое (new_text/link/format).

True

Returns:

Name Type Description
SendedCallback SendedCallback

Результат вызова send_callback бота.

Source code in maxapi/types/updates/message_callback.py
async def answer(
    self,
    notification: str | None = None,
    new_text: str | None = None,
    link: NewMessageLink | None = None,
    format: ParseMode | None = None,
    *,
    notify: bool = True,
    raise_if_not_exists: bool = True,
) -> "SendedCallback":
    """
    Отправляет ответ на callback с возможностью изменить текст,
    вложения и параметры уведомления.

    Args:
        notification (str): Текст уведомления.
        new_text (Optional[str]): Новый текст сообщения.
        link (Optional[NewMessageLink]): Связь с другим сообщением.
        notify (bool): Отправлять ли уведомление.
        format (Optional[ParseMode]): Режим разбора текста.
        raise_if_not_exists: Выдавать ошибку при отсутствии сообщения,
            если пытаются изменить его содержимое (new_text/link/format).

    Returns:
        SendedCallback: Результат вызова send_callback бота.
    """

    # Если исходного сообщения нет (например, оно удалено),
    # не стоит синтезировать пустой payload message.
    # Два варианта поведения:
    #  - если вызывающий просит изменить сообщение (new_text/link/format)
    #    => выбросить исключение
    #  - иначе отправить только notification с message=None,
    #  чтобы API не получил пустой объект message
    original_body = None
    if self.message is not None:
        original_body = self.message.body

    if original_body is None:
        # если пытаются изменить контент/вложение/связь
        if raise_if_not_exists and (
            new_text is not None or link is not None or format is not None
        ):
            raise ValueError(
                "Невозможно изменить сообщение: "
                "исходное сообщение отсутствует"
            )

        # отправляем только уведомление (без поля message)
        return await self._ensure_bot().send_callback(
            callback_id=self.callback.callback_id,
            message=None,
            notification=notification,
        )

    # Если исходное сообщение есть —
    # собираем MessageForCallback на его основе
    message_for_callback = MessageForCallback()
    message_for_callback.text = new_text

    attachments: list[Attachments] = original_body.attachments or []

    message_for_callback.attachments = attachments
    message_for_callback.link = link
    message_for_callback.notify = notify
    message_for_callback.format = format

    return await self._ensure_bot().send_callback(
        callback_id=self.callback.callback_id,
        message=message_for_callback,
        notification=notification,
    )

message_chat_created

MessageChatCreated(**data)

Bases: BaseUpdate

.. deprecated:: 0.9.14 Это событие устарело и будет удалено в будущих версиях.

Событие создания чата.

Attributes:

Name Type Description
chat Chat

Объект чата.

title Optional[str]

Название чата.

message_id Optional[str]

ID сообщения.

start_payload Optional[str]

Payload для старта.

Source code in maxapi/types/updates/message_chat_created.py
def __init__(self, **data):
    super().__init__(**data)
    warnings.warn(
        "MessageChatCreated устарел и будет удален в будущих версиях.",
        DeprecationWarning,
        stacklevel=2,
    )

message_created

Message

Bases: BaseModel, BotMixin

Модель сообщения.

Attributes:

Name Type Description
sender Optional[User]

Отправитель сообщения, может быть None, если сообщение отправлено каналом https://github.com/love-apples/maxapi/discussions/14.

recipient Recipient

Получатель сообщения.

timestamp int

Временная метка сообщения.

link Optional[LinkedMessage]

Связанное сообщение. Может быть None.

body Optional[MessageBody]

Содержимое сообщения. Текст + вложения. Может быть null, если сообщение содержит только пересланное сообщение

stat Optional[MessageStat]

Статистика сообщения. Может быть None.

url Optional[str]

URL сообщения. Может быть None.

bot Optional[Bot]

Объект бота, исключается из сериализации.

answer(text=None, attachments=None, link=None, format=None, parse_mode=None, *, notify=None, disable_link_preview=None, sleep_after_input_media=True) async

Отправляет сообщение (автозаполнение chat_id, user_id).

Parameters:

Name Type Description Default
text str

Текст ответа. Может быть None.

None
link NewMessageLink

Связь с другим сообщением. Может быть None.

None
format TextFormat

Режим форматирования текста. Может быть None.

None
parse_mode ParseMode

Режим форматирования текста. Может быть None.

None
notify bool

Флаг отправки уведомления. По умолчанию True.

None
disable_link_preview bool

Флаг генерации превью.

None
sleep_after_input_media bool

Флаг задержки после отправки вложений типа InputMedia. По умолчанию True.

True

Returns:

Type Description
SendedMessage | None

Optional[SendedMessage]: Результат выполнения метода send_message бота.

Source code in maxapi/types/message.py
async def answer(
    self,
    text: str | None = None,
    attachments: list[
        Attachment | InputMedia | InputMediaBuffer | AttachmentUpload
    ]
    | None = None,
    link: NewMessageLink | None = None,
    format: TextFormat | None = None,
    parse_mode: ParseMode | None = None,
    *,
    notify: bool | None = None,
    disable_link_preview: bool | None = None,
    sleep_after_input_media: bool | None = True,
) -> SendedMessage | None:
    """
    Отправляет сообщение (автозаполнение chat_id, user_id).

    Args:
        text (str, optional): Текст ответа. Может быть None.
        attachments (List[Attachment | InputMedia | InputMediaBuffer
            | AttachmentUpload], optional): Список вложений.
            Может быть None.
        link (NewMessageLink, optional): Связь с другим сообщением.
            Может быть None.
        format (TextFormat, optional): Режим форматирования текста.
            Может быть None.
        parse_mode (ParseMode, optional): Режим форматирования текста.
            Может быть None.
        notify (bool): Флаг отправки уведомления. По умолчанию True.
        disable_link_preview (bool, optional): Флаг генерации превью.
        sleep_after_input_media (bool, optional): Флаг задержки
            после отправки вложений типа InputMedia. По умолчанию True.

    Returns:
        Optional[SendedMessage]: Результат выполнения метода
            send_message бота.
    """

    return await self._ensure_bot().send_message(
        chat_id=self.recipient.chat_id,
        user_id=self.recipient.user_id,
        text=text,
        attachments=attachments,
        link=link,
        notify=notify,
        format=format,
        parse_mode=parse_mode,
        disable_link_preview=disable_link_preview,
        sleep_after_input_media=sleep_after_input_media,
    )
reply(text=None, attachments=None, format=None, parse_mode=None, *, notify=None, disable_link_preview=None, sleep_after_input_media=True) async

Отправляет ответное сообщение (автозаполнение chat_id, user_id, link).

Parameters:

Name Type Description Default
text str

Текст ответа. Может быть None.

None
notify bool

Флаг отправки уведомления. По умолчанию True.

None
format TextFormat

Режим форматирования текста. Может быть None.

None
parse_mode ParseMode

Режим форматирования текста. Может быть None.

None
disable_link_preview bool

Флаг генерации превью.

None
sleep_after_input_media bool | None

Optional[bool] = True,

True

Returns:

Type Description
SendedMessage | None

Optional[SendedMessage]: Результат выполнения метода send_message бота.

Source code in maxapi/types/message.py
async def reply(
    self,
    text: str | None = None,
    attachments: list[
        Attachment | InputMedia | InputMediaBuffer | AttachmentUpload
    ]
    | None = None,
    format: TextFormat | None = None,
    parse_mode: ParseMode | None = None,
    *,
    notify: bool | None = None,
    disable_link_preview: bool | None = None,
    sleep_after_input_media: bool | None = True,
) -> SendedMessage | None:
    """
    Отправляет ответное сообщение (автозаполнение chat_id, user_id, link).

    Args:
        text (str, optional): Текст ответа. Может быть None.
        attachments (List[Attachment | InputMedia | InputMediaBuffer
            | AttachmentUpload], optional): Список вложений.
            Может быть None.
        notify (bool): Флаг отправки уведомления. По умолчанию True.
        format (TextFormat, optional): Режим форматирования текста.
            Может быть None.
        parse_mode (ParseMode, optional): Режим форматирования текста.
            Может быть None.
        disable_link_preview (bool, optional): Флаг генерации превью.
        sleep_after_input_media: Optional[bool] = True,

    Returns:
        Optional[SendedMessage]: Результат выполнения метода
            send_message бота.
    """

    if self.body is None:
        msg = "Невозможно ответить: поле body отсутствует у сообщения"
        raise ValueError(msg)

    if self.recipient.chat_id is None:
        msg = "Невозможно ответить: chat_id отсутствует"
        raise ValueError(msg)

    return await self._ensure_bot().send_message(
        chat_id=self.recipient.chat_id,
        user_id=self.recipient.user_id,
        text=text,
        attachments=attachments,
        link=NewMessageLink(type=MessageLinkType.REPLY, mid=self.body.mid),
        notify=notify,
        format=format,
        parse_mode=parse_mode,
        disable_link_preview=disable_link_preview,
        sleep_after_input_media=sleep_after_input_media,
    )
forward(chat_id, user_id=None, attachments=None, format=None, parse_mode=None, *, notify=None, disable_link_preview=None, sleep_after_input_media=True) async

Пересылает отправленное сообщение в указанный чат. (автозаполнение link)

Parameters:

Name Type Description Default
chat_id int

ID чата для отправки (обязателен, если не указан user_id)

required
user_id int

ID пользователя для отправки (обязателен, если не указан chat_id). По умолчанию None

None
notify bool

Флаг отправки уведомления. По умолчанию True.

None
format TextFormat

Режим форматирования текста. Может быть None.

None
parse_mode ParseMode

Режим форматирования текста. Может быть None.

None
disable_link_preview bool

Флаг генерации превью.

None
sleep_after_input_media bool | None

Optional[bool] = True,

True

Returns:

Type Description
SendedMessage | None

Optional[SendedMessage]: Результат выполнения метода send_message бота.

Source code in maxapi/types/message.py
async def forward(
    self,
    chat_id: int | None,
    user_id: int | None = None,
    attachments: list[
        Attachment | InputMedia | InputMediaBuffer | AttachmentUpload
    ]
    | None = None,
    format: TextFormat | None = None,
    parse_mode: ParseMode | None = None,
    *,
    notify: bool | None = None,
    disable_link_preview: bool | None = None,
    sleep_after_input_media: bool | None = True,
) -> SendedMessage | None:
    """
    Пересылает отправленное сообщение в указанный чат.
    (автозаполнение link)

    Args:
        chat_id (int): ID чата для отправки (обязателен, если не
            указан user_id)
        user_id (int): ID пользователя для отправки (обязателен,
            если не указан chat_id). По умолчанию None
        attachments (List[Attachment | InputMedia | InputMediaBuffer
            | AttachmentUpload], optional): Список вложений.
            Может быть None.
        notify (bool): Флаг отправки уведомления. По умолчанию True.
        format (TextFormat, optional): Режим форматирования
            текста. Может быть None.
        parse_mode (ParseMode, optional): Режим форматирования
            текста. Может быть None.
        disable_link_preview (bool, optional): Флаг генерации превью.
        sleep_after_input_media: Optional[bool] = True,

    Returns:
        Optional[SendedMessage]: Результат выполнения метода
            send_message бота.
    """

    if self.body is None:
        msg = "Невозможно переслать: поле body отсутствует у сообщения"
        raise ValueError(msg)

    return await self._ensure_bot().send_message(
        chat_id=chat_id,
        user_id=user_id,
        attachments=attachments,
        link=NewMessageLink(
            type=MessageLinkType.FORWARD, mid=self.body.mid
        ),
        notify=notify,
        format=format,
        parse_mode=parse_mode,
        disable_link_preview=disable_link_preview,
        sleep_after_input_media=sleep_after_input_media,
    )
edit(text=None, attachments=None, link=None, format=None, parse_mode=None, *, notify=True, sleep_after_input_media=True) async

Редактирует текущее сообщение.

Parameters:

Name Type Description Default
text str

Новый текст сообщения. Может быть None.

None
link NewMessageLink

Новая связь с сообщением. Может быть None.

None
format TextFormat

Режим форматирования текста. Может быть None.

None
parse_mode ParseMode

Режим форматирования текста. Может быть None.

None
notify bool

Флаг отправки уведомления. По умолчанию True.

True
sleep_after_input_media bool

Флаг задержки после отправки вложений типа InputMedia. По умолчанию True.

True

Returns: Optional[EditedMessage]: Результат выполнения метода edit_message бота.

Source code in maxapi/types/message.py
async def edit(
    self,
    text: str | None = None,
    attachments: list[
        Attachment | InputMedia | InputMediaBuffer | AttachmentUpload
    ]
    | list[Attachments]
    | None = None,
    link: NewMessageLink | None = None,
    format: TextFormat | None = None,
    parse_mode: ParseMode | None = None,
    *,
    notify: bool = True,
    sleep_after_input_media: bool | None = True,
) -> EditedMessage | None:
    """
    Редактирует текущее сообщение.

    Args:
        text (str, optional): Новый текст сообщения. Может быть None.
        attachments (List[Attachment | InputMedia | InputMediaBuffer |
            AttachmentUpload], optional): Новые вложения. Может быть None.
        link (NewMessageLink, optional): Новая связь с сообщением.
            Может быть None.
        format (TextFormat, optional): Режим форматирования текста.
            Может быть None.
        parse_mode (ParseMode, optional): Режим форматирования текста.
            Может быть None.
        notify (bool): Флаг отправки уведомления. По умолчанию True.
        sleep_after_input_media (bool, optional): Флаг задержки
            после отправки вложений типа InputMedia. По умолчанию True.
    Returns:
        Optional[EditedMessage]: Результат выполнения метода
            edit_message бота.
    """

    if link is None and self.link:
        link = NewMessageLink(
            type=self.link.type, mid=self.link.message.mid
        )

    if (
        attachments is None
        and self.body is not None
        and self.body.attachments
    ):
        attachments = self.body.attachments

    if self.body is None:
        msg = "Невозможно редактировать: поле body отсутствует у сообщения"
        raise ValueError(msg)

    return await self._ensure_bot().edit_message(
        message_id=self.body.mid,
        text=text,
        attachments=attachments,
        link=link,
        notify=notify,
        format=format,
        parse_mode=parse_mode,
        sleep_after_input_media=sleep_after_input_media,
    )
delete() async

Удаляет текущее сообщение.

Returns:

Name Type Description
DeletedMessage DeletedMessage

Результат выполнения метода delete_message бота.

Source code in maxapi/types/message.py
async def delete(self) -> DeletedMessage:
    """
    Удаляет текущее сообщение.

    Returns:
        DeletedMessage: Результат выполнения метода delete_message бота.
    """

    if self.body is None:
        msg = "Невозможно удалить: поле body отсутствует у сообщения"
        raise ValueError(msg)

    return await self._ensure_bot().delete_message(
        message_id=self.body.mid,
    )
pin(*, notify=True) async

Закрепляет текущее сообщение в чате.

Parameters:

Name Type Description Default
notify bool

Флаг отправки уведомления. По умолчанию True.

True

Returns:

Name Type Description
PinnedMessage PinnedMessage

Результат выполнения метода pin_message бота.

Source code in maxapi/types/message.py
async def pin(self, *, notify: bool = True) -> PinnedMessage:
    """
    Закрепляет текущее сообщение в чате.

    Args:
        notify (bool): Флаг отправки уведомления. По умолчанию True.

    Returns:
        PinnedMessage: Результат выполнения метода pin_message бота.
    """

    if self.body is None:
        msg = "Невозможно закрепить: поле body отсутствует у сообщения"
        raise ValueError(msg)

    if self.recipient.chat_id is None:
        raise ValueError("chat_id не может быть None")

    return await self._ensure_bot().pin_message(
        chat_id=self.recipient.chat_id,
        message_id=self.body.mid,
        notify=notify,
    )

MessageCreated

Bases: BaseUpdate

Обновление, сигнализирующее о создании нового сообщения.

Attributes:

Name Type Description
message Message

Объект сообщения.

user_locale Optional[str]

Локаль пользователя.

get_ids()

Возвращает кортеж идентификаторов (chat_id, user_id).

Returns:

Type Description
tuple[int | None, int | None]

tuple[Optional[int], Optional[int]]: Идентификатор чата и пользователя.

Source code in maxapi/types/updates/message_created.py
def get_ids(self) -> tuple[int | None, int | None]:
    """
    Возвращает кортеж идентификаторов (chat_id, user_id).

    Returns:
        tuple[Optional[int], Optional[int]]: Идентификатор чата и
            пользователя.
    """

    chat_id = self.message.recipient.chat_id
    user_id = self.message.sender.user_id if self.message.sender else None
    return chat_id, user_id

message_edited

Message

Bases: BaseModel, BotMixin

Модель сообщения.

Attributes:

Name Type Description
sender Optional[User]

Отправитель сообщения, может быть None, если сообщение отправлено каналом https://github.com/love-apples/maxapi/discussions/14.

recipient Recipient

Получатель сообщения.

timestamp int

Временная метка сообщения.

link Optional[LinkedMessage]

Связанное сообщение. Может быть None.

body Optional[MessageBody]

Содержимое сообщения. Текст + вложения. Может быть null, если сообщение содержит только пересланное сообщение

stat Optional[MessageStat]

Статистика сообщения. Может быть None.

url Optional[str]

URL сообщения. Может быть None.

bot Optional[Bot]

Объект бота, исключается из сериализации.

answer(text=None, attachments=None, link=None, format=None, parse_mode=None, *, notify=None, disable_link_preview=None, sleep_after_input_media=True) async

Отправляет сообщение (автозаполнение chat_id, user_id).

Parameters:

Name Type Description Default
text str

Текст ответа. Может быть None.

None
link NewMessageLink

Связь с другим сообщением. Может быть None.

None
format TextFormat

Режим форматирования текста. Может быть None.

None
parse_mode ParseMode

Режим форматирования текста. Может быть None.

None
notify bool

Флаг отправки уведомления. По умолчанию True.

None
disable_link_preview bool

Флаг генерации превью.

None
sleep_after_input_media bool

Флаг задержки после отправки вложений типа InputMedia. По умолчанию True.

True

Returns:

Type Description
SendedMessage | None

Optional[SendedMessage]: Результат выполнения метода send_message бота.

Source code in maxapi/types/message.py
async def answer(
    self,
    text: str | None = None,
    attachments: list[
        Attachment | InputMedia | InputMediaBuffer | AttachmentUpload
    ]
    | None = None,
    link: NewMessageLink | None = None,
    format: TextFormat | None = None,
    parse_mode: ParseMode | None = None,
    *,
    notify: bool | None = None,
    disable_link_preview: bool | None = None,
    sleep_after_input_media: bool | None = True,
) -> SendedMessage | None:
    """
    Отправляет сообщение (автозаполнение chat_id, user_id).

    Args:
        text (str, optional): Текст ответа. Может быть None.
        attachments (List[Attachment | InputMedia | InputMediaBuffer
            | AttachmentUpload], optional): Список вложений.
            Может быть None.
        link (NewMessageLink, optional): Связь с другим сообщением.
            Может быть None.
        format (TextFormat, optional): Режим форматирования текста.
            Может быть None.
        parse_mode (ParseMode, optional): Режим форматирования текста.
            Может быть None.
        notify (bool): Флаг отправки уведомления. По умолчанию True.
        disable_link_preview (bool, optional): Флаг генерации превью.
        sleep_after_input_media (bool, optional): Флаг задержки
            после отправки вложений типа InputMedia. По умолчанию True.

    Returns:
        Optional[SendedMessage]: Результат выполнения метода
            send_message бота.
    """

    return await self._ensure_bot().send_message(
        chat_id=self.recipient.chat_id,
        user_id=self.recipient.user_id,
        text=text,
        attachments=attachments,
        link=link,
        notify=notify,
        format=format,
        parse_mode=parse_mode,
        disable_link_preview=disable_link_preview,
        sleep_after_input_media=sleep_after_input_media,
    )
reply(text=None, attachments=None, format=None, parse_mode=None, *, notify=None, disable_link_preview=None, sleep_after_input_media=True) async

Отправляет ответное сообщение (автозаполнение chat_id, user_id, link).

Parameters:

Name Type Description Default
text str

Текст ответа. Может быть None.

None
notify bool

Флаг отправки уведомления. По умолчанию True.

None
format TextFormat

Режим форматирования текста. Может быть None.

None
parse_mode ParseMode

Режим форматирования текста. Может быть None.

None
disable_link_preview bool

Флаг генерации превью.

None
sleep_after_input_media bool | None

Optional[bool] = True,

True

Returns:

Type Description
SendedMessage | None

Optional[SendedMessage]: Результат выполнения метода send_message бота.

Source code in maxapi/types/message.py
async def reply(
    self,
    text: str | None = None,
    attachments: list[
        Attachment | InputMedia | InputMediaBuffer | AttachmentUpload
    ]
    | None = None,
    format: TextFormat | None = None,
    parse_mode: ParseMode | None = None,
    *,
    notify: bool | None = None,
    disable_link_preview: bool | None = None,
    sleep_after_input_media: bool | None = True,
) -> SendedMessage | None:
    """
    Отправляет ответное сообщение (автозаполнение chat_id, user_id, link).

    Args:
        text (str, optional): Текст ответа. Может быть None.
        attachments (List[Attachment | InputMedia | InputMediaBuffer
            | AttachmentUpload], optional): Список вложений.
            Может быть None.
        notify (bool): Флаг отправки уведомления. По умолчанию True.
        format (TextFormat, optional): Режим форматирования текста.
            Может быть None.
        parse_mode (ParseMode, optional): Режим форматирования текста.
            Может быть None.
        disable_link_preview (bool, optional): Флаг генерации превью.
        sleep_after_input_media: Optional[bool] = True,

    Returns:
        Optional[SendedMessage]: Результат выполнения метода
            send_message бота.
    """

    if self.body is None:
        msg = "Невозможно ответить: поле body отсутствует у сообщения"
        raise ValueError(msg)

    if self.recipient.chat_id is None:
        msg = "Невозможно ответить: chat_id отсутствует"
        raise ValueError(msg)

    return await self._ensure_bot().send_message(
        chat_id=self.recipient.chat_id,
        user_id=self.recipient.user_id,
        text=text,
        attachments=attachments,
        link=NewMessageLink(type=MessageLinkType.REPLY, mid=self.body.mid),
        notify=notify,
        format=format,
        parse_mode=parse_mode,
        disable_link_preview=disable_link_preview,
        sleep_after_input_media=sleep_after_input_media,
    )
forward(chat_id, user_id=None, attachments=None, format=None, parse_mode=None, *, notify=None, disable_link_preview=None, sleep_after_input_media=True) async

Пересылает отправленное сообщение в указанный чат. (автозаполнение link)

Parameters:

Name Type Description Default
chat_id int

ID чата для отправки (обязателен, если не указан user_id)

required
user_id int

ID пользователя для отправки (обязателен, если не указан chat_id). По умолчанию None

None
notify bool

Флаг отправки уведомления. По умолчанию True.

None
format TextFormat

Режим форматирования текста. Может быть None.

None
parse_mode ParseMode

Режим форматирования текста. Может быть None.

None
disable_link_preview bool

Флаг генерации превью.

None
sleep_after_input_media bool | None

Optional[bool] = True,

True

Returns:

Type Description
SendedMessage | None

Optional[SendedMessage]: Результат выполнения метода send_message бота.

Source code in maxapi/types/message.py
async def forward(
    self,
    chat_id: int | None,
    user_id: int | None = None,
    attachments: list[
        Attachment | InputMedia | InputMediaBuffer | AttachmentUpload
    ]
    | None = None,
    format: TextFormat | None = None,
    parse_mode: ParseMode | None = None,
    *,
    notify: bool | None = None,
    disable_link_preview: bool | None = None,
    sleep_after_input_media: bool | None = True,
) -> SendedMessage | None:
    """
    Пересылает отправленное сообщение в указанный чат.
    (автозаполнение link)

    Args:
        chat_id (int): ID чата для отправки (обязателен, если не
            указан user_id)
        user_id (int): ID пользователя для отправки (обязателен,
            если не указан chat_id). По умолчанию None
        attachments (List[Attachment | InputMedia | InputMediaBuffer
            | AttachmentUpload], optional): Список вложений.
            Может быть None.
        notify (bool): Флаг отправки уведомления. По умолчанию True.
        format (TextFormat, optional): Режим форматирования
            текста. Может быть None.
        parse_mode (ParseMode, optional): Режим форматирования
            текста. Может быть None.
        disable_link_preview (bool, optional): Флаг генерации превью.
        sleep_after_input_media: Optional[bool] = True,

    Returns:
        Optional[SendedMessage]: Результат выполнения метода
            send_message бота.
    """

    if self.body is None:
        msg = "Невозможно переслать: поле body отсутствует у сообщения"
        raise ValueError(msg)

    return await self._ensure_bot().send_message(
        chat_id=chat_id,
        user_id=user_id,
        attachments=attachments,
        link=NewMessageLink(
            type=MessageLinkType.FORWARD, mid=self.body.mid
        ),
        notify=notify,
        format=format,
        parse_mode=parse_mode,
        disable_link_preview=disable_link_preview,
        sleep_after_input_media=sleep_after_input_media,
    )
edit(text=None, attachments=None, link=None, format=None, parse_mode=None, *, notify=True, sleep_after_input_media=True) async

Редактирует текущее сообщение.

Parameters:

Name Type Description Default
text str

Новый текст сообщения. Может быть None.

None
link NewMessageLink

Новая связь с сообщением. Может быть None.

None
format TextFormat

Режим форматирования текста. Может быть None.

None
parse_mode ParseMode

Режим форматирования текста. Может быть None.

None
notify bool

Флаг отправки уведомления. По умолчанию True.

True
sleep_after_input_media bool

Флаг задержки после отправки вложений типа InputMedia. По умолчанию True.

True

Returns: Optional[EditedMessage]: Результат выполнения метода edit_message бота.

Source code in maxapi/types/message.py
async def edit(
    self,
    text: str | None = None,
    attachments: list[
        Attachment | InputMedia | InputMediaBuffer | AttachmentUpload
    ]
    | list[Attachments]
    | None = None,
    link: NewMessageLink | None = None,
    format: TextFormat | None = None,
    parse_mode: ParseMode | None = None,
    *,
    notify: bool = True,
    sleep_after_input_media: bool | None = True,
) -> EditedMessage | None:
    """
    Редактирует текущее сообщение.

    Args:
        text (str, optional): Новый текст сообщения. Может быть None.
        attachments (List[Attachment | InputMedia | InputMediaBuffer |
            AttachmentUpload], optional): Новые вложения. Может быть None.
        link (NewMessageLink, optional): Новая связь с сообщением.
            Может быть None.
        format (TextFormat, optional): Режим форматирования текста.
            Может быть None.
        parse_mode (ParseMode, optional): Режим форматирования текста.
            Может быть None.
        notify (bool): Флаг отправки уведомления. По умолчанию True.
        sleep_after_input_media (bool, optional): Флаг задержки
            после отправки вложений типа InputMedia. По умолчанию True.
    Returns:
        Optional[EditedMessage]: Результат выполнения метода
            edit_message бота.
    """

    if link is None and self.link:
        link = NewMessageLink(
            type=self.link.type, mid=self.link.message.mid
        )

    if (
        attachments is None
        and self.body is not None
        and self.body.attachments
    ):
        attachments = self.body.attachments

    if self.body is None:
        msg = "Невозможно редактировать: поле body отсутствует у сообщения"
        raise ValueError(msg)

    return await self._ensure_bot().edit_message(
        message_id=self.body.mid,
        text=text,
        attachments=attachments,
        link=link,
        notify=notify,
        format=format,
        parse_mode=parse_mode,
        sleep_after_input_media=sleep_after_input_media,
    )
delete() async

Удаляет текущее сообщение.

Returns:

Name Type Description
DeletedMessage DeletedMessage

Результат выполнения метода delete_message бота.

Source code in maxapi/types/message.py
async def delete(self) -> DeletedMessage:
    """
    Удаляет текущее сообщение.

    Returns:
        DeletedMessage: Результат выполнения метода delete_message бота.
    """

    if self.body is None:
        msg = "Невозможно удалить: поле body отсутствует у сообщения"
        raise ValueError(msg)

    return await self._ensure_bot().delete_message(
        message_id=self.body.mid,
    )
pin(*, notify=True) async

Закрепляет текущее сообщение в чате.

Parameters:

Name Type Description Default
notify bool

Флаг отправки уведомления. По умолчанию True.

True

Returns:

Name Type Description
PinnedMessage PinnedMessage

Результат выполнения метода pin_message бота.

Source code in maxapi/types/message.py
async def pin(self, *, notify: bool = True) -> PinnedMessage:
    """
    Закрепляет текущее сообщение в чате.

    Args:
        notify (bool): Флаг отправки уведомления. По умолчанию True.

    Returns:
        PinnedMessage: Результат выполнения метода pin_message бота.
    """

    if self.body is None:
        msg = "Невозможно закрепить: поле body отсутствует у сообщения"
        raise ValueError(msg)

    if self.recipient.chat_id is None:
        raise ValueError("chat_id не может быть None")

    return await self._ensure_bot().pin_message(
        chat_id=self.recipient.chat_id,
        message_id=self.body.mid,
        notify=notify,
    )

MessageEdited

Bases: BaseUpdate

Обновление, сигнализирующее об изменении сообщения.

Attributes:

Name Type Description
message Message

Объект измененного сообщения.

get_ids()

Возвращает кортеж идентификаторов (chat_id, user_id).

Returns:

Type Description
tuple[int | None, int | None]

Tuple[Optional[int], Optional[int]]: Идентификаторы чата и пользователя.

Source code in maxapi/types/updates/message_edited.py
def get_ids(self) -> tuple[int | None, int | None]:
    """
    Возвращает кортеж идентификаторов (chat_id, user_id).

    Returns:
        Tuple[Optional[int], Optional[int]]: Идентификаторы чата и
            пользователя.
    """

    return self.message.recipient.chat_id, self.message.recipient.user_id

message_removed

MessageRemoved

Bases: BaseUpdate

Класс для обработки события удаления сообщения в чате.

Attributes:

Name Type Description
message_id str

Идентификатор удаленного сообщения. Может быть None.

chat_id int

Идентификатор чата. Может быть None.

user_id int

Идентификатор пользователя. Может быть None.

get_ids()

Возвращает кортеж идентификаторов (chat_id, user_id).

Returns:

Type Description
tuple[int | None, int | None]

Tuple[Optional[int], Optional[int]]: Идентификаторы чата и пользователя.

Source code in maxapi/types/updates/message_removed.py
def get_ids(self) -> tuple[int | None, int | None]:
    """
    Возвращает кортеж идентификаторов (chat_id, user_id).

    Returns:
        Tuple[Optional[int], Optional[int]]: Идентификаторы чата и
            пользователя.
    """

    return self.chat_id, self.user_id

user_added

UserAdded

Bases: BaseUpdate

Класс для обработки события добавления пользователя в чат.

Attributes:

Name Type Description
inviter_id int

Идентификатор пользователя, добавившего нового участника. Может быть None.

chat_id int

Идентификатор чата. Может быть None.

user User

Объект пользователя, добавленного в чат.

is_channel bool

Указывает, был ли пользователь добавлен в канал или нет

get_ids()

Возвращает кортеж идентификаторов (chat_id, user_id).

Returns:

Type Description
tuple[int | None, int | None]

Tuple[Optional[int], Optional[int]]: Идентификаторы чата и пользователя.

Source code in maxapi/types/updates/user_added.py
def get_ids(self) -> tuple[int | None, int | None]:
    """
    Возвращает кортеж идентификаторов (chat_id, user_id).

    Returns:
        Tuple[Optional[int], Optional[int]]: Идентификаторы чата и
            пользователя.
    """

    return self.chat_id, self.inviter_id

user_removed

UserRemoved

Bases: BaseUpdate

Класс для обработки события выходе/удаления пользователя из чата.

Attributes:

Name Type Description
admin_id Optional[int]

Идентификатор администратора, удалившего пользователя. None при выходе из чата самим пользователем.

chat_id int

Идентификатор чата. Может быть None.

user User

Объект пользователя, удаленного из чата.

is_channel bool

Указывает, был ли пользователь удален из канала или нет

get_ids()

Возвращает кортеж идентификаторов (chat_id, user_id).

Returns:

Type Description
tuple[int | None, int | None]

Tuple[Optional[int], Optional[int]]: Идентификаторы чата и пользователя.

Source code in maxapi/types/updates/user_removed.py
def get_ids(self) -> tuple[int | None, int | None]:
    """
    Возвращает кортеж идентификаторов (chat_id, user_id).

    Returns:
        Tuple[Optional[int], Optional[int]]: Идентификаторы чата и
            пользователя.
    """

    return self.chat_id, self.admin_id