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

EditComment

EditComment(bot, message_id, comment_id, text=None, link=None, format=None)

Bases: BaseConnection

Класс для редактирования комментария к посту в канале через API.

https://dev.max.ru/docs-api/methods/PUT/messages/-messageId-/comments

Attributes:

Name Type Description
bot

Экземпляр бота для выполнения запроса.

message_id

Идентификатор поста (mid), комментарий к которому нужно отредактировать.

comment_id

Идентификатор редактируемого комментария.

text

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

link

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

format

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

Source code in maxapi/methods/edit_comment.py
def __init__(
    self,
    bot: Bot,
    message_id: str,
    comment_id: str,
    text: str | None = None,
    link: NewMessageLink | None = None,
    format: TextFormat | None = None,
):
    if len(message_id) < 1:
        raise ValueError("message_id не должен быть меньше 1 символа")

    if len(comment_id) < 1:
        raise ValueError("comment_id не должен быть меньше 1 символа")

    if text is not None and len(text) > 4000:
        raise ValueError("text должен быть не длиннее 4000 символов")

    if link is not None and link.type != MessageLinkType.REPLY:
        raise ValueError(
            "Для комментариев поддерживается только link.type = reply"
        )

    # Поддержка передачи строки вместо enum: пользователь может
    # передать "html" или TextFormat.HTML — внутри всегда храним
    # enum, чтобы .value работал без ошибок.
    if isinstance(format, str) and not isinstance(format, TextFormat):
        format = TextFormat(format)

    super().__init__()
    self.bot = bot
    self.message_id = message_id
    self.comment_id = comment_id
    self.text = text
    self.link = link
    self.format = format

fetch() async

Выполняет PUT-запрос для редактирования комментария.

Returns:

Name Type Description
EditedComment EditedComment

Результат операции редактирования.

Source code in maxapi/methods/edit_comment.py
async def fetch(self) -> EditedComment:
    """
    Выполняет PUT-запрос для редактирования комментария.

    Returns:
        EditedComment: Результат операции редактирования.
    """

    bot = self._ensure_bot()

    params = bot.params.copy()

    params["comment_id"] = self.comment_id

    json: dict[str, Any] = {}

    if self.text is not None:
        json["text"] = self.text

    if self.link is not None:
        json["link"] = self.link.model_dump()

    if self.format is not None:
        json["format"] = self.format

    response = await super().request(
        method=HTTPMethod.PUT,
        path=ApiPath.MESSAGES + "/" + self.message_id + ApiPath.COMMENTS,
        model=EditedComment,
        params=params,
        json=json,
    )

    return cast(EditedComment, response)