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

Package: maxapi.types.updates

maxapi.types.updates

bot_added

BotAdded

Bases: Update

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

Attributes:

Name Type Description
chat_id int

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

user User

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

is_channel bool

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

bot_removed

BotRemoved

Bases: Update

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

Attributes:

Name Type Description
chat_id int

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

user User

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

is_channel bool

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

bot_started

BotStarted

Bases: Update

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

Attributes:

Name Type Description
chat_id int

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

user User

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

user_locale Optional[str]

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

payload Optional[str]

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

bot_stopped

BotStopped

Bases: Update

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

Attributes:

Name Type Description
chat_id int

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

user User

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

user_locale Optional[str]

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

payload Optional[str]

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

chat_title_changed

ChatTitleChanged

Bases: Update

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

Attributes:

Name Type Description
chat_id Optional[int]

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

user User

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

title str

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

dialog_cleared

DialogCleared

Bases: Update

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

Attributes:

Name Type Description
chat_id int

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

user User

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

user_locale Optional[str]

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

dialog_muted

DialogMuted

Bases: Update

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

Attributes:

Name Type Description
chat_id int

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

muted_until int

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

user User

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

user_locale Optional[str]

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

dialog_removed

DialogRemoved

Bases: Update

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

Attributes:

Name Type Description
chat_id int

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

user User

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

user_locale Optional[str]

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

dialog_unmuted

DialogUnmuted

Bases: Update

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

Attributes:

Name Type Description
chat_id int

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

user User

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

user_locale Optional[str]

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

message_callback

MessageForCallback

Bases: BaseModel

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

Attributes:

Name Type Description
text Optional[str]

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

attachments Optional[List[Union[AttachmentButton, Audio, Video, File, Image, Sticker, Share]]]

Список вложений.

link Optional[NewMessageLink]

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

notify Optional[bool]

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

format Optional[ParseMode]

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

MessageCallback

Bases: Update

Обновление с 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[Optional[int], int]

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

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

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

    chat_id: Optional[int] = 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, notify=True, format=None, 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: Optional[str] = None,
    new_text: Optional[str] = None,
    link: Optional[NewMessageLink] = None,
    notify: bool = True,
    format: Optional[ParseMode] = None,
    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: Update

.. 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

MessageCreated

Bases: Update

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

Attributes:

Name Type Description
message Message

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

user_locale Optional[str]

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

get_ids()

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

Returns:

Type Description
Tuple[Optional[int], Optional[int]]

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

Source code in maxapi/types/updates/message_created.py
def get_ids(self) -> Tuple[Optional[int], Optional[int]]:
    """
    Возвращает кортеж идентификаторов (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

MessageEdited

Bases: Update

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

Attributes:

Name Type Description
message Message

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

get_ids()

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

Returns:

Type Description
Tuple[Optional[int], Optional[int]]

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

Source code in maxapi/types/updates/message_edited.py
def get_ids(self) -> Tuple[Optional[int], Optional[int]]:
    """
    Возвращает кортеж идентификаторов (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: Update

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

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[Optional[int], Optional[int]]

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

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

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

    return (self.chat_id, self.user_id)

update

Update

Bases: BaseModel, BotMixin

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

Attributes:

Name Type Description
update_type UpdateType

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

timestamp int

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

user_added

UserAdded

Bases: Update

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

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[Optional[int], Optional[int]]

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

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

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

    return (self.chat_id, self.inviter_id)

user_removed

UserRemoved

Bases: Update

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

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[Optional[int], Optional[int]]

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

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

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

    return (self.chat_id, self.admin_id)