mirror of
https://github.com/TeamPGM/pyrogram.git
synced 2024-11-18 05:30:15 +00:00
Merge branch 'develop' into asyncio
# Conflicts: # pyrogram/client/ext/utils.py # pyrogram/client/types/messages_and_media/message.py
This commit is contained in:
commit
cedb1f069a
@ -2,3 +2,4 @@ id message
|
||||
CHAT_WRITE_FORBIDDEN You don't have rights to send messages in this chat
|
||||
RIGHT_FORBIDDEN One or more admin rights can't be applied to this kind of chat (channel/supergroup)
|
||||
CHAT_ADMIN_INVITE_REQUIRED You don't have rights to invite other users
|
||||
MESSAGE_DELETE_FORBIDDEN You don't have rights to delete messages in this chat
|
|
@ -618,6 +618,7 @@ async def parse_messages(
|
||||
forward_from_message_id=forward_from_message_id,
|
||||
forward_signature=forward_signature,
|
||||
forward_date=forward_date,
|
||||
mentioned=message.mentioned,
|
||||
edit_date=message.edit_date,
|
||||
media_group_id=message.grouped_id,
|
||||
photo=photo,
|
||||
@ -652,7 +653,7 @@ async def parse_messages(
|
||||
replies=replies - 1
|
||||
)
|
||||
except MessageIdsEmpty:
|
||||
m.reply_to_message = None
|
||||
pass
|
||||
elif isinstance(message, types.MessageService):
|
||||
action = message.action
|
||||
|
||||
@ -753,11 +754,14 @@ async def parse_messages(
|
||||
)
|
||||
|
||||
if isinstance(action, types.MessageActionPinMessage):
|
||||
try:
|
||||
m.pinned_message = await client.get_messages(
|
||||
m.chat.id,
|
||||
reply_to_message_ids=message.id,
|
||||
replies=0
|
||||
)
|
||||
except MessageIdsEmpty:
|
||||
pass
|
||||
else:
|
||||
m = pyrogram_types.Message(message_id=message.id, client=proxy(client))
|
||||
|
||||
|
@ -168,6 +168,9 @@ class Filters:
|
||||
|
||||
dan = create("Dan", lambda _, m: bool(m.from_user and m.from_user.id == 23122162))
|
||||
|
||||
mentioned = create("Mentioned", lambda _, m: bool(m.mentioned))
|
||||
"""Filter messages containing mentions"""
|
||||
|
||||
@staticmethod
|
||||
def command(command: str or list,
|
||||
prefix: str or list = "/",
|
||||
@ -281,15 +284,16 @@ class Filters:
|
||||
Args:
|
||||
chats (``int`` | ``str`` | ``list``):
|
||||
Pass one or more chat ids/usernames to filter chats.
|
||||
For your personal cloud (Saved Messages) you can simply use “me” or “self”.
|
||||
Defaults to None (no chats).
|
||||
"""
|
||||
|
||||
def __init__(self, chats: int or str or list = None):
|
||||
chats = [] if chats is None else chats if type(chats) is list else [chats]
|
||||
super().__init__(
|
||||
{i.lower().strip("@") if type(i) is str else i for i in chats}
|
||||
{"me" if i in ["me", "self"] else i.lower().strip("@") if type(i) is str else i for i in chats}
|
||||
if type(chats) is list else
|
||||
{chats.lower().strip("@") if type(chats) is str else chats}
|
||||
{"me" if chats in ["me", "self"] else chats.lower().strip("@") if type(chats) is str else chats}
|
||||
)
|
||||
|
||||
def __call__(self, message):
|
||||
@ -297,7 +301,10 @@ class Filters:
|
||||
message.chat
|
||||
and (message.chat.id in self
|
||||
or (message.chat.username
|
||||
and message.chat.username.lower() in self))
|
||||
and message.chat.username.lower() in self)
|
||||
or ("me" in self and message.from_user
|
||||
and message.from_user.is_self
|
||||
and not message.outgoing))
|
||||
)
|
||||
|
||||
service = create(
|
||||
|
@ -55,6 +55,9 @@ class Message(Object):
|
||||
For replies, the original message. Note that the Message object in this field will not contain
|
||||
further reply_to_message fields even if it itself is a reply.
|
||||
|
||||
mentioned (``bool``, *optional*):
|
||||
The message contains a mention.
|
||||
|
||||
edit_date (``int``, *optional*):
|
||||
Date the message was last edited in Unix time.
|
||||
|
||||
@ -206,6 +209,7 @@ class Message(Object):
|
||||
forward_signature: str = None,
|
||||
forward_date: int = None,
|
||||
reply_to_message=None,
|
||||
mentioned=None,
|
||||
edit_date: int = None,
|
||||
media_group_id: str = None,
|
||||
author_signature: str = None,
|
||||
@ -253,6 +257,7 @@ class Message(Object):
|
||||
self.forward_signature = forward_signature # flags.4?string
|
||||
self.forward_date = forward_date # flags.5?int
|
||||
self.reply_to_message = reply_to_message # flags.6?Message
|
||||
self.mentioned = mentioned
|
||||
self.edit_date = edit_date # flags.7?int
|
||||
self.media_group_id = media_group_id # flags.8?string
|
||||
self.author_signature = author_signature # flags.9?string
|
||||
@ -364,6 +369,54 @@ class Message(Object):
|
||||
reply_markup=reply_markup
|
||||
)
|
||||
|
||||
async def edit(self, text: str, parse_mode: str = "", disable_web_page_preview: bool = None, reply_markup=None):
|
||||
"""Bound method *edit* of :obj:`Message <pyrogram.Message>
|
||||
|
||||
Use as a shortcut for:
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
client.edit_message_text(
|
||||
chat_id=message.chat.id,
|
||||
message_id=message.message_id,
|
||||
text="hello",
|
||||
)
|
||||
|
||||
Example:
|
||||
.. code-block:: python
|
||||
|
||||
message.edit("hello")
|
||||
|
||||
Args:
|
||||
text (``str``):
|
||||
New text of the message.
|
||||
|
||||
parse_mode (``str``, *optional*):
|
||||
Use :obj:`MARKDOWN <pyrogram.ParseMode.MARKDOWN>` or :obj:`HTML <pyrogram.ParseMode.HTML>`
|
||||
if you want Telegram apps to show bold, italic, fixed-width text or inline URLs in your message.
|
||||
Defaults to Markdown.
|
||||
|
||||
disable_web_page_preview (``bool``, *optional*):
|
||||
Disables link previews for links in this message.
|
||||
|
||||
reply_markup (:obj:`InlineKeyboardMarkup`, *optional*):
|
||||
An InlineKeyboardMarkup object.
|
||||
|
||||
Returns:
|
||||
On success, the edited :obj:`Message <pyrogram.Message>` is returned.
|
||||
|
||||
Raises:
|
||||
:class:`Error <pyrogram.Error>` in case of a Telegram RPC error.
|
||||
"""
|
||||
return await self._client.edit_message_text(
|
||||
chat_id=self.chat.id,
|
||||
message_id=self.message_id,
|
||||
text=text,
|
||||
parse_mode=parse_mode,
|
||||
disable_web_page_preview=disable_web_page_preview,
|
||||
reply_markup=reply_markup
|
||||
)
|
||||
|
||||
async def forward(self,
|
||||
chat_id: int or str,
|
||||
disable_notification: bool = None):
|
||||
|
Loading…
Reference in New Issue
Block a user