Fetch user details in case they are missing
This commit is contained in:
parent
34b6002c68
commit
85ee6c3785
@ -433,6 +433,16 @@ class Message(Object, Update):
|
|||||||
is_scheduled: bool = False,
|
is_scheduled: bool = False,
|
||||||
replies: int = 1
|
replies: int = 1
|
||||||
):
|
):
|
||||||
|
user_id = utils.get_raw_peer_id(message.from_id) or utils.get_raw_peer_id(message.peer_id)
|
||||||
|
if user_id not in users:
|
||||||
|
r = (await client.send(
|
||||||
|
raw.functions.users.GetUsers(
|
||||||
|
id=[await client.resolve_peer(user_id)]
|
||||||
|
)
|
||||||
|
))[0]
|
||||||
|
|
||||||
|
users[r.id] = r
|
||||||
|
|
||||||
if isinstance(message, raw.types.MessageEmpty):
|
if isinstance(message, raw.types.MessageEmpty):
|
||||||
return Message(message_id=message.id, empty=True, client=client)
|
return Message(message_id=message.id, empty=True, client=client)
|
||||||
|
|
||||||
@ -499,8 +509,7 @@ class Message(Object, Update):
|
|||||||
voice_chat_members_invited = types.VoiceChatMembersInvited._parse(client, action, users)
|
voice_chat_members_invited = types.VoiceChatMembersInvited._parse(client, action, users)
|
||||||
service_type = "voice_chat_members_invited"
|
service_type = "voice_chat_members_invited"
|
||||||
|
|
||||||
user = utils.get_raw_peer_id(message.from_id) or utils.get_raw_peer_id(message.peer_id)
|
from_user = types.User._parse(client, users.get(user_id, None))
|
||||||
from_user = types.User._parse(client, users.get(user, None))
|
|
||||||
sender_chat = types.Chat._parse(client, message, users, chats) if not from_user else None
|
sender_chat = types.Chat._parse(client, message, users, chats) if not from_user else None
|
||||||
|
|
||||||
parsed_message = Message(
|
parsed_message = Message(
|
||||||
@ -554,8 +563,6 @@ class Message(Object, Update):
|
|||||||
except MessageIdsEmpty:
|
except MessageIdsEmpty:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
return parsed_message
|
return parsed_message
|
||||||
|
|
||||||
if isinstance(message, raw.types.Message):
|
if isinstance(message, raw.types.Message):
|
||||||
@ -696,8 +703,7 @@ class Message(Object, Update):
|
|||||||
else:
|
else:
|
||||||
reply_markup = None
|
reply_markup = None
|
||||||
|
|
||||||
user = utils.get_raw_peer_id(message.from_id) or utils.get_raw_peer_id(message.peer_id)
|
from_user = types.User._parse(client, users.get(user_id, None))
|
||||||
from_user = types.User._parse(client, users.get(user, None))
|
|
||||||
sender_chat = types.Chat._parse(client, message, users, chats) if not from_user else None
|
sender_chat = types.Chat._parse(client, message, users, chats) if not from_user else None
|
||||||
|
|
||||||
parsed_message = Message(
|
parsed_message = Message(
|
||||||
|
Loading…
Reference in New Issue
Block a user