Skip to content

Commit abffef5

Browse files
committed
Add support for anonymous messages
Add Message.sender_chat attribute
1 parent fa24439 commit abffef5

1 file changed

Lines changed: 23 additions & 7 deletions

File tree

pyrogram/types/messages_and_media/message.py

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -62,15 +62,21 @@ class Message(Object, Update):
6262
message_id (``int``):
6363
Unique message identifier inside this chat.
6464
65+
from_user (:obj:`~pyrogram.types.User`, *optional*):
66+
Sender, empty for messages sent to channels.
67+
68+
sender_chat (:obj:`~pyrogram.types.Chat`, *optional*):
69+
Sender of the message, sent on behalf of a chat.
70+
The channel itself for channel messages.
71+
The supergroup itself for messages from anonymous group administrators.
72+
The linked channel for messages automatically forwarded to the discussion group.
73+
6574
date (``int``, *optional*):
6675
Date the message was sent in Unix time.
6776
6877
chat (:obj:`~pyrogram.types.Chat`, *optional*):
6978
Conversation the message belongs to.
7079
71-
from_user (:obj:`~pyrogram.types.User`, *optional*):
72-
Sender, empty for messages sent to channels.
73-
7480
forward_from (:obj:`~pyrogram.types.User`, *optional*):
7581
For forwarded messages, sender of the original message.
7682
@@ -272,9 +278,10 @@ def __init__(
272278
*,
273279
client: "pyrogram.Client" = None,
274280
message_id: int,
281+
from_user: "types.User" = None,
282+
sender_chat: "types.Chat" = None,
275283
date: int = None,
276284
chat: "types.Chat" = None,
277-
from_user: "types.User" = None,
278285
forward_from: "types.User" = None,
279286
forward_sender_name: str = None,
280287
forward_from_chat: "types.Chat" = None,
@@ -337,9 +344,10 @@ def __init__(
337344
super().__init__(client)
338345

339346
self.message_id = message_id
347+
self.from_user = from_user
348+
self.sender_chat = sender_chat
340349
self.date = date
341350
self.chat = chat
342-
self.from_user = from_user
343351
self.forward_from = forward_from
344352
self.forward_sender_name = forward_sender_name
345353
self.forward_from_chat = forward_from_chat
@@ -440,11 +448,15 @@ async def _parse(
440448
elif isinstance(action, raw.types.MessageActionChatEditPhoto):
441449
new_chat_photo = types.Photo._parse(client, action.photo)
442450

451+
from_user = types.User._parse(client, users.get(utils.get_raw_peer_id(message.from_id), None))
452+
sender_chat = types.Chat._parse(client, message, users, chats) if not from_user else None
453+
443454
parsed_message = Message(
444455
message_id=message.id,
445456
date=message.date,
446457
chat=types.Chat._parse(client, message, users, chats),
447-
from_user=types.User._parse(client, users.get(utils.get_raw_peer_id(message.from_id), None)),
458+
from_user=from_user,
459+
sender_chat=sender_chat,
448460
service=True,
449461
new_chat_members=new_chat_members,
450462
left_chat_member=left_chat_member,
@@ -608,11 +620,15 @@ async def _parse(
608620
else:
609621
reply_markup = None
610622

623+
from_user = types.User._parse(client, users.get(utils.get_raw_peer_id(message.from_id), None))
624+
sender_chat = types.Chat._parse(client, message, users, chats) if not from_user else None
625+
611626
parsed_message = Message(
612627
message_id=message.id,
613628
date=message.date,
614629
chat=types.Chat._parse(client, message, users, chats),
615-
from_user=types.User._parse(client, users.get(utils.get_raw_peer_id(message.from_id), None)),
630+
from_user=from_user,
631+
sender_chat=sender_chat,
616632
text=(
617633
Str(message.message).init(entities) or None
618634
if media is None or web_page is not None

0 commit comments

Comments
 (0)