Skip to content

Commit 439935b

Browse files
committed
Fix wrong sender_chat
1 parent e2cce1b commit 439935b

File tree

2 files changed

+17
-8
lines changed

2 files changed

+17
-8
lines changed

pyrogram/types/messages_and_media/message.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -513,12 +513,12 @@ async def _parse(
513513
service_type = "voice_chat_members_invited"
514514

515515
from_user = types.User._parse(client, users.get(user_id, None))
516-
sender_chat = types.Chat._parse(client, message, users, chats) if not from_user else None
516+
sender_chat = types.Chat._parse(client, message, users, chats, is_chat=False) if not from_user else None
517517

518518
parsed_message = Message(
519519
message_id=message.id,
520520
date=message.date,
521-
chat=types.Chat._parse(client, message, users, chats),
521+
chat=types.Chat._parse(client, message, users, chats, is_chat=True),
522522
from_user=from_user,
523523
sender_chat=sender_chat,
524524
service=service_type,
@@ -707,12 +707,12 @@ async def _parse(
707707
reply_markup = None
708708

709709
from_user = types.User._parse(client, users.get(user_id, None))
710-
sender_chat = types.Chat._parse(client, message, users, chats) if not from_user else None
710+
sender_chat = types.Chat._parse(client, message, users, chats, is_chat=False) if not from_user else None
711711

712712
parsed_message = Message(
713713
message_id=message.id,
714714
date=message.date,
715-
chat=types.Chat._parse(client, message, users, chats),
715+
chat=types.Chat._parse(client, message, users, chats, is_chat=True),
716716
from_user=from_user,
717717
sender_chat=sender_chat,
718718
text=(

pyrogram/types/user_and_chats/chat.py

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -238,14 +238,23 @@ def _parse_channel_chat(client, channel: raw.types.Channel) -> "Chat":
238238
)
239239

240240
@staticmethod
241-
def _parse(client, message: Union[raw.types.Message, raw.types.MessageService], users: dict, chats: dict) -> "Chat":
241+
def _parse(
242+
client,
243+
message: Union[raw.types.Message, raw.types.MessageService],
244+
users: dict,
245+
chats: dict,
246+
is_chat: bool
247+
) -> "Chat":
242248
if isinstance(message.peer_id, raw.types.PeerUser):
243-
return Chat._parse_user_chat(client, users[message.peer_id.user_id])
249+
user_id = message.peer_id.user_id if is_chat else message.from_id.user_id
250+
return Chat._parse_user_chat(client, users[user_id])
244251

245252
if isinstance(message.peer_id, raw.types.PeerChat):
246-
return Chat._parse_chat_chat(client, chats[message.peer_id.chat_id])
253+
chat_id = message.peer_id.chat_id if is_chat else message.from_id.chat_id
254+
return Chat._parse_chat_chat(client, chats[chat_id])
247255

248-
return Chat._parse_channel_chat(client, chats[message.peer_id.channel_id])
256+
channel_id = message.peer_id.channel_id if is_chat else message.from_id.channel_id
257+
return Chat._parse_channel_chat(client, chats[channel_id])
249258

250259
@staticmethod
251260
def _parse_dialog(client, peer, users: dict, chats: dict):

0 commit comments

Comments
 (0)