@@ -38,10 +38,10 @@ class ChatMemberUpdated(Object, Update):
3838 date (``int``):
3939 Date the change was done in Unix time.
4040
41- old_chat_member (:obj:`~pyrogram.types.ChatMember`):
41+ old_chat_member (:obj:`~pyrogram.types.ChatMember`, *optional* ):
4242 Previous information about the chat member.
4343
44- new_chat_member (:obj:`~pyrogram.types.ChatMember`):
44+ new_chat_member (:obj:`~pyrogram.types.ChatMember`, *optional* ):
4545 New information about the chat member.
4646
4747 invite_link (:obj:`~pyrogram.types.ChatInviteLink`, *optional*):
@@ -76,14 +76,26 @@ def _parse(
7676 chats : Dict [int , "raw.types.Chat" ]
7777 ) -> "ChatMemberUpdated" :
7878 chat_id = getattr (update , "chat_id" , None ) or getattr (update , "channel_id" )
79- invite_link = types .ChatInviteLink ._parse (client , update .invite , users ) if update .invite else None
79+
80+ old_chat_member = None
81+ new_chat_member = None
82+ invite_link = None
83+
84+ if update .prev_participant :
85+ old_chat_member = types .ChatMember ._parse (client , update .prev_participant , users )
86+
87+ if update .new_participant :
88+ new_chat_member = types .ChatMember ._parse (client , update .new_participant , users )
89+
90+ if update .invite :
91+ invite_link = types .ChatInviteLink ._parse (client , update .invite , users )
8092
8193 return ChatMemberUpdated (
8294 chat = types .Chat ._parse_chat (client , chats [chat_id ]),
8395 from_user = types .User ._parse (client , users [update .actor_id ]),
8496 date = update .date ,
85- old_chat_member = types . ChatMember . _parse ( client , update . prev_participant , users ) ,
86- new_chat_member = types . ChatMember . _parse ( client , update . new_participant , users ) ,
97+ old_chat_member = old_chat_member ,
98+ new_chat_member = new_chat_member ,
8799 invite_link = invite_link ,
88100 client = client
89101 )
0 commit comments