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

Message Module

MarkupElement

Bases: BaseModel

Модель элемента разметки текста.

Attributes:

Name Type Description
type TextStyle

Тип разметки.

from_ int

Начальная позиция разметки в тексте.

length int

Длина разметки.

Bases: MarkupElement

Модель разметки ссылки.

Attributes:

Name Type Description
url Optional[str]

URL ссылки. Может быть None.

Recipient

Bases: BaseModel

Модель получателя сообщения.

Attributes:

Name Type Description
user_id Optional[int]

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

chat_id Optional[int]

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

chat_type ChatType

Тип получателя (диалог или чат).

MessageBody

Bases: BaseModel

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

Attributes:

Name Type Description
mid str

Уникальный идентификатор сообщения.

seq int

Порядковый номер сообщения.

text str

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

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

Список вложений. По умолчанию пустой.

markup Optional[List[Union[MarkupLink, MarkupElement]]]

Список элементов разметки. По умолчанию пустой.

MessageStat

Bases: BaseModel

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

Attributes:

Name Type Description
views int

Количество просмотров сообщения.

LinkedMessage

Bases: BaseModel

Модель связанного сообщения.

Attributes:

Name Type Description
type MessageLinkType

Тип связи.

sender Optional[User]

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

chat_id Optional[int]

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

message MessageBody

Тело связанного сообщения.

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, notify=None, parse_mode=None, sleep_after_input_media=True) async

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

Parameters:

Name Type Description Default
text str

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

None
attachments List[Attachment | InputMedia | InputMediaBuffer | AttachmentUpload]

Список вложений. Может быть None.

None
link NewMessageLink

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

None
notify bool

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

None
parse_mode ParseMode

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

None

Returns:

Type Description
Optional['SendedMessage']

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

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

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

    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,
        parse_mode=parse_mode,
        sleep_after_input_media=sleep_after_input_media,
    )

reply(text=None, attachments=None, notify=None, parse_mode=None, sleep_after_input_media=True) async

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

Parameters:

Name Type Description Default
text str

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

None
attachments List[Attachment | InputMedia | InputMediaBuffer | AttachmentUpload]

Список вложений. Может быть None.

None
notify bool

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

None
parse_mode ParseMode

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

None
sleep_after_input_media Optional[bool]

Optional[bool] = True,

True

Returns:

Type Description
Optional['SendedMessage']

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

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

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

forward(chat_id, user_id=None, attachments=None, notify=None, parse_mode=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
attachments List[Attachment | InputMedia | InputMediaBuffer | AttachmentUpload]

Список вложений. Может быть None.

None
notify bool

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

None
parse_mode ParseMode

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

None
sleep_after_input_media Optional[bool]

Optional[bool] = True,

True

Returns:

Type Description
Optional['SendedMessage']

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

Source code in maxapi/types/message.py
async def forward(
    self,
    chat_id: Optional[int],
    user_id: Optional[int] = None,
    attachments: Optional[
        List[
            Union[
                Attachment, InputMedia, InputMediaBuffer, AttachmentUpload
            ]
        ]
    ] = None,
    notify: Optional[bool] = None,
    parse_mode: Optional[ParseMode] = None,
    sleep_after_input_media: Optional[bool] = True,
) -> Optional["SendedMessage"]:
    """
    Пересылает отправленное сообщение в указанный чат (автозаполнение 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.
        parse_mode (ParseMode, optional): Режим форматирования текста. Может быть None.
        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,
        parse_mode=parse_mode,
        sleep_after_input_media=sleep_after_input_media,
    )

edit(text=None, attachments=None, link=None, notify=True, parse_mode=None, sleep_after_input_media=True) async

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

Parameters:

Name Type Description Default
text str

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

None
attachments List[Attachment | InputMedia | InputMediaBuffer | AttachmentUpload]

Новые вложения. Может быть None.

None
link NewMessageLink

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

None
notify bool

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

True
parse_mode ParseMode

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

None

Returns:

Type Description
Optional['EditedMessage']

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

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

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

    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:
        if 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,
        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,
    )

Messages

Bases: BaseModel

Модель списка сообщений.

Attributes:

Name Type Description
messages List[Message]

Список сообщений.

bot Optional[Bot]

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

Bases: BaseModel

Модель ссылки на новое сообщение.

Attributes:

Name Type Description
type MessageLinkType

Тип связи.

mid str

Идентификатор сообщения.