mirror of
https://github.com/aiogram/aiogram.git
synced 2026-04-08 16:37:47 +00:00
* Re-generate API * Added new modules * Added handling new event type and approve/decline aliases for ChatJoinRequest * Fixed code-coverage * Bump API version * Added patch-notes
43 lines
2.1 KiB
Python
43 lines
2.1 KiB
Python
from __future__ import annotations
|
|
|
|
from typing import TYPE_CHECKING, Any, Dict, List, Optional, Union
|
|
|
|
from ..types import UNSET, InlineKeyboardMarkup, Message, MessageEntity
|
|
from .base import Request, TelegramMethod, prepare_parse_mode
|
|
|
|
if TYPE_CHECKING:
|
|
from ..client.bot import Bot
|
|
|
|
|
|
class EditMessageCaption(TelegramMethod[Union[Message, bool]]):
|
|
"""
|
|
Use this method to edit captions of messages. On success, if the edited message is not an inline message, the edited :class:`aiogram.types.message.Message` is returned, otherwise :code:`True` is returned.
|
|
|
|
Source: https://core.telegram.org/bots/api#editmessagecaption
|
|
"""
|
|
|
|
__returning__ = Union[Message, bool]
|
|
|
|
chat_id: Optional[Union[int, str]] = None
|
|
"""Required if *inline_message_id* is not specified. Unique identifier for the target chat or username of the target channel (in the format :code:`@channelusername`)"""
|
|
message_id: Optional[int] = None
|
|
"""Required if *inline_message_id* is not specified. Identifier of the message to edit"""
|
|
inline_message_id: Optional[str] = None
|
|
"""Required if *chat_id* and *message_id* are not specified. Identifier of the inline message"""
|
|
caption: Optional[str] = None
|
|
"""New caption of the message, 0-1024 characters after entities parsing"""
|
|
parse_mode: Optional[str] = UNSET
|
|
"""Mode for parsing entities in the message caption. See `formatting options <https://core.telegram.org/bots/api#formatting-options>`_ for more details."""
|
|
caption_entities: Optional[List[MessageEntity]] = None
|
|
"""A JSON-serialized list of special entities that appear in the caption, which can be specified instead of *parse_mode*"""
|
|
reply_markup: Optional[InlineKeyboardMarkup] = None
|
|
"""A JSON-serialized object for an `inline keyboard <https://core.telegram.org/bots#inline-keyboards-and-on-the-fly-updating>`_."""
|
|
|
|
def build_request(self, bot: Bot) -> Request:
|
|
data: Dict[str, Any] = self.dict()
|
|
|
|
prepare_parse_mode(
|
|
bot, data, parse_mode_property="parse_mode", entities_property="caption_entities"
|
|
)
|
|
|
|
return Request(method="editMessageCaption", data=data)
|