mirror of
https://github.com/TeamPGM/pyrogram.git
synced 2024-11-30 17:43:32 +00:00
Add quote support
This commit is contained in:
parent
7fa1c0ccf4
commit
be473d4601
@ -90,7 +90,10 @@ class SendGame:
|
||||
),
|
||||
message="",
|
||||
silent=disable_notification or None,
|
||||
reply_to=utils.get_reply_to(reply_to_message_id, message_thread_id),
|
||||
reply_to=utils.get_reply_to(
|
||||
reply_to_message_id=reply_to_message_id,
|
||||
message_thread_id=message_thread_id
|
||||
),
|
||||
random_id=self.rnd_id(),
|
||||
noforwards=protect_content,
|
||||
reply_markup=await reply_markup.write(self) if reply_markup else None
|
||||
|
@ -16,10 +16,10 @@
|
||||
# You should have received a copy of the GNU Lesser General Public License
|
||||
# along with Pyrogram. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
from typing import Union
|
||||
from typing import Union, List, Optional
|
||||
|
||||
import pyrogram
|
||||
from pyrogram import raw
|
||||
from pyrogram import raw, enums, types
|
||||
from pyrogram import utils
|
||||
|
||||
|
||||
@ -31,7 +31,10 @@ class SendInlineBotResult:
|
||||
result_id: str,
|
||||
disable_notification: bool = None,
|
||||
message_thread_id: int = None,
|
||||
reply_to_message_id: int = None
|
||||
reply_to_message_id: int = None,
|
||||
quote_text: str = None,
|
||||
parse_mode: Optional["enums.ParseMode"] = None,
|
||||
quote_entities: List["types.MessageEntity"] = None
|
||||
) -> "raw.base.Updates":
|
||||
"""Send an inline bot result.
|
||||
Bot results can be retrieved using :meth:`~pyrogram.Client.get_inline_bot_results`
|
||||
@ -61,6 +64,16 @@ class SendInlineBotResult:
|
||||
reply_to_message_id (``bool``, *optional*):
|
||||
If the message is a reply, ID of the original message.
|
||||
|
||||
quote_text (``str``):
|
||||
Text of the quote to be sent.
|
||||
|
||||
parse_mode (:obj:`~pyrogram.enums.ParseMode`, *optional*):
|
||||
By default, texts are parsed using both Markdown and HTML styles.
|
||||
You can combine both syntaxes together.
|
||||
|
||||
quote_entities (List of :obj:`~pyrogram.types.MessageEntity`):
|
||||
List of special entities that appear in quote text, which can be specified instead of *parse_mode*.
|
||||
|
||||
Returns:
|
||||
:obj:`~pyrogram.raw.base.Updates`: Currently, on success, a raw result is returned.
|
||||
|
||||
@ -69,6 +82,8 @@ class SendInlineBotResult:
|
||||
|
||||
await app.send_inline_bot_result(chat_id, query_id, result_id)
|
||||
"""
|
||||
quote_text, quote_entities = (await utils.parse_text_entities(self, quote_text, parse_mode, quote_entities)).values()
|
||||
|
||||
return await self.invoke(
|
||||
raw.functions.messages.SendInlineBotResult(
|
||||
peer=await self.resolve_peer(chat_id),
|
||||
@ -76,6 +91,11 @@ class SendInlineBotResult:
|
||||
id=result_id,
|
||||
random_id=self.rnd_id(),
|
||||
silent=disable_notification or None,
|
||||
reply_to=utils.get_reply_to(reply_to_message_id, message_thread_id)
|
||||
reply_to=utils.get_reply_to(
|
||||
reply_to_message_id=reply_to_message_id,
|
||||
message_thread_id=message_thread_id,
|
||||
quote_text=quote_text,
|
||||
quote_entities=quote_entities
|
||||
)
|
||||
)
|
||||
)
|
||||
|
@ -49,6 +49,8 @@ class SendAnimation:
|
||||
message_thread_id: int = None,
|
||||
reply_to_message_id: int = None,
|
||||
reply_to_story_id: int = None,
|
||||
quote_text: str = None,
|
||||
quote_entities: List["types.MessageEntity"] = None,
|
||||
schedule_date: datetime = None,
|
||||
protect_content: bool = None,
|
||||
reply_markup: Union[
|
||||
@ -127,6 +129,12 @@ class SendAnimation:
|
||||
reply_to_story_id (``int``, *optional*):
|
||||
Unique identifier for the target story.
|
||||
|
||||
quote_text (``str``):
|
||||
Text of the quote to be sent.
|
||||
|
||||
quote_entities (List of :obj:`~pyrogram.types.MessageEntity`):
|
||||
List of special entities that appear in quote text, which can be specified instead of *parse_mode*.
|
||||
|
||||
schedule_date (:py:obj:`~datetime.datetime`, *optional*):
|
||||
Date when the message will be automatically sent.
|
||||
|
||||
@ -232,6 +240,8 @@ class SendAnimation:
|
||||
]
|
||||
)
|
||||
|
||||
quote_text, quote_entities = (await utils.parse_text_entities(self, quote_text, parse_mode, quote_entities)).values()
|
||||
|
||||
while True:
|
||||
try:
|
||||
peer = await self.resolve_peer(chat_id)
|
||||
@ -240,7 +250,14 @@ class SendAnimation:
|
||||
peer=peer,
|
||||
media=media,
|
||||
silent=disable_notification or None,
|
||||
reply_to=utils.get_reply_to(reply_to_message_id, message_thread_id, peer, reply_to_story_id),
|
||||
reply_to=utils.get_reply_to(
|
||||
reply_to_message_id=reply_to_message_id,
|
||||
message_thread_id=message_thread_id,
|
||||
reply_to_peer=peer,
|
||||
reply_to_story_id=reply_to_story_id,
|
||||
quote_text=quote_text,
|
||||
quote_entities=quote_entities,
|
||||
),
|
||||
random_id=self.rnd_id(),
|
||||
schedule_date=utils.datetime_to_timestamp(schedule_date),
|
||||
noforwards=protect_content,
|
||||
|
@ -47,6 +47,8 @@ class SendAudio:
|
||||
message_thread_id: int = None,
|
||||
reply_to_message_id: int = None,
|
||||
reply_to_story_id: int = None,
|
||||
quote_text: str = None,
|
||||
quote_entities: List["types.MessageEntity"] = None,
|
||||
schedule_date: datetime = None,
|
||||
protect_content: bool = None,
|
||||
reply_markup: Union[
|
||||
@ -120,6 +122,12 @@ class SendAudio:
|
||||
reply_to_story_id (``int``, *optional*):
|
||||
Unique identifier for the target story.
|
||||
|
||||
quote_text (``str``):
|
||||
Text of the quote to be sent.
|
||||
|
||||
quote_entities (List of :obj:`~pyrogram.types.MessageEntity`):
|
||||
List of special entities that appear in quote text, which can be specified instead of *parse_mode*.
|
||||
|
||||
schedule_date (:py:obj:`~datetime.datetime`, *optional*):
|
||||
Date when the message will be automatically sent.
|
||||
|
||||
@ -219,6 +227,8 @@ class SendAudio:
|
||||
]
|
||||
)
|
||||
|
||||
quote_text, quote_entities = (await utils.parse_text_entities(self, quote_text, parse_mode, quote_entities)).values()
|
||||
|
||||
while True:
|
||||
try:
|
||||
peer = await self.resolve_peer(chat_id)
|
||||
@ -227,7 +237,14 @@ class SendAudio:
|
||||
peer=peer,
|
||||
media=media,
|
||||
silent=disable_notification or None,
|
||||
reply_to=utils.get_reply_to(reply_to_message_id, message_thread_id, peer, reply_to_story_id),
|
||||
reply_to=utils.get_reply_to(
|
||||
reply_to_message_id=reply_to_message_id,
|
||||
message_thread_id=message_thread_id,
|
||||
reply_to_peer=peer,
|
||||
reply_to_story_id=reply_to_story_id,
|
||||
quote_text=quote_text,
|
||||
quote_entities=quote_entities,
|
||||
),
|
||||
random_id=self.rnd_id(),
|
||||
schedule_date=utils.datetime_to_timestamp(schedule_date),
|
||||
noforwards=protect_content,
|
||||
|
@ -20,8 +20,7 @@ from datetime import datetime
|
||||
from typing import Union, List, Optional
|
||||
|
||||
import pyrogram
|
||||
from pyrogram import raw, enums
|
||||
from pyrogram import types
|
||||
from pyrogram import raw, enums, types
|
||||
from pyrogram import utils
|
||||
|
||||
|
||||
@ -37,6 +36,8 @@ class SendCachedMedia:
|
||||
message_thread_id: int = None,
|
||||
reply_to_message_id: int = None,
|
||||
reply_to_story_id: int = None,
|
||||
quote_text: str = None,
|
||||
quote_entities: List["types.MessageEntity"] = None,
|
||||
schedule_date: datetime = None,
|
||||
protect_content: bool = None,
|
||||
invert_media: bool = None,
|
||||
@ -89,6 +90,12 @@ class SendCachedMedia:
|
||||
reply_to_story_id (``int``, *optional*):
|
||||
Unique identifier for the target story.
|
||||
|
||||
quote_text (``str``):
|
||||
Text of the quote to be sent.
|
||||
|
||||
quote_entities (List of :obj:`~pyrogram.types.MessageEntity`):
|
||||
List of special entities that appear in quote text, which can be specified instead of *parse_mode*.
|
||||
|
||||
schedule_date (:py:obj:`~datetime.datetime`, *optional*):
|
||||
Date when the message will be automatically sent.
|
||||
|
||||
@ -110,6 +117,8 @@ class SendCachedMedia:
|
||||
|
||||
await app.send_cached_media("me", file_id)
|
||||
"""
|
||||
quote_text, quote_entities = (await utils.parse_text_entities(self, quote_text, parse_mode, quote_entities)).values()
|
||||
|
||||
peer = await self.resolve_peer(chat_id)
|
||||
r = await self.invoke(
|
||||
raw.functions.messages.SendMedia(
|
||||
@ -117,7 +126,14 @@ class SendCachedMedia:
|
||||
media=utils.get_input_media_from_file_id(file_id),
|
||||
silent=disable_notification or None,
|
||||
invert_media=invert_media,
|
||||
reply_to=utils.get_reply_to(reply_to_message_id, message_thread_id, peer, reply_to_story_id),
|
||||
reply_to=utils.get_reply_to(
|
||||
reply_to_message_id=reply_to_message_id,
|
||||
message_thread_id=message_thread_id,
|
||||
reply_to_peer=peer,
|
||||
reply_to_story_id=reply_to_story_id,
|
||||
quote_text=quote_text,
|
||||
quote_entities=quote_entities,
|
||||
),
|
||||
random_id=self.rnd_id(),
|
||||
schedule_date=utils.datetime_to_timestamp(schedule_date),
|
||||
noforwards=protect_content,
|
||||
|
@ -17,10 +17,12 @@
|
||||
# along with Pyrogram. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
from datetime import datetime
|
||||
from typing import Union
|
||||
from typing import Union, List, Optional
|
||||
|
||||
import pyrogram
|
||||
from pyrogram import raw, utils
|
||||
from pyrogram import raw
|
||||
from pyrogram import utils
|
||||
from pyrogram import enums
|
||||
from pyrogram import types
|
||||
|
||||
|
||||
@ -35,6 +37,9 @@ class SendContact:
|
||||
disable_notification: bool = None,
|
||||
message_thread_id: int = None,
|
||||
reply_to_message_id: int = None,
|
||||
quote_text: str = None,
|
||||
parse_mode: Optional["enums.ParseMode"] = None,
|
||||
quote_entities: List["types.MessageEntity"] = None,
|
||||
schedule_date: datetime = None,
|
||||
protect_content: bool = None,
|
||||
reply_markup: Union[
|
||||
@ -77,6 +82,16 @@ class SendContact:
|
||||
reply_to_message_id (``int``, *optional*):
|
||||
If the message is a reply, ID of the original message.
|
||||
|
||||
quote_text (``str``):
|
||||
Text of the quote to be sent.
|
||||
|
||||
parse_mode (:obj:`~pyrogram.enums.ParseMode`, *optional*):
|
||||
By default, texts are parsed using both Markdown and HTML styles.
|
||||
You can combine both syntaxes together.
|
||||
|
||||
quote_entities (List of :obj:`~pyrogram.types.MessageEntity`):
|
||||
List of special entities that appear in quote text, which can be specified instead of *parse_mode*.
|
||||
|
||||
schedule_date (:py:obj:`~datetime.datetime`, *optional*):
|
||||
Date when the message will be automatically sent.
|
||||
|
||||
@ -95,6 +110,8 @@ class SendContact:
|
||||
|
||||
await app.send_contact("me", "+1-123-456-7890", "Name")
|
||||
"""
|
||||
quote_text, quote_entities = (await utils.parse_text_entities(self, quote_text, parse_mode, quote_entities)).values()
|
||||
|
||||
r = await self.invoke(
|
||||
raw.functions.messages.SendMedia(
|
||||
peer=await self.resolve_peer(chat_id),
|
||||
@ -106,7 +123,12 @@ class SendContact:
|
||||
),
|
||||
message="",
|
||||
silent=disable_notification or None,
|
||||
reply_to=utils.get_reply_to(reply_to_message_id, message_thread_id),
|
||||
reply_to=utils.get_reply_to(
|
||||
reply_to_message_id=reply_to_message_id,
|
||||
message_thread_id=message_thread_id,
|
||||
quote_text=quote_text,
|
||||
quote_entities=quote_entities,
|
||||
),
|
||||
random_id=self.rnd_id(),
|
||||
schedule_date=utils.datetime_to_timestamp(schedule_date),
|
||||
noforwards=protect_content,
|
||||
|
@ -17,11 +17,11 @@
|
||||
# along with Pyrogram. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
from datetime import datetime
|
||||
from typing import Union, Optional
|
||||
from typing import Union, List, Optional
|
||||
|
||||
import pyrogram
|
||||
from pyrogram import raw, utils
|
||||
from pyrogram import types
|
||||
from pyrogram import raw, enums, types
|
||||
from pyrogram import utils
|
||||
|
||||
|
||||
class SendDice:
|
||||
@ -33,6 +33,9 @@ class SendDice:
|
||||
message_thread_id: int = None,
|
||||
reply_to_message_id: int = None,
|
||||
reply_to_story_id: int = None,
|
||||
quote_text: str = None,
|
||||
parse_mode: Optional["enums.ParseMode"] = None,
|
||||
quote_entities: List["types.MessageEntity"] = None,
|
||||
schedule_date: datetime = None,
|
||||
protect_content: bool = None,
|
||||
reply_markup: Union[
|
||||
@ -73,6 +76,16 @@ class SendDice:
|
||||
reply_to_story_id (``int``, *optional*):
|
||||
Unique identifier for the target story.
|
||||
|
||||
quote_text (``str``):
|
||||
Text of the quote to be sent.
|
||||
|
||||
parse_mode (:obj:`~pyrogram.enums.ParseMode`, *optional*):
|
||||
By default, texts are parsed using both Markdown and HTML styles.
|
||||
You can combine both syntaxes together.
|
||||
|
||||
quote_entities (List of :obj:`~pyrogram.types.MessageEntity`):
|
||||
List of special entities that appear in quote text, which can be specified instead of *parse_mode*.
|
||||
|
||||
schedule_date (:py:obj:`~datetime.datetime`, *optional*):
|
||||
Date when the message will be automatically sent.
|
||||
|
||||
@ -98,13 +111,22 @@ class SendDice:
|
||||
# Send a basketball
|
||||
await app.send_dice(chat_id, "🏀")
|
||||
"""
|
||||
quote_text, quote_entities = (await utils.parse_text_entities(self, quote_text, parse_mode, quote_entities)).values()
|
||||
|
||||
peer = await self.resolve_peer(chat_id)
|
||||
r = await self.invoke(
|
||||
raw.functions.messages.SendMedia(
|
||||
peer=peer,
|
||||
media=raw.types.InputMediaDice(emoticon=emoji),
|
||||
silent=disable_notification or None,
|
||||
reply_to=utils.get_reply_to(reply_to_message_id, message_thread_id, peer, reply_to_story_id),
|
||||
reply_to=utils.get_reply_to(
|
||||
reply_to_message_id=reply_to_message_id,
|
||||
message_thread_id=message_thread_id,
|
||||
reply_to_peer=peer,
|
||||
reply_to_story_id=reply_to_story_id,
|
||||
quote_text=quote_text,
|
||||
quote_entities=quote_entities,
|
||||
),
|
||||
random_id=self.rnd_id(),
|
||||
schedule_date=utils.datetime_to_timestamp(schedule_date),
|
||||
noforwards=protect_content,
|
||||
|
@ -45,6 +45,8 @@ class SendDocument:
|
||||
message_thread_id: int = None,
|
||||
reply_to_message_id: int = None,
|
||||
reply_to_story_id: int = None,
|
||||
quote_text: str = None,
|
||||
quote_entities: List["types.MessageEntity"] = None,
|
||||
schedule_date: datetime = None,
|
||||
protect_content: bool = None,
|
||||
reply_markup: Union[
|
||||
@ -112,6 +114,12 @@ class SendDocument:
|
||||
reply_to_story_id (``int``, *optional*):
|
||||
Unique identifier for the target story.
|
||||
|
||||
quote_text (``str``):
|
||||
Text of the quote to be sent.
|
||||
|
||||
quote_entities (List of :obj:`~pyrogram.types.MessageEntity`):
|
||||
List of special entities that appear in quote text, which can be specified instead of *parse_mode*.
|
||||
|
||||
schedule_date (:py:obj:`~datetime.datetime`, *optional*):
|
||||
Date when the message will be automatically sent.
|
||||
|
||||
@ -197,6 +205,8 @@ class SendDocument:
|
||||
]
|
||||
)
|
||||
|
||||
quote_text, quote_entities = (await utils.parse_text_entities(self, quote_text, parse_mode, quote_entities)).values()
|
||||
|
||||
while True:
|
||||
try:
|
||||
peer = await self.resolve_peer(chat_id)
|
||||
@ -205,7 +215,14 @@ class SendDocument:
|
||||
peer=peer,
|
||||
media=media,
|
||||
silent=disable_notification or None,
|
||||
reply_to=utils.get_reply_to(reply_to_message_id, message_thread_id, peer, reply_to_story_id),
|
||||
reply_to=utils.get_reply_to(
|
||||
reply_to_message_id=reply_to_message_id,
|
||||
message_thread_id=message_thread_id,
|
||||
reply_to_peer=peer,
|
||||
reply_to_story_id=reply_to_story_id,
|
||||
quote_text=quote_text,
|
||||
quote_entities=quote_entities,
|
||||
),
|
||||
random_id=self.rnd_id(),
|
||||
schedule_date=utils.datetime_to_timestamp(schedule_date),
|
||||
noforwards=protect_content,
|
||||
|
@ -17,11 +17,11 @@
|
||||
# along with Pyrogram. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
from datetime import datetime
|
||||
from typing import Union
|
||||
from typing import Optional, List, Union
|
||||
|
||||
import pyrogram
|
||||
from pyrogram import raw, utils
|
||||
from pyrogram import types
|
||||
from pyrogram import raw, enums, types
|
||||
from pyrogram import utils
|
||||
|
||||
|
||||
class SendLocation:
|
||||
@ -33,6 +33,9 @@ class SendLocation:
|
||||
disable_notification: bool = None,
|
||||
message_thread_id: int = None,
|
||||
reply_to_message_id: int = None,
|
||||
quote_text: str = None,
|
||||
parse_mode: Optional["enums.ParseMode"] = None,
|
||||
quote_entities: List["types.MessageEntity"] = None,
|
||||
schedule_date: datetime = None,
|
||||
protect_content: bool = None,
|
||||
reply_markup: Union[
|
||||
@ -69,6 +72,16 @@ class SendLocation:
|
||||
reply_to_message_id (``int``, *optional*):
|
||||
If the message is a reply, ID of the original message
|
||||
|
||||
quote_text (``str``):
|
||||
Text of the quote to be sent.
|
||||
|
||||
parse_mode (:obj:`~pyrogram.enums.ParseMode`, *optional*):
|
||||
By default, texts are parsed using both Markdown and HTML styles.
|
||||
You can combine both syntaxes together.
|
||||
|
||||
quote_entities (List of :obj:`~pyrogram.types.MessageEntity`):
|
||||
List of special entities that appear in quote text, which can be specified instead of *parse_mode*.
|
||||
|
||||
schedule_date (:py:obj:`~datetime.datetime`, *optional*):
|
||||
Date when the message will be automatically sent.
|
||||
|
||||
@ -87,6 +100,8 @@ class SendLocation:
|
||||
|
||||
app.send_location("me", latitude, longitude)
|
||||
"""
|
||||
quote_text, quote_entities = (await utils.parse_text_entities(self, quote_text, parse_mode, quote_entities)).values()
|
||||
|
||||
r = await self.invoke(
|
||||
raw.functions.messages.SendMedia(
|
||||
peer=await self.resolve_peer(chat_id),
|
||||
@ -98,7 +113,12 @@ class SendLocation:
|
||||
),
|
||||
message="",
|
||||
silent=disable_notification or None,
|
||||
reply_to=utils.get_reply_to(reply_to_message_id, message_thread_id),
|
||||
reply_to=utils.get_reply_to(
|
||||
reply_to_message_id=reply_to_message_id,
|
||||
message_thread_id=message_thread_id,
|
||||
quote_text=quote_text,
|
||||
quote_entities=quote_entities,
|
||||
),
|
||||
random_id=self.rnd_id(),
|
||||
schedule_date=utils.datetime_to_timestamp(schedule_date),
|
||||
noforwards=protect_content,
|
||||
|
@ -20,12 +20,13 @@ import logging
|
||||
import os
|
||||
import re
|
||||
from datetime import datetime
|
||||
from typing import Union, List
|
||||
from typing import Union, List, Optional
|
||||
|
||||
import pyrogram
|
||||
from pyrogram import raw
|
||||
from pyrogram import types
|
||||
from pyrogram import utils
|
||||
from pyrogram import enums
|
||||
from pyrogram.file_id import FileType
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
@ -46,6 +47,9 @@ class SendMediaGroup:
|
||||
message_thread_id: int = None,
|
||||
reply_to_message_id: int = None,
|
||||
reply_to_story_id: int = None,
|
||||
quote_text: str = None,
|
||||
parse_mode: Optional["enums.ParseMode"] = None,
|
||||
quote_entities: List["types.MessageEntity"] = None,
|
||||
schedule_date: datetime = None,
|
||||
protect_content: bool = None,
|
||||
invert_media: bool = None,
|
||||
@ -77,6 +81,16 @@ class SendMediaGroup:
|
||||
reply_to_story_id (``int``, *optional*):
|
||||
Unique identifier for the target story.
|
||||
|
||||
quote_text (``str``):
|
||||
Text of the quote to be sent.
|
||||
|
||||
parse_mode (:obj:`~pyrogram.enums.ParseMode`, *optional*):
|
||||
By default, texts are parsed using both Markdown and HTML styles.
|
||||
You can combine both syntaxes together.
|
||||
|
||||
quote_entities (List of :obj:`~pyrogram.types.MessageEntity`):
|
||||
List of special entities that appear in quote text, which can be specified instead of *parse_mode*.
|
||||
|
||||
schedule_date (:py:obj:`~datetime.datetime`, *optional*):
|
||||
Date when the message will be automatically sent.
|
||||
|
||||
@ -403,13 +417,22 @@ class SendMediaGroup:
|
||||
)
|
||||
)
|
||||
|
||||
quote_text, quote_entities = (await utils.parse_text_entities(self, quote_text, parse_mode, quote_entities)).values()
|
||||
|
||||
peer = await self.resolve_peer(chat_id)
|
||||
r = await self.invoke(
|
||||
raw.functions.messages.SendMultiMedia(
|
||||
peer=peer,
|
||||
multi_media=multi_media,
|
||||
silent=disable_notification or None,
|
||||
reply_to=utils.get_reply_to(reply_to_message_id, message_thread_id, peer, reply_to_story_id),
|
||||
reply_to=utils.get_reply_to(
|
||||
reply_to_message_id=reply_to_message_id,
|
||||
message_thread_id=message_thread_id,
|
||||
reply_to_peer=peer,
|
||||
reply_to_story_id=reply_to_story_id,
|
||||
quote_text=quote_text,
|
||||
quote_entities=quote_entities,
|
||||
),
|
||||
schedule_date=utils.datetime_to_timestamp(schedule_date),
|
||||
noforwards=protect_content,
|
||||
invert_media=invert_media
|
||||
|
@ -36,6 +36,8 @@ class SendMessage:
|
||||
message_thread_id: int = None,
|
||||
reply_to_message_id: int = None,
|
||||
reply_to_story_id: int = None,
|
||||
quote_text: str = None,
|
||||
quote_entities: List["types.MessageEntity"] = None,
|
||||
schedule_date: datetime = None,
|
||||
protect_content: bool = None,
|
||||
reply_markup: Union[
|
||||
@ -82,6 +84,12 @@ class SendMessage:
|
||||
reply_to_story_id (``int``, *optional*):
|
||||
Unique identifier for the target story.
|
||||
|
||||
quote_text (``str``):
|
||||
Text of the quote to be sent.
|
||||
|
||||
quote_entities (List of :obj:`~pyrogram.types.MessageEntity`):
|
||||
List of special entities that appear in quote text, which can be specified instead of *parse_mode*.
|
||||
|
||||
schedule_date (:py:obj:`~datetime.datetime`, *optional*):
|
||||
Date when the message will be automatically sent.
|
||||
|
||||
@ -131,6 +139,7 @@ class SendMessage:
|
||||
"""
|
||||
|
||||
message, entities = (await utils.parse_text_entities(self, text, parse_mode, entities)).values()
|
||||
quote_text, quote_entities = (await utils.parse_text_entities(self, quote_text, parse_mode, quote_entities)).values()
|
||||
|
||||
peer = await self.resolve_peer(chat_id)
|
||||
r = await self.invoke(
|
||||
@ -138,7 +147,14 @@ class SendMessage:
|
||||
peer=peer,
|
||||
no_webpage=disable_web_page_preview or None,
|
||||
silent=disable_notification or None,
|
||||
reply_to=utils.get_reply_to(reply_to_message_id, message_thread_id, peer, reply_to_story_id),
|
||||
reply_to=utils.get_reply_to(
|
||||
reply_to_message_id=reply_to_message_id,
|
||||
message_thread_id=message_thread_id,
|
||||
reply_to_peer=peer,
|
||||
reply_to_story_id=reply_to_story_id,
|
||||
quote_text=quote_text,
|
||||
quote_entities=quote_entities,
|
||||
),
|
||||
random_id=self.rnd_id(),
|
||||
schedule_date=utils.datetime_to_timestamp(schedule_date),
|
||||
reply_markup=await reply_markup.write(self) if reply_markup else None,
|
||||
|
@ -43,6 +43,8 @@ class SendPhoto:
|
||||
message_thread_id: int = None,
|
||||
reply_to_message_id: int = None,
|
||||
reply_to_story_id: int = None,
|
||||
quote_text: str = None,
|
||||
quote_entities: List["types.MessageEntity"] = None,
|
||||
schedule_date: datetime = None,
|
||||
protect_content: bool = None,
|
||||
reply_markup: Union[
|
||||
@ -103,6 +105,12 @@ class SendPhoto:
|
||||
reply_to_story_id (``int``, *optional*):
|
||||
Unique identifier for the target story.
|
||||
|
||||
quote_text (``str``):
|
||||
Text of the quote to be sent.
|
||||
|
||||
quote_entities (List of :obj:`~pyrogram.types.MessageEntity`):
|
||||
List of special entities that appear in quote text, which can be specified instead of *parse_mode*.
|
||||
|
||||
schedule_date (:py:obj:`~datetime.datetime`, *optional*):
|
||||
Date when the message will be automatically sent.
|
||||
|
||||
@ -181,6 +189,8 @@ class SendPhoto:
|
||||
spoiler=has_spoiler
|
||||
)
|
||||
|
||||
quote_text, quote_entities = (await utils.parse_text_entities(self, quote_text, parse_mode, quote_entities)).values()
|
||||
|
||||
while True:
|
||||
try:
|
||||
peer = await self.resolve_peer(chat_id)
|
||||
@ -189,7 +199,14 @@ class SendPhoto:
|
||||
peer=peer,
|
||||
media=media,
|
||||
silent=disable_notification or None,
|
||||
reply_to=utils.get_reply_to(reply_to_message_id, message_thread_id, peer, reply_to_story_id),
|
||||
reply_to=utils.get_reply_to(
|
||||
reply_to_message_id=reply_to_message_id,
|
||||
message_thread_id=message_thread_id,
|
||||
reply_to_peer=peer,
|
||||
reply_to_story_id=reply_to_story_id,
|
||||
quote_text=quote_text,
|
||||
quote_entities=quote_entities,
|
||||
),
|
||||
random_id=self.rnd_id(),
|
||||
schedule_date=utils.datetime_to_timestamp(schedule_date),
|
||||
noforwards=protect_content,
|
||||
|
@ -17,7 +17,7 @@
|
||||
# along with Pyrogram. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
from datetime import datetime
|
||||
from typing import Union, List
|
||||
from typing import Union, List, Optional
|
||||
|
||||
import pyrogram
|
||||
from pyrogram import raw, utils
|
||||
@ -44,6 +44,9 @@ class SendPoll:
|
||||
protect_content: bool = None,
|
||||
message_thread_id: int = None,
|
||||
reply_to_message_id: int = None,
|
||||
quote_text: str = None,
|
||||
parse_mode: Optional["enums.ParseMode"] = None,
|
||||
quote_entities: List["types.MessageEntity"] = None,
|
||||
schedule_date: datetime = None,
|
||||
reply_markup: Union[
|
||||
"types.InlineKeyboardMarkup",
|
||||
@ -122,6 +125,16 @@ class SendPoll:
|
||||
reply_to_message_id (``int``, *optional*):
|
||||
If the message is a reply, ID of the original message.
|
||||
|
||||
quote_text (``str``):
|
||||
Text of the quote to be sent.
|
||||
|
||||
parse_mode (:obj:`~pyrogram.enums.ParseMode`, *optional*):
|
||||
By default, texts are parsed using both Markdown and HTML styles.
|
||||
You can combine both syntaxes together.
|
||||
|
||||
quote_entities (List of :obj:`~pyrogram.types.MessageEntity`):
|
||||
List of special entities that appear in quote text, which can be specified instead of *parse_mode*.
|
||||
|
||||
schedule_date (:py:obj:`~datetime.datetime`, *optional*):
|
||||
Date when the message will be automatically sent.
|
||||
|
||||
@ -140,6 +153,7 @@ class SendPoll:
|
||||
solution, solution_entities = (await utils.parse_text_entities(
|
||||
self, explanation, explanation_parse_mode, explanation_entities
|
||||
)).values()
|
||||
quote_text, quote_entities = (await utils.parse_text_entities(self, quote_text, parse_mode, quote_entities)).values()
|
||||
|
||||
r = await self.invoke(
|
||||
raw.functions.messages.SendMedia(
|
||||
@ -165,7 +179,12 @@ class SendPoll:
|
||||
),
|
||||
message="",
|
||||
silent=disable_notification,
|
||||
reply_to=utils.get_reply_to(reply_to_message_id, message_thread_id),
|
||||
reply_to=utils.get_reply_to(
|
||||
reply_to_message_id=reply_to_message_id,
|
||||
message_thread_id=message_thread_id,
|
||||
quote_text=quote_text,
|
||||
quote_entities=quote_entities,
|
||||
),
|
||||
random_id=self.rnd_id(),
|
||||
schedule_date=utils.datetime_to_timestamp(schedule_date),
|
||||
noforwards=protect_content,
|
||||
|
@ -19,13 +19,14 @@
|
||||
import os
|
||||
import re
|
||||
from datetime import datetime
|
||||
from typing import Union, BinaryIO, Optional, Callable
|
||||
from typing import Union, BinaryIO, Optional, Callable, List
|
||||
|
||||
import pyrogram
|
||||
from pyrogram import StopTransmission
|
||||
from pyrogram import raw
|
||||
from pyrogram import types
|
||||
from pyrogram import utils
|
||||
from pyrogram import enums
|
||||
from pyrogram.errors import FilePartMissing
|
||||
from pyrogram.file_id import FileType
|
||||
|
||||
@ -39,6 +40,9 @@ class SendSticker:
|
||||
message_thread_id: int = None,
|
||||
reply_to_message_id: int = None,
|
||||
reply_to_story_id: int = None,
|
||||
quote_text: str = None,
|
||||
parse_mode: Optional["enums.ParseMode"] = None,
|
||||
quote_entities: List["types.MessageEntity"] = None,
|
||||
schedule_date: datetime = None,
|
||||
protect_content: bool = None,
|
||||
reply_markup: Union[
|
||||
@ -81,6 +85,16 @@ class SendSticker:
|
||||
reply_to_story_id (``int``, *optional*):
|
||||
Unique identifier for the target story.
|
||||
|
||||
quote_text (``str``):
|
||||
Text of the quote to be sent.
|
||||
|
||||
parse_mode (:obj:`~pyrogram.enums.ParseMode`, *optional*):
|
||||
By default, texts are parsed using both Markdown and HTML styles.
|
||||
You can combine both syntaxes together.
|
||||
|
||||
quote_entities (List of :obj:`~pyrogram.types.MessageEntity`):
|
||||
List of special entities that appear in quote text, which can be specified instead of *parse_mode*.
|
||||
|
||||
schedule_date (:py:obj:`~datetime.datetime`, *optional*):
|
||||
Date when the message will be automatically sent.
|
||||
|
||||
@ -156,6 +170,8 @@ class SendSticker:
|
||||
]
|
||||
)
|
||||
|
||||
quote_text, quote_entities = (await utils.parse_text_entities(self, quote_text, parse_mode, quote_entities)).values()
|
||||
|
||||
while True:
|
||||
try:
|
||||
peer = await self.resolve_peer(chat_id)
|
||||
@ -164,7 +180,14 @@ class SendSticker:
|
||||
peer=peer,
|
||||
media=media,
|
||||
silent=disable_notification or None,
|
||||
reply_to=utils.get_reply_to(reply_to_message_id, message_thread_id, peer, reply_to_story_id),
|
||||
reply_to=utils.get_reply_to(
|
||||
reply_to_message_id=reply_to_message_id,
|
||||
message_thread_id=message_thread_id,
|
||||
reply_to_peer=peer,
|
||||
reply_to_story_id=reply_to_story_id,
|
||||
quote_text=quote_text,
|
||||
quote_entities=quote_entities,
|
||||
),
|
||||
random_id=self.rnd_id(),
|
||||
schedule_date=utils.datetime_to_timestamp(schedule_date),
|
||||
noforwards=protect_content,
|
||||
|
@ -17,11 +17,11 @@
|
||||
# along with Pyrogram. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
from datetime import datetime
|
||||
from typing import Union
|
||||
from typing import Union, List, Optional
|
||||
|
||||
import pyrogram
|
||||
from pyrogram import raw, utils
|
||||
from pyrogram import types
|
||||
from pyrogram import types, enums
|
||||
|
||||
|
||||
class SendVenue:
|
||||
@ -37,6 +37,9 @@ class SendVenue:
|
||||
disable_notification: bool = None,
|
||||
message_thread_id: int = None,
|
||||
reply_to_message_id: int = None,
|
||||
quote_text: str = None,
|
||||
parse_mode: Optional["enums.ParseMode"] = None,
|
||||
quote_entities: List["types.MessageEntity"] = None,
|
||||
schedule_date: datetime = None,
|
||||
protect_content: bool = None,
|
||||
reply_markup: Union[
|
||||
@ -86,6 +89,16 @@ class SendVenue:
|
||||
reply_to_message_id (``int``, *optional*):
|
||||
If the message is a reply, ID of the original message
|
||||
|
||||
quote_text (``str``):
|
||||
Text of the quote to be sent.
|
||||
|
||||
parse_mode (:obj:`~pyrogram.enums.ParseMode`, *optional*):
|
||||
By default, texts are parsed using both Markdown and HTML styles.
|
||||
You can combine both syntaxes together.
|
||||
|
||||
quote_entities (List of :obj:`~pyrogram.types.MessageEntity`):
|
||||
List of special entities that appear in quote text, which can be specified instead of *parse_mode*.
|
||||
|
||||
schedule_date (:py:obj:`~datetime.datetime`, *optional*):
|
||||
Date when the message will be automatically sent.
|
||||
|
||||
@ -106,6 +119,8 @@ class SendVenue:
|
||||
"me", latitude, longitude,
|
||||
"Venue title", "Venue address")
|
||||
"""
|
||||
quote_text, quote_entities = (await utils.parse_text_entities(self, quote_text, parse_mode, quote_entities)).values()
|
||||
|
||||
r = await self.invoke(
|
||||
raw.functions.messages.SendMedia(
|
||||
peer=await self.resolve_peer(chat_id),
|
||||
@ -122,7 +137,12 @@ class SendVenue:
|
||||
),
|
||||
message="",
|
||||
silent=disable_notification or None,
|
||||
reply_to=utils.get_reply_to(reply_to_message_id, message_thread_id),
|
||||
reply_to=utils.get_reply_to(
|
||||
reply_to_message_id=reply_to_message_id,
|
||||
message_thread_id=message_thread_id,
|
||||
quote_text=quote_text,
|
||||
quote_entities=quote_entities,
|
||||
),
|
||||
random_id=self.rnd_id(),
|
||||
schedule_date=utils.datetime_to_timestamp(schedule_date),
|
||||
noforwards=protect_content,
|
||||
|
@ -50,6 +50,8 @@ class SendVideo:
|
||||
message_thread_id: int = None,
|
||||
reply_to_message_id: int = None,
|
||||
reply_to_story_id: int = None,
|
||||
quote_text: str = None,
|
||||
quote_entities: List["types.MessageEntity"] = None,
|
||||
schedule_date: datetime = None,
|
||||
protect_content: bool = None,
|
||||
reply_markup: Union[
|
||||
@ -133,6 +135,12 @@ class SendVideo:
|
||||
reply_to_story_id (``int``, *optional*):
|
||||
Unique identifier for the target story.
|
||||
|
||||
quote_text (``str``):
|
||||
Text of the quote to be sent.
|
||||
|
||||
quote_entities (List of :obj:`~pyrogram.types.MessageEntity`):
|
||||
List of special entities that appear in quote text, which can be specified instead of *parse_mode*.
|
||||
|
||||
schedule_date (:py:obj:`~datetime.datetime`, *optional*):
|
||||
Date when the message will be automatically sent.
|
||||
|
||||
@ -238,6 +246,8 @@ class SendVideo:
|
||||
]
|
||||
)
|
||||
|
||||
quote_text, quote_entities = (await utils.parse_text_entities(self, quote_text, parse_mode, quote_entities)).values()
|
||||
|
||||
while True:
|
||||
try:
|
||||
peer = await self.resolve_peer(chat_id)
|
||||
@ -246,7 +256,14 @@ class SendVideo:
|
||||
peer=peer,
|
||||
media=media,
|
||||
silent=disable_notification or None,
|
||||
reply_to=utils.get_reply_to(reply_to_message_id, message_thread_id, peer, reply_to_story_id),
|
||||
reply_to=utils.get_reply_to(
|
||||
reply_to_message_id=reply_to_message_id,
|
||||
message_thread_id=message_thread_id,
|
||||
reply_to_peer=peer,
|
||||
reply_to_story_id=reply_to_story_id,
|
||||
quote_text=quote_text,
|
||||
quote_entities=quote_entities,
|
||||
),
|
||||
random_id=self.rnd_id(),
|
||||
schedule_date=utils.datetime_to_timestamp(schedule_date),
|
||||
noforwards=protect_content,
|
||||
|
@ -18,13 +18,14 @@
|
||||
|
||||
import os
|
||||
from datetime import datetime
|
||||
from typing import Union, BinaryIO, Optional, Callable
|
||||
from typing import Union, BinaryIO, Optional, Callable, List
|
||||
|
||||
import pyrogram
|
||||
from pyrogram import StopTransmission
|
||||
from pyrogram import raw
|
||||
from pyrogram import types
|
||||
from pyrogram import utils
|
||||
from pyrogram import enums
|
||||
from pyrogram.errors import FilePartMissing
|
||||
from pyrogram.file_id import FileType
|
||||
|
||||
@ -41,6 +42,9 @@ class SendVideoNote:
|
||||
message_thread_id: int = None,
|
||||
reply_to_message_id: int = None,
|
||||
reply_to_story_id: int = None,
|
||||
quote_text: str = None,
|
||||
parse_mode: Optional["enums.ParseMode"] = None,
|
||||
quote_entities: List["types.MessageEntity"] = None,
|
||||
schedule_date: datetime = None,
|
||||
protect_content: bool = None,
|
||||
reply_markup: Union[
|
||||
@ -95,6 +99,16 @@ class SendVideoNote:
|
||||
reply_to_story_id (``int``, *optional*):
|
||||
Unique identifier for the target story.
|
||||
|
||||
quote_text (``str``):
|
||||
Text of the quote to be sent.
|
||||
|
||||
parse_mode (:obj:`~pyrogram.enums.ParseMode`, *optional*):
|
||||
By default, texts are parsed using both Markdown and HTML styles.
|
||||
You can combine both syntaxes together.
|
||||
|
||||
quote_entities (List of :obj:`~pyrogram.types.MessageEntity`):
|
||||
List of special entities that appear in quote text, which can be specified instead of *parse_mode*.
|
||||
|
||||
schedule_date (:py:obj:`~datetime.datetime`, *optional*):
|
||||
Date when the message will be automatically sent.
|
||||
|
||||
@ -180,6 +194,8 @@ class SendVideoNote:
|
||||
]
|
||||
)
|
||||
|
||||
quote_text, quote_entities = (await utils.parse_text_entities(self, quote_text, parse_mode, quote_entities)).values()
|
||||
|
||||
while True:
|
||||
try:
|
||||
peer = await self.resolve_peer(chat_id)
|
||||
@ -188,7 +204,14 @@ class SendVideoNote:
|
||||
peer=peer,
|
||||
media=media,
|
||||
silent=disable_notification or None,
|
||||
reply_to=utils.get_reply_to(reply_to_message_id, message_thread_id, peer, reply_to_story_id),
|
||||
reply_to=utils.get_reply_to(
|
||||
reply_to_message_id=reply_to_message_id,
|
||||
message_thread_id=message_thread_id,
|
||||
reply_to_peer=peer,
|
||||
reply_to_story_id=reply_to_story_id,
|
||||
quote_text=quote_text,
|
||||
quote_entities=quote_entities,
|
||||
),
|
||||
random_id=self.rnd_id(),
|
||||
schedule_date=utils.datetime_to_timestamp(schedule_date),
|
||||
noforwards=protect_content,
|
||||
|
@ -43,6 +43,8 @@ class SendVoice:
|
||||
message_thread_id: int = None,
|
||||
reply_to_message_id: int = None,
|
||||
reply_to_story_id: int = None,
|
||||
quote_text: str = None,
|
||||
quote_entities: List["types.MessageEntity"] = None,
|
||||
schedule_date: datetime = None,
|
||||
protect_content: bool = None,
|
||||
reply_markup: Union[
|
||||
@ -98,6 +100,11 @@ class SendVoice:
|
||||
reply_to_story_id (``int``, *optional*):
|
||||
Unique identifier for the target story.
|
||||
|
||||
quote_text (``str``):
|
||||
Text of the quote to be sent.
|
||||
|
||||
quote_entities (List of :obj:`~pyrogram.types.MessageEntity`):
|
||||
List of special entities that appear in quote text, which can be specified instead of *parse_mode*.
|
||||
schedule_date (:py:obj:`~datetime.datetime`, *optional*):
|
||||
Date when the message will be automatically sent.
|
||||
|
||||
@ -181,6 +188,8 @@ class SendVoice:
|
||||
]
|
||||
)
|
||||
|
||||
quote_text, quote_entities = (await utils.parse_text_entities(self, quote_text, parse_mode, quote_entities)).values()
|
||||
|
||||
while True:
|
||||
try:
|
||||
peer = await self.resolve_peer(chat_id)
|
||||
@ -189,7 +198,14 @@ class SendVoice:
|
||||
peer=peer,
|
||||
media=media,
|
||||
silent=disable_notification or None,
|
||||
reply_to=utils.get_reply_to(reply_to_message_id, message_thread_id, peer, reply_to_story_id),
|
||||
reply_to=utils.get_reply_to(
|
||||
reply_to_message_id=reply_to_message_id,
|
||||
message_thread_id=message_thread_id,
|
||||
reply_to_peer=peer,
|
||||
reply_to_story_id=reply_to_story_id,
|
||||
quote_text=quote_text,
|
||||
quote_entities=quote_entities,
|
||||
),
|
||||
random_id=self.rnd_id(),
|
||||
schedule_date=utils.datetime_to_timestamp(schedule_date),
|
||||
noforwards=protect_content,
|
||||
|
@ -83,7 +83,9 @@ class ForwardStory:
|
||||
random_id=self.rnd_id(),
|
||||
schedule_date=utils.datetime_to_timestamp(schedule_date),
|
||||
message="",
|
||||
reply_to=utils.get_reply_to(message_thread_id=message_thread_id),
|
||||
reply_to=utils.get_reply_to(
|
||||
message_thread_id=message_thread_id
|
||||
),
|
||||
)
|
||||
)
|
||||
|
||||
|
@ -167,6 +167,12 @@ class Message(Object, Update):
|
||||
*text.html* to get the marked up message text. In case there is no entity, the fields
|
||||
will contain the same text as *text*.
|
||||
|
||||
quote_text (``str``, *optional*):
|
||||
For quote messages, the actual UTF-8 text of the message, 0-4096 characters.
|
||||
If the quote contains entities (bold, italic, ...) you can access *text.markdown* or
|
||||
*text.html* to get the marked up message text. In case there is no entity, the fields
|
||||
will contain the same text as *text*.
|
||||
|
||||
entities (List of :obj:`~pyrogram.types.MessageEntity`, *optional*):
|
||||
For text messages, special entities like usernames, URLs, bot commands, etc. that appear in the text.
|
||||
|
||||
@ -174,6 +180,9 @@ class Message(Object, Update):
|
||||
For messages with a caption, special entities like usernames, URLs, bot commands, etc. that appear
|
||||
in the caption.
|
||||
|
||||
quote_entities (List of :obj:`~pyrogram.types.MessageEntity`, *optional*):
|
||||
For quote messages, special entities like usernames, URLs, bot commands, etc. that appear in the text.
|
||||
|
||||
audio (:obj:`~pyrogram.types.Audio`, *optional*):
|
||||
Message is an audio file, information about the file.
|
||||
|
||||
@ -295,6 +304,9 @@ class Message(Object, Update):
|
||||
Messages sent from yourself to other chats are outgoing (*outgoing* is True).
|
||||
An exception is made for your own personal chat; messages sent there will be incoming.
|
||||
|
||||
quote (``bool``, *optional*):
|
||||
The message contains a quote.
|
||||
|
||||
matches (List of regex Matches, *optional*):
|
||||
A list containing all `Match Objects <https://docs.python.org/3/library/re.html#match-objects>`_ that match
|
||||
the text of this message. Only applicable when using :obj:`Filters.regex <pyrogram.Filters.regex>`.
|
||||
@ -387,8 +399,10 @@ class Message(Object, Update):
|
||||
has_protected_content: bool = None,
|
||||
has_media_spoiler: bool = None,
|
||||
text: Str = None,
|
||||
quote_text: Str = None,
|
||||
entities: List["types.MessageEntity"] = None,
|
||||
caption_entities: List["types.MessageEntity"] = None,
|
||||
quote_entities: List["types.MessageEntity"] = None,
|
||||
audio: "types.Audio" = None,
|
||||
document: "types.Document" = None,
|
||||
photo: "types.Photo" = None,
|
||||
@ -422,6 +436,7 @@ class Message(Object, Update):
|
||||
forwards: int = None,
|
||||
via_bot: "types.User" = None,
|
||||
outgoing: bool = None,
|
||||
quote: bool = None,
|
||||
matches: List[Match] = None,
|
||||
command: List[str] = None,
|
||||
forum_topic_created: "types.ForumTopicCreated" = None,
|
||||
@ -478,8 +493,10 @@ class Message(Object, Update):
|
||||
self.has_protected_content = has_protected_content
|
||||
self.has_media_spoiler = has_media_spoiler
|
||||
self.text = text
|
||||
self.quote_text = quote_text
|
||||
self.entities = entities
|
||||
self.caption_entities = caption_entities
|
||||
self.quote_entities = quote_entities
|
||||
self.audio = audio
|
||||
self.document = document
|
||||
self.photo = photo
|
||||
@ -513,6 +530,7 @@ class Message(Object, Update):
|
||||
self.forwards = forwards
|
||||
self.via_bot = via_bot
|
||||
self.outgoing = outgoing
|
||||
self.quote = quote
|
||||
self.matches = matches
|
||||
self.command = command
|
||||
self.reply_markup = reply_markup
|
||||
@ -971,6 +989,21 @@ class Message(Object, Update):
|
||||
except Exception:
|
||||
pass
|
||||
else:
|
||||
if message.reply_to.quote:
|
||||
quote_entities = [types.MessageEntity._parse(client, entity, users) for entity in message.reply_to.quote_entities]
|
||||
quote_entities = types.List(filter(lambda x: x is not None, quote_entities))
|
||||
|
||||
parsed_message.quote = message.reply_to.quote
|
||||
parsed_message.quote_text = (
|
||||
Str(message.reply_to.quote_text).init(quote_entities) or None
|
||||
if media is None or web_page is not None
|
||||
else None
|
||||
)
|
||||
parsed_message.quote_entities = (
|
||||
quote_entities or None
|
||||
if media is None or web_page is not None
|
||||
else None
|
||||
)
|
||||
parsed_message.reply_to_message_id = message.reply_to.reply_to_msg_id
|
||||
parsed_message.reply_to_top_message_id = message.reply_to.reply_to_top_id
|
||||
else:
|
||||
@ -1058,6 +1091,8 @@ class Message(Object, Update):
|
||||
disable_notification: bool = None,
|
||||
message_thread_id: int = None,
|
||||
reply_to_message_id: int = None,
|
||||
quote_text: str = None,
|
||||
quote_entities: List["types.MessageEntity"] = None,
|
||||
schedule_date: datetime = None,
|
||||
protect_content: bool = None,
|
||||
reply_markup=None
|
||||
@ -1110,6 +1145,12 @@ class Message(Object, Update):
|
||||
reply_to_message_id (``int``, *optional*):
|
||||
If the message is a reply, ID of the original message.
|
||||
|
||||
quote_text (``str``):
|
||||
Text of the quote to be sent.
|
||||
|
||||
quote_entities (List of :obj:`~pyrogram.types.MessageEntity`):
|
||||
List of special entities that appear in quote text, which can be specified instead of *parse_mode*.
|
||||
|
||||
schedule_date (:py:obj:`~datetime.datetime`, *optional*):
|
||||
Date when the message will be automatically sent.
|
||||
|
||||
@ -1141,6 +1182,8 @@ class Message(Object, Update):
|
||||
disable_notification=disable_notification,
|
||||
message_thread_id=message_thread_id,
|
||||
reply_to_message_id=reply_to_message_id,
|
||||
quote_text=quote_text,
|
||||
quote_entities=quote_entities,
|
||||
schedule_date=schedule_date,
|
||||
protect_content=protect_content,
|
||||
reply_markup=reply_markup
|
||||
@ -1169,6 +1212,8 @@ class Message(Object, Update):
|
||||
] = None,
|
||||
message_thread_id: int = None,
|
||||
reply_to_message_id: int = None,
|
||||
quote_text: str = None,
|
||||
quote_entities: List["types.MessageEntity"] = None,
|
||||
progress: Callable = None,
|
||||
progress_args: tuple = ()
|
||||
) -> "Message":
|
||||
@ -1238,6 +1283,12 @@ class Message(Object, Update):
|
||||
reply_to_message_id (``int``, *optional*):
|
||||
If the message is a reply, ID of the original message.
|
||||
|
||||
quote_text (``str``):
|
||||
Text of the quote to be sent.
|
||||
|
||||
quote_entities (List of :obj:`~pyrogram.types.MessageEntity`):
|
||||
List of special entities that appear in quote text, which can be specified instead of *parse_mode*.
|
||||
|
||||
reply_markup (:obj:`~pyrogram.types.InlineKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardRemove` | :obj:`~pyrogram.types.ForceReply`, *optional*):
|
||||
Additional interface options. An object for an inline keyboard, custom reply keyboard,
|
||||
instructions to remove reply keyboard or to force a reply from the user.
|
||||
@ -1292,6 +1343,8 @@ class Message(Object, Update):
|
||||
disable_notification=disable_notification,
|
||||
message_thread_id=message_thread_id,
|
||||
reply_to_message_id=reply_to_message_id,
|
||||
quote_text=quote_text,
|
||||
quote_entities=quote_entities,
|
||||
reply_markup=reply_markup,
|
||||
progress=progress,
|
||||
progress_args=progress_args
|
||||
@ -1311,6 +1364,8 @@ class Message(Object, Update):
|
||||
disable_notification: bool = None,
|
||||
message_thread_id: int = None,
|
||||
reply_to_message_id: int = None,
|
||||
quote_text: str = None,
|
||||
quote_entities: List["types.MessageEntity"] = None,
|
||||
reply_markup: Union[
|
||||
"types.InlineKeyboardMarkup",
|
||||
"types.ReplyKeyboardMarkup",
|
||||
@ -1383,6 +1438,12 @@ class Message(Object, Update):
|
||||
reply_to_message_id (``int``, *optional*):
|
||||
If the message is a reply, ID of the original message.
|
||||
|
||||
quote_text (``str``):
|
||||
Text of the quote to be sent.
|
||||
|
||||
quote_entities (List of :obj:`~pyrogram.types.MessageEntity`):
|
||||
List of special entities that appear in quote text, which can be specified instead of *parse_mode*.
|
||||
|
||||
reply_markup (:obj:`~pyrogram.types.InlineKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardRemove` | :obj:`~pyrogram.types.ForceReply`, *optional*):
|
||||
Additional interface options. An object for an inline keyboard, custom reply keyboard,
|
||||
instructions to remove reply keyboard or to force a reply from the user.
|
||||
@ -1436,6 +1497,8 @@ class Message(Object, Update):
|
||||
disable_notification=disable_notification,
|
||||
message_thread_id=message_thread_id,
|
||||
reply_to_message_id=reply_to_message_id,
|
||||
quote_text=quote_text,
|
||||
quote_entities=quote_entities,
|
||||
reply_markup=reply_markup,
|
||||
progress=progress,
|
||||
progress_args=progress_args
|
||||
@ -1451,6 +1514,8 @@ class Message(Object, Update):
|
||||
disable_notification: bool = None,
|
||||
message_thread_id: int = None,
|
||||
reply_to_message_id: int = None,
|
||||
quote_text: str = None,
|
||||
quote_entities: List["types.MessageEntity"] = None,
|
||||
reply_markup: Union[
|
||||
"types.InlineKeyboardMarkup",
|
||||
"types.ReplyKeyboardMarkup",
|
||||
@ -1504,6 +1569,12 @@ class Message(Object, Update):
|
||||
reply_to_message_id (``int``, *optional*):
|
||||
If the message is a reply, ID of the original message.
|
||||
|
||||
quote_text (``str``):
|
||||
Text of the quote to be sent.
|
||||
|
||||
quote_entities (List of :obj:`~pyrogram.types.MessageEntity`):
|
||||
List of special entities that appear in quote text, which can be specified instead of *parse_mode*.
|
||||
|
||||
reply_markup (:obj:`~pyrogram.types.InlineKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardRemove` | :obj:`~pyrogram.types.ForceReply`, *optional*):
|
||||
Additional interface options. An object for an inline keyboard, custom reply keyboard,
|
||||
instructions to remove reply keyboard or to force a reply from the user.
|
||||
@ -1529,6 +1600,8 @@ class Message(Object, Update):
|
||||
disable_notification=disable_notification,
|
||||
message_thread_id=message_thread_id,
|
||||
reply_to_message_id=reply_to_message_id,
|
||||
quote_text=quote_text,
|
||||
quote_entities=quote_entities,
|
||||
reply_markup=reply_markup
|
||||
)
|
||||
|
||||
@ -1579,6 +1652,9 @@ class Message(Object, Update):
|
||||
disable_notification: bool = None,
|
||||
message_thread_id: int = None,
|
||||
reply_to_message_id: int = None,
|
||||
quote_text: str = None,
|
||||
parse_mode: Optional["enums.ParseMode"] = None,
|
||||
quote_entities: List["types.MessageEntity"] = None,
|
||||
reply_markup: Union[
|
||||
"types.InlineKeyboardMarkup",
|
||||
"types.ReplyKeyboardMarkup",
|
||||
@ -1631,6 +1707,16 @@ class Message(Object, Update):
|
||||
reply_to_message_id (``int``, *optional*):
|
||||
If the message is a reply, ID of the original message.
|
||||
|
||||
quote_text (``str``):
|
||||
Text of the quote to be sent.
|
||||
|
||||
parse_mode (:obj:`~pyrogram.enums.ParseMode`, *optional*):
|
||||
By default, texts are parsed using both Markdown and HTML styles.
|
||||
You can combine both syntaxes together.
|
||||
|
||||
quote_entities (List of :obj:`~pyrogram.types.MessageEntity`):
|
||||
List of special entities that appear in quote text, which can be specified instead of *parse_mode*.
|
||||
|
||||
reply_markup (:obj:`~pyrogram.types.InlineKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardRemove` | :obj:`~pyrogram.types.ForceReply`, *optional*):
|
||||
Additional interface options. An object for an inline keyboard, custom reply keyboard,
|
||||
instructions to remove reply keyboard or to force a reply from the user.
|
||||
@ -1656,6 +1742,9 @@ class Message(Object, Update):
|
||||
disable_notification=disable_notification,
|
||||
message_thread_id=message_thread_id,
|
||||
reply_to_message_id=reply_to_message_id,
|
||||
quote_text=quote_text,
|
||||
parse_mode=parse_mode,
|
||||
quote_entities=quote_entities,
|
||||
reply_markup=reply_markup
|
||||
)
|
||||
|
||||
@ -1672,6 +1761,8 @@ class Message(Object, Update):
|
||||
disable_notification: bool = None,
|
||||
message_thread_id: int = None,
|
||||
reply_to_message_id: int = None,
|
||||
quote_text: str = None,
|
||||
quote_entities: List["types.MessageEntity"] = None,
|
||||
schedule_date: datetime = None,
|
||||
reply_markup: Union[
|
||||
"types.InlineKeyboardMarkup",
|
||||
@ -1745,6 +1836,16 @@ class Message(Object, Update):
|
||||
reply_to_message_id (``int``, *optional*):
|
||||
If the message is a reply, ID of the original message.
|
||||
|
||||
quote_text (``str``):
|
||||
Text of the quote to be sent.
|
||||
|
||||
parse_mode (:obj:`~pyrogram.enums.ParseMode`, *optional*):
|
||||
By default, texts are parsed using both Markdown and HTML styles.
|
||||
You can combine both syntaxes together.
|
||||
|
||||
quote_entities (List of :obj:`~pyrogram.types.MessageEntity`):
|
||||
List of special entities that appear in quote text, which can be specified instead of *parse_mode*.
|
||||
|
||||
schedule_date (:py:obj:`~datetime.datetime`, *optional*):
|
||||
Date when the message will be automatically sent.
|
||||
|
||||
@ -1800,6 +1901,8 @@ class Message(Object, Update):
|
||||
disable_notification=disable_notification,
|
||||
message_thread_id=message_thread_id,
|
||||
reply_to_message_id=reply_to_message_id,
|
||||
quote_text=quote_text,
|
||||
quote_entities=quote_entities,
|
||||
schedule_date=schedule_date,
|
||||
reply_markup=reply_markup,
|
||||
progress=progress,
|
||||
@ -1887,7 +1990,10 @@ class Message(Object, Update):
|
||||
quote: bool = None,
|
||||
disable_notification: bool = None,
|
||||
message_thread_id: bool = None,
|
||||
reply_to_message_id: int = None
|
||||
reply_to_message_id: int = None,
|
||||
quote_text: str = None,
|
||||
parse_mode: Optional["enums.ParseMode"] = None,
|
||||
quote_entities: List["types.MessageEntity"] = None
|
||||
) -> "Message":
|
||||
"""Bound method *reply_inline_bot_result* of :obj:`~pyrogram.types.Message`.
|
||||
|
||||
@ -1928,6 +2034,16 @@ class Message(Object, Update):
|
||||
reply_to_message_id (``bool``, *optional*):
|
||||
If the message is a reply, ID of the original message.
|
||||
|
||||
quote_text (``str``):
|
||||
Text of the quote to be sent.
|
||||
|
||||
parse_mode (:obj:`~pyrogram.enums.ParseMode`, *optional*):
|
||||
By default, texts are parsed using both Markdown and HTML styles.
|
||||
You can combine both syntaxes together.
|
||||
|
||||
quote_entities (List of :obj:`~pyrogram.types.MessageEntity`):
|
||||
List of special entities that appear in quote text, which can be specified instead of *parse_mode*.
|
||||
|
||||
Returns:
|
||||
On success, the sent Message is returned.
|
||||
|
||||
@ -1946,7 +2062,10 @@ class Message(Object, Update):
|
||||
result_id=result_id,
|
||||
disable_notification=disable_notification,
|
||||
message_thread_id=message_thread_id,
|
||||
reply_to_message_id=reply_to_message_id
|
||||
reply_to_message_id=reply_to_message_id,
|
||||
quote_text=quote_text,
|
||||
parse_mode=parse_mode,
|
||||
quote_entities=quote_entities
|
||||
)
|
||||
|
||||
async def reply_location(
|
||||
@ -1957,6 +2076,8 @@ class Message(Object, Update):
|
||||
disable_notification: bool = None,
|
||||
message_thread_id: int = None,
|
||||
reply_to_message_id: int = None,
|
||||
quote_text: str = None,
|
||||
quote_entities: List["types.MessageEntity"] = None,
|
||||
reply_markup: Union[
|
||||
"types.InlineKeyboardMarkup",
|
||||
"types.ReplyKeyboardMarkup",
|
||||
@ -2003,6 +2124,12 @@ class Message(Object, Update):
|
||||
reply_to_message_id (``int``, *optional*):
|
||||
If the message is a reply, ID of the original message
|
||||
|
||||
quote_text (``str``):
|
||||
Text of the quote to be sent.
|
||||
|
||||
quote_entities (List of :obj:`~pyrogram.types.MessageEntity`):
|
||||
List of special entities that appear in quote text, which can be specified instead of *parse_mode*.
|
||||
|
||||
reply_markup (:obj:`~pyrogram.types.InlineKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardRemove` | :obj:`~pyrogram.types.ForceReply`, *optional*):
|
||||
Additional interface options. An object for an inline keyboard, custom reply keyboard,
|
||||
instructions to remove reply keyboard or to force a reply from the user.
|
||||
@ -2026,6 +2153,8 @@ class Message(Object, Update):
|
||||
disable_notification=disable_notification,
|
||||
message_thread_id=message_thread_id,
|
||||
reply_to_message_id=reply_to_message_id,
|
||||
quote_text=quote_text,
|
||||
quote_entities=quote_entities,
|
||||
reply_markup=reply_markup
|
||||
)
|
||||
|
||||
@ -2035,7 +2164,10 @@ class Message(Object, Update):
|
||||
quote: bool = None,
|
||||
disable_notification: bool = None,
|
||||
message_thread_id: int = None,
|
||||
reply_to_message_id: int = None
|
||||
reply_to_message_id: int = None,
|
||||
quote_text: str = None,
|
||||
parse_mode: Optional["enums.ParseMode"] = None,
|
||||
quote_entities: List["types.MessageEntity"] = None
|
||||
) -> List["types.Message"]:
|
||||
"""Bound method *reply_media_group* of :obj:`~pyrogram.types.Message`.
|
||||
|
||||
@ -2074,6 +2206,16 @@ class Message(Object, Update):
|
||||
reply_to_message_id (``int``, *optional*):
|
||||
If the message is a reply, ID of the original message.
|
||||
|
||||
quote_text (``str``):
|
||||
Text of the quote to be sent.
|
||||
|
||||
parse_mode (:obj:`~pyrogram.enums.ParseMode`, *optional*):
|
||||
By default, texts are parsed using both Markdown and HTML styles.
|
||||
You can combine both syntaxes together.
|
||||
|
||||
quote_entities (List of :obj:`~pyrogram.types.MessageEntity`):
|
||||
List of special entities that appear in quote text, which can be specified instead of *parse_mode*.
|
||||
|
||||
Returns:
|
||||
On success, a :obj:`~pyrogram.types.Messages` object is returned containing all the
|
||||
single messages sent.
|
||||
@ -2092,7 +2234,10 @@ class Message(Object, Update):
|
||||
media=media,
|
||||
disable_notification=disable_notification,
|
||||
message_thread_id=message_thread_id,
|
||||
reply_to_message_id=reply_to_message_id
|
||||
reply_to_message_id=reply_to_message_id,
|
||||
quote_text=quote_text,
|
||||
parse_mode=parse_mode,
|
||||
quote_entities=quote_entities
|
||||
)
|
||||
|
||||
async def reply_photo(
|
||||
@ -2107,6 +2252,8 @@ class Message(Object, Update):
|
||||
disable_notification: bool = None,
|
||||
message_thread_id: int = None,
|
||||
reply_to_message_id: int = None,
|
||||
quote_text: str = None,
|
||||
quote_entities: List["types.MessageEntity"] = None,
|
||||
reply_markup: Union[
|
||||
"types.InlineKeyboardMarkup",
|
||||
"types.ReplyKeyboardMarkup",
|
||||
@ -2172,6 +2319,12 @@ class Message(Object, Update):
|
||||
reply_to_message_id (``int``, *optional*):
|
||||
If the message is a reply, ID of the original message.
|
||||
|
||||
quote_text (``str``):
|
||||
Text of the quote to be sent.
|
||||
|
||||
quote_entities (List of :obj:`~pyrogram.types.MessageEntity`):
|
||||
List of special entities that appear in quote text, which can be specified instead of *parse_mode*.
|
||||
|
||||
reply_markup (:obj:`~pyrogram.types.InlineKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardRemove` | :obj:`~pyrogram.types.ForceReply`, *optional*):
|
||||
Additional interface options. An object for an inline keyboard, custom reply keyboard,
|
||||
instructions to remove reply keyboard or to force a reply from the user.
|
||||
@ -2223,6 +2376,8 @@ class Message(Object, Update):
|
||||
disable_notification=disable_notification,
|
||||
message_thread_id=message_thread_id,
|
||||
reply_to_message_id=reply_to_message_id,
|
||||
quote_text=quote_text,
|
||||
quote_entities=quote_entities,
|
||||
reply_markup=reply_markup,
|
||||
progress=progress,
|
||||
progress_args=progress_args
|
||||
@ -2247,6 +2402,9 @@ class Message(Object, Update):
|
||||
protect_content: bool = None,
|
||||
message_thread_id: int = None,
|
||||
reply_to_message_id: int = None,
|
||||
quote_text: str = None,
|
||||
parse_mode: Optional["enums.ParseMode"] = None,
|
||||
quote_entities: List["types.MessageEntity"] = None,
|
||||
schedule_date: datetime = None,
|
||||
reply_markup: Union[
|
||||
"types.InlineKeyboardMarkup",
|
||||
@ -2337,6 +2495,16 @@ class Message(Object, Update):
|
||||
reply_to_message_id (``int``, *optional*):
|
||||
If the message is a reply, ID of the original message.
|
||||
|
||||
quote_text (``str``):
|
||||
Text of the quote to be sent.
|
||||
|
||||
parse_mode (:obj:`~pyrogram.enums.ParseMode`, *optional*):
|
||||
By default, texts are parsed using both Markdown and HTML styles.
|
||||
You can combine both syntaxes together.
|
||||
|
||||
quote_entities (List of :obj:`~pyrogram.types.MessageEntity`):
|
||||
List of special entities that appear in quote text, which can be specified instead of *parse_mode*.
|
||||
|
||||
schedule_date (:py:obj:`~datetime.datetime`, *optional*):
|
||||
Date when the message will be automatically sent.
|
||||
|
||||
@ -2374,6 +2542,9 @@ class Message(Object, Update):
|
||||
protect_content=protect_content,
|
||||
message_thread_id=message_thread_id,
|
||||
reply_to_message_id=reply_to_message_id,
|
||||
quote_text=quote_text,
|
||||
parse_mode=parse_mode,
|
||||
quote_entities=quote_entities,
|
||||
schedule_date=schedule_date,
|
||||
reply_markup=reply_markup
|
||||
)
|
||||
@ -2385,6 +2556,9 @@ class Message(Object, Update):
|
||||
disable_notification: bool = None,
|
||||
message_thread_id: int = None,
|
||||
reply_to_message_id: int = None,
|
||||
quote_text: str = None,
|
||||
parse_mode: Optional["enums.ParseMode"] = None,
|
||||
quote_entities: List["types.MessageEntity"] = None,
|
||||
reply_markup: Union[
|
||||
"types.InlineKeyboardMarkup",
|
||||
"types.ReplyKeyboardMarkup",
|
||||
@ -2432,6 +2606,16 @@ class Message(Object, Update):
|
||||
reply_to_message_id (``int``, *optional*):
|
||||
If the message is a reply, ID of the original message.
|
||||
|
||||
quote_text (``str``):
|
||||
Text of the quote to be sent.
|
||||
|
||||
parse_mode (:obj:`~pyrogram.enums.ParseMode`, *optional*):
|
||||
By default, texts are parsed using both Markdown and HTML styles.
|
||||
You can combine both syntaxes together.
|
||||
|
||||
quote_entities (List of :obj:`~pyrogram.types.MessageEntity`):
|
||||
List of special entities that appear in quote text, which can be specified instead of *parse_mode*.
|
||||
|
||||
reply_markup (:obj:`~pyrogram.types.InlineKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardRemove` | :obj:`~pyrogram.types.ForceReply`, *optional*):
|
||||
Additional interface options. An object for an inline keyboard, custom reply keyboard,
|
||||
instructions to remove reply keyboard or to force a reply from the user.
|
||||
@ -2478,6 +2662,9 @@ class Message(Object, Update):
|
||||
disable_notification=disable_notification,
|
||||
message_thread_id=message_thread_id,
|
||||
reply_to_message_id=reply_to_message_id,
|
||||
quote_text=quote_text,
|
||||
parse_mode=parse_mode,
|
||||
quote_entities=quote_entities,
|
||||
reply_markup=reply_markup,
|
||||
progress=progress,
|
||||
progress_args=progress_args
|
||||
@ -2495,6 +2682,9 @@ class Message(Object, Update):
|
||||
disable_notification: bool = None,
|
||||
message_thread_id: int = None,
|
||||
reply_to_message_id: int = None,
|
||||
quote_text: str = None,
|
||||
parse_mode: Optional["enums.ParseMode"] = None,
|
||||
quote_entities: List["types.MessageEntity"] = None,
|
||||
reply_markup: Union[
|
||||
"types.InlineKeyboardMarkup",
|
||||
"types.ReplyKeyboardMarkup",
|
||||
@ -2556,6 +2746,16 @@ class Message(Object, Update):
|
||||
reply_to_message_id (``int``, *optional*):
|
||||
If the message is a reply, ID of the original message
|
||||
|
||||
quote_text (``str``):
|
||||
Text of the quote to be sent.
|
||||
|
||||
parse_mode (:obj:`~pyrogram.enums.ParseMode`, *optional*):
|
||||
By default, texts are parsed using both Markdown and HTML styles.
|
||||
You can combine both syntaxes together.
|
||||
|
||||
quote_entities (List of :obj:`~pyrogram.types.MessageEntity`):
|
||||
List of special entities that appear in quote text, which can be specified instead of *parse_mode*.
|
||||
|
||||
reply_markup (:obj:`~pyrogram.types.InlineKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardRemove` | :obj:`~pyrogram.types.ForceReply`, *optional*):
|
||||
Additional interface options. An object for an inline keyboard, custom reply keyboard,
|
||||
instructions to remove reply keyboard or to force a reply from the user.
|
||||
@ -2583,6 +2783,9 @@ class Message(Object, Update):
|
||||
disable_notification=disable_notification,
|
||||
message_thread_id=message_thread_id,
|
||||
reply_to_message_id=reply_to_message_id,
|
||||
quote_text=quote_text,
|
||||
parse_mode=parse_mode,
|
||||
quote_entities=quote_entities,
|
||||
reply_markup=reply_markup
|
||||
)
|
||||
|
||||
@ -2603,6 +2806,8 @@ class Message(Object, Update):
|
||||
disable_notification: bool = None,
|
||||
message_thread_id: int = None,
|
||||
reply_to_message_id: int = None,
|
||||
quote_text: str = None,
|
||||
quote_entities: List["types.MessageEntity"] = None,
|
||||
reply_markup: Union[
|
||||
"types.InlineKeyboardMarkup",
|
||||
"types.ReplyKeyboardMarkup",
|
||||
@ -2686,6 +2891,12 @@ class Message(Object, Update):
|
||||
reply_to_message_id (``int``, *optional*):
|
||||
If the message is a reply, ID of the original message.
|
||||
|
||||
quote_text (``str``):
|
||||
Text of the quote to be sent.
|
||||
|
||||
quote_entities (List of :obj:`~pyrogram.types.MessageEntity`):
|
||||
List of special entities that appear in quote text, which can be specified instead of *parse_mode*.
|
||||
|
||||
reply_markup (:obj:`~pyrogram.types.InlineKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardRemove` | :obj:`~pyrogram.types.ForceReply`, *optional*):
|
||||
Additional interface options. An object for an inline keyboard, custom reply keyboard,
|
||||
instructions to remove reply keyboard or to force a reply from the user.
|
||||
@ -2742,6 +2953,8 @@ class Message(Object, Update):
|
||||
disable_notification=disable_notification,
|
||||
message_thread_id=message_thread_id,
|
||||
reply_to_message_id=reply_to_message_id,
|
||||
quote_text=quote_text,
|
||||
quote_entities=quote_entities,
|
||||
reply_markup=reply_markup,
|
||||
progress=progress,
|
||||
progress_args=progress_args
|
||||
@ -2757,6 +2970,9 @@ class Message(Object, Update):
|
||||
disable_notification: bool = None,
|
||||
message_thread_id: int = None,
|
||||
reply_to_message_id: int = None,
|
||||
quote_text: str = None,
|
||||
parse_mode: Optional["enums.ParseMode"] = None,
|
||||
quote_entities: List["types.MessageEntity"] = None,
|
||||
reply_markup: Union[
|
||||
"types.InlineKeyboardMarkup",
|
||||
"types.ReplyKeyboardMarkup",
|
||||
@ -2816,6 +3032,16 @@ class Message(Object, Update):
|
||||
reply_to_message_id (``int``, *optional*):
|
||||
If the message is a reply, ID of the original message
|
||||
|
||||
quote_text (``str``):
|
||||
Text of the quote to be sent.
|
||||
|
||||
parse_mode (:obj:`~pyrogram.enums.ParseMode`, *optional*):
|
||||
By default, texts are parsed using both Markdown and HTML styles.
|
||||
You can combine both syntaxes together.
|
||||
|
||||
quote_entities (List of :obj:`~pyrogram.types.MessageEntity`):
|
||||
List of special entities that appear in quote text, which can be specified instead of *parse_mode*.
|
||||
|
||||
reply_markup (:obj:`~pyrogram.types.InlineKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardRemove` | :obj:`~pyrogram.types.ForceReply`, *optional*):
|
||||
Additional interface options. An object for an inline keyboard, custom reply keyboard,
|
||||
instructions to remove reply keyboard or to force a reply from the user.
|
||||
@ -2865,6 +3091,9 @@ class Message(Object, Update):
|
||||
disable_notification=disable_notification,
|
||||
message_thread_id=message_thread_id,
|
||||
reply_to_message_id=reply_to_message_id,
|
||||
quote_text=quote_text,
|
||||
parse_mode=parse_mode,
|
||||
quote_entities=quote_entities,
|
||||
reply_markup=reply_markup,
|
||||
progress=progress,
|
||||
progress_args=progress_args
|
||||
@ -2881,6 +3110,8 @@ class Message(Object, Update):
|
||||
disable_notification: bool = None,
|
||||
message_thread_id: int = None,
|
||||
reply_to_message_id: int = None,
|
||||
quote_text: str = None,
|
||||
quote_entities: List["types.MessageEntity"] = None,
|
||||
reply_markup: Union[
|
||||
"types.InlineKeyboardMarkup",
|
||||
"types.ReplyKeyboardMarkup",
|
||||
@ -2941,6 +3172,12 @@ class Message(Object, Update):
|
||||
reply_to_message_id (``int``, *optional*):
|
||||
If the message is a reply, ID of the original message
|
||||
|
||||
quote_text (``str``):
|
||||
Text of the quote to be sent.
|
||||
|
||||
quote_entities (List of :obj:`~pyrogram.types.MessageEntity`):
|
||||
List of special entities that appear in quote text, which can be specified instead of *parse_mode*.
|
||||
|
||||
reply_markup (:obj:`~pyrogram.types.InlineKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardRemove` | :obj:`~pyrogram.types.ForceReply`, *optional*):
|
||||
Additional interface options. An object for an inline keyboard, custom reply keyboard,
|
||||
instructions to remove reply keyboard or to force a reply from the user.
|
||||
@ -2991,6 +3228,8 @@ class Message(Object, Update):
|
||||
disable_notification=disable_notification,
|
||||
message_thread_id=message_thread_id,
|
||||
reply_to_message_id=reply_to_message_id,
|
||||
quote_text=quote_text,
|
||||
quote_entities=quote_entities,
|
||||
reply_markup=reply_markup,
|
||||
progress=progress,
|
||||
progress_args=progress_args
|
||||
|
@ -288,16 +288,22 @@ def get_peer_type(peer_id: int) -> str:
|
||||
def get_reply_to(
|
||||
reply_to_message_id: Optional[int] = None,
|
||||
message_thread_id: Optional[int] = None,
|
||||
user_id: Optional[raw.types.InputUser] = None,
|
||||
reply_to_peer: Optional[raw.base.InputPeer] = None,
|
||||
quote_text: Optional[str] = None,
|
||||
quote_entities: Optional[List[raw.base.MessageEntity]] = None,
|
||||
reply_to_story_id: Optional[int] = None
|
||||
) -> Optional[Union[raw.types.InputReplyToMessage, raw.types.InputReplyToStory]]:
|
||||
if all((user_id, reply_to_story_id)):
|
||||
return raw.types.InputReplyToStory(user_id=user_id, story_id=reply_to_story_id) # type: ignore[arg-type]
|
||||
"""Get InputReply for reply_to argument"""
|
||||
if all((reply_to_peer, reply_to_story_id)):
|
||||
return raw.types.InputReplyToStory(user_id=reply_to_peer, story_id=reply_to_story_id) # type: ignore[arg-type]
|
||||
|
||||
if any((reply_to_message_id, message_thread_id)):
|
||||
return raw.types.InputReplyToMessage(
|
||||
reply_to_msg_id=reply_to_message_id or message_thread_id, # type: ignore[arg-type]
|
||||
top_msg_id=message_thread_id if reply_to_message_id else None,
|
||||
reply_to_peer_id=reply_to_peer,
|
||||
quote_text=quote_text,
|
||||
quote_entities=quote_entities,
|
||||
)
|
||||
|
||||
return None
|
||||
|
Loading…
Reference in New Issue
Block a user