@@ -433,6 +433,16 @@ async def _parse(
433433 is_scheduled : bool = False ,
434434 replies : int = 1
435435 ):
436+ user_id = utils .get_raw_peer_id (message .from_id ) or utils .get_raw_peer_id (message .peer_id )
437+ if user_id not in users :
438+ r = (await client .send (
439+ raw .functions .users .GetUsers (
440+ id = [await client .resolve_peer (user_id )]
441+ )
442+ ))[0 ]
443+
444+ users [r .id ] = r
445+
436446 if isinstance (message , raw .types .MessageEmpty ):
437447 return Message (message_id = message .id , empty = True , client = client )
438448
@@ -499,8 +509,7 @@ async def _parse(
499509 voice_chat_members_invited = types .VoiceChatMembersInvited ._parse (client , action , users )
500510 service_type = "voice_chat_members_invited"
501511
502- user = utils .get_raw_peer_id (message .from_id ) or utils .get_raw_peer_id (message .peer_id )
503- from_user = types .User ._parse (client , users .get (user , None ))
512+ from_user = types .User ._parse (client , users .get (user_id , None ))
504513 sender_chat = types .Chat ._parse (client , message , users , chats ) if not from_user else None
505514
506515 parsed_message = Message (
@@ -554,8 +563,6 @@ async def _parse(
554563 except MessageIdsEmpty :
555564 pass
556565
557-
558-
559566 return parsed_message
560567
561568 if isinstance (message , raw .types .Message ):
@@ -696,8 +703,7 @@ async def _parse(
696703 else :
697704 reply_markup = None
698705
699- user = utils .get_raw_peer_id (message .from_id ) or utils .get_raw_peer_id (message .peer_id )
700- from_user = types .User ._parse (client , users .get (user , None ))
706+ from_user = types .User ._parse (client , users .get (user_id , None ))
701707 sender_chat = types .Chat ._parse (client , message , users , chats ) if not from_user else None
702708
703709 parsed_message = Message (
0 commit comments