def edit_inline_reply_markup( self, inline_message_id: str, reply_markup: "pyrogram.InlineKeyboardMarkup" = None ) -> bool: """Edit only the reply markup of **inline** messages sent via the bot (for inline bots). Parameters: inline_message_id (``str``): Identifier of the inline message. reply_markup (:obj:`InlineKeyboardMarkup`, *optional*): An InlineKeyboardMarkup object. Returns: ``bool``: On success, True is returned. Raises: RPCError: In case of a Telegram RPC error. """ return self.send( functions.messages.EditInlineBotMessage( id=utils.unpack_inline_message_id(inline_message_id), reply_markup=reply_markup.write() if reply_markup else None, ) )
async def edit_inline_reply_markup( self, inline_message_id: str, reply_markup: "pyrogram.InlineKeyboardMarkup" = None) -> bool: """Edit only the reply markup of inline messages sent via the bot (for inline bots). Parameters: inline_message_id (``str``): Identifier of the inline message. reply_markup (:obj:`InlineKeyboardMarkup`, *optional*): An InlineKeyboardMarkup object. Returns: ``bool``: On success, True is returned. Example: .. code-block:: python from pyrogram import InlineKeyboardMarkup, InlineKeyboardButton # Bots only app.edit_inline_reply_markup( inline_message_id, InlineKeyboardMarkup([[ InlineKeyboardButton("New button", callback_data="new_data")]])) """ return await self.send( functions.messages.EditInlineBotMessage( id=utils.unpack_inline_message_id(inline_message_id), reply_markup=reply_markup.write() if reply_markup else None, ))
def edit_inline_text( self, inline_message_id: str, text: str, parse_mode: Union[str, None] = object, disable_web_page_preview: bool = None, reply_markup: "pyrogram.InlineKeyboardMarkup" = None ) -> bool: """Edit the text of inline messages. Parameters: inline_message_id (``str``): Identifier of the inline message. text (``str``): New text of the message. parse_mode (``str``, *optional*): By default, texts are parsed using both Markdown and HTML styles. You can combine both syntaxes together. Pass "markdown" or "md" to enable Markdown-style parsing only. Pass "html" to enable HTML-style parsing only. Pass None to completely disable style parsing. disable_web_page_preview (``bool``, *optional*): Disables link previews for links in this message. reply_markup (:obj:`InlineKeyboardMarkup`, *optional*): An InlineKeyboardMarkup object. Returns: ``bool``: On success, True is returned. Example: .. code-block:: python # Bots only # Simple edit text app.edit_inline_text(inline_message_id, "new text") # Take the same text message, remove the web page preview only app.edit_inline_text( inline_message_id, message.text, disable_web_page_preview=True) """ return self.send( functions.messages.EditInlineBotMessage( id=utils.unpack_inline_message_id(inline_message_id), no_webpage=disable_web_page_preview or None, reply_markup=reply_markup.write() if reply_markup else None, **self.parser.parse(text, parse_mode) ) )
async def edit_inline_text( self, inline_message_id: str, text: str, parse_mode: Union[str, None] = "", disable_web_page_preview: bool = None, reply_markup: "pyrogram.InlineKeyboardMarkup" = None ) -> bool: """Edit the text of **inline** messages. Parameters: inline_message_id (``str``): Identifier of the inline message. text (``str``): New text of the message. parse_mode (``str``, *optional*): By default, texts are parsed using both Markdown and HTML styles. You can combine both syntaxes together. Pass "markdown" to enable Markdown-style parsing only. Pass "html" to enable HTML-style parsing only. Pass None to completely disable style parsing. disable_web_page_preview (``bool``, *optional*): Disables link previews for links in this message. reply_markup (:obj:`InlineKeyboardMarkup`, *optional*): An InlineKeyboardMarkup object. Returns: ``bool``: On success, True is returned. Raises: RPCError: In case of a Telegram RPC error. """ return await self.send( functions.messages.EditInlineBotMessage( id=utils.unpack_inline_message_id(inline_message_id), no_webpage=disable_web_page_preview or None, reply_markup=reply_markup.write() if reply_markup else None, **self.parser.parse(text, parse_mode) ) )
def edit_inline_media( self, inline_message_id: str, media: InputMedia, reply_markup: "pyrogram.InlineKeyboardMarkup" = None) -> bool: """Edit inline animation, audio, document, photo or video messages. When the inline message is edited, a new file can't be uploaded. Use a previously uploaded file via its file_id or specify a URL. Parameters: inline_message_id (``str``): Required if *chat_id* and *message_id* are not specified. Identifier of the inline message. media (:obj:`InputMedia`): One of the InputMedia objects describing an animation, audio, document, photo or video. reply_markup (:obj:`InlineKeyboardMarkup`, *optional*): An InlineKeyboardMarkup object. Returns: ``bool``: On success, True is returned. Example: .. code-block:: python from pyrogram import InputMediaPhoto, InputMediaVideo, InputMediaAudio # Bots only # Replace the current media with a local photo app.edit_inline_media(inline_message_id, InputMediaPhoto("new_photo.jpg")) # Replace the current media with a local video app.edit_inline_media(inline_message_id, InputMediaVideo("new_video.mp4")) # Replace the current media with a local audio app.edit_inline_media(inline_message_id, InputMediaAudio("new_audio.mp3")) """ caption = media.caption parse_mode = media.parse_mode if isinstance(media, InputMediaPhoto): if media.media.startswith("http"): media = types.InputMediaPhotoExternal(url=media.media) else: media = utils.get_input_media_from_file_id( media.media, media.file_ref, 2) elif isinstance(media, InputMediaVideo): if media.media.startswith("http"): media = types.InputMediaDocumentExternal(url=media.media) else: media = utils.get_input_media_from_file_id( media.media, media.file_ref, 4) elif isinstance(media, InputMediaAudio): if media.media.startswith("http"): media = types.InputMediaDocumentExternal(url=media.media) else: media = utils.get_input_media_from_file_id( media.media, media.file_ref, 9) elif isinstance(media, InputMediaAnimation): if media.media.startswith("http"): media = types.InputMediaDocumentExternal(url=media.media) else: media = utils.get_input_media_from_file_id( media.media, media.file_ref, 10) elif isinstance(media, InputMediaDocument): if media.media.startswith("http"): media = types.InputMediaDocumentExternal(url=media.media) else: media = utils.get_input_media_from_file_id( media.media, media.file_ref, 5) return self.send( functions.messages.EditInlineBotMessage( id=utils.unpack_inline_message_id(inline_message_id), media=media, reply_markup=reply_markup.write() if reply_markup else None, **self.parser.parse(caption, parse_mode)))
def edit_inline_media( self, inline_message_id: str, media: InputMedia, reply_markup: "pyrogram.InlineKeyboardMarkup" = None) -> bool: """Edit **inline** animation, audio, document, photo or video messages. When the inline message is edited, a new file can't be uploaded. Use a previously uploaded file via its file_id or specify a URL. Parameters: inline_message_id (``str``): Required if *chat_id* and *message_id* are not specified. Identifier of the inline message. media (:obj:`InputMedia`): One of the InputMedia objects describing an animation, audio, document, photo or video. reply_markup (:obj:`InlineKeyboardMarkup`, *optional*): An InlineKeyboardMarkup object. Returns: ``bool``: On success, True is returned. Raises: RPCError: In case of a Telegram RPC error. """ caption = media.caption parse_mode = media.parse_mode if isinstance(media, InputMediaPhoto): if media.media.startswith("http"): media = types.InputMediaPhotoExternal(url=media.media) else: media = utils.get_input_media_from_file_id(media.media, 2) elif isinstance(media, InputMediaVideo): if media.media.startswith("http"): media = types.InputMediaDocumentExternal(url=media.media) else: media = utils.get_input_media_from_file_id(media.media, 4) elif isinstance(media, InputMediaAudio): if media.media.startswith("http"): media = types.InputMediaDocumentExternal(url=media.media) else: media = utils.get_input_media_from_file_id(media.media, 9) elif isinstance(media, InputMediaAnimation): if media.media.startswith("http"): media = types.InputMediaDocumentExternal(url=media.media) else: media = utils.get_input_media_from_file_id(media.media, 10) elif isinstance(media, InputMediaDocument): if media.media.startswith("http"): media = types.InputMediaDocumentExternal(url=media.media) else: media = utils.get_input_media_from_file_id(media.media, 5) return self.send( functions.messages.EditInlineBotMessage( id=utils.unpack_inline_message_id(inline_message_id), media=media, reply_markup=reply_markup.write() if reply_markup else None, **self.parser.parse(caption, parse_mode)))