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

CommentCreated

CommentMessage

Bases: BaseModel, BotMixin

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

Возвращается в ответ на запросы группы /comments. В отличие от обычного сообщения не содержит вложений attachments и не поддерживает пересылку комментариев.

Attributes:

Name Type Description
sender User | None

Пользователь, отправивший комментарий. Может быть None, если комментарий опубликован от имени канала.

recipient Recipient

Получатель сообщения: для комментариев — канал.

timestamp int

Время создания комментария в формате Unix timestamp в миллисекундах.

link CommentLinkedMessage | None

Комментарий, на который получен ответ. Может быть None.

body CommentMessageBody

Информация о комментарии.

post_message_id str | None

ID поста (mid), к которому относится комментарий. Заполняется из recipient.post_id, если API его вернул, иначе — библиотекой из контекста запроса, когда комментарий получен через методы бота (get_comments, get_comment, send_comment). Исключается из сериализации.

bot Any | None

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

reply(text=None, format=None) async

Отправляет ответ на текущий комментарий (автозаполнение message_id, link).

Parameters:

Name Type Description Default
text str | None

Текст комментария.

None
format TextFormat | None

Режим форматирования текста. В комментариях не поддерживаются упоминания и гиперссылки.

None

Returns:

Name Type Description
SendedComment SendedComment

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

Source code in maxapi/types/comment.py
async def reply(
    self,
    text: str | None = None,
    format: TextFormat | None = None,
) -> SendedComment:
    """
    Отправляет ответ на текущий комментарий
    (автозаполнение message_id, link).

    Args:
        text: Текст комментария.
        format: Режим форматирования текста. В комментариях
            не поддерживаются упоминания и гиперссылки.

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

    return await self._ensure_bot().send_comment(
        message_id=self._ensure_post_message_id(),
        text=text,
        link=NewMessageLink(type=MessageLinkType.REPLY, mid=self.body.mid),
        format=format,
    )

edit(text=None, link=None, format=None) async

Редактирует текущий комментарий (автозаполнение message_id, comment_id).

Parameters:

Name Type Description Default
text str | None

Новый текст комментария.

None
link NewMessageLink | None

Ссылка на комментарий (например, ответ).

None
format TextFormat | None

Режим форматирования текста. В комментариях не поддерживаются упоминания и гиперссылки.

None

Returns:

Name Type Description
EditedComment EditedComment

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

Source code in maxapi/types/comment.py
async def edit(
    self,
    text: str | None = None,
    link: NewMessageLink | None = None,
    format: TextFormat | None = None,
) -> EditedComment:
    """
    Редактирует текущий комментарий
    (автозаполнение message_id, comment_id).

    Args:
        text: Новый текст комментария.
        link: Ссылка на комментарий (например, ответ).
        format: Режим форматирования текста. В комментариях
            не поддерживаются упоминания и гиперссылки.

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

    return await self._ensure_bot().edit_comment(
        message_id=self._ensure_post_message_id(),
        comment_id=self.body.mid,
        text=text,
        link=link,
        format=format,
    )

delete() async

Удаляет текущий комментарий (автозаполнение message_id, comment_id).

Returns:

Name Type Description
DeletedComment DeletedComment

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

Source code in maxapi/types/comment.py
async def delete(self) -> DeletedComment:
    """
    Удаляет текущий комментарий
    (автозаполнение message_id, comment_id).

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

    return await self._ensure_bot().delete_comment(
        message_id=self._ensure_post_message_id(),
        comment_id=self.body.mid,
    )

CommentCreated

Bases: BaseUpdate

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

Бот получает это событие, только если он администратор канала с правом read_all_messages.

Attributes:

Name Type Description
message CommentMessage

Созданный комментарий. Поле post_message_id заполняется из recipient.post_id, поэтому шорткаты reply, edit и delete работают без доп. параметров.

user_locale str | 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/comment_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