@@ -40,7 +40,7 @@ class ChecklistTask(Object):
4040 Special entities that appear in the task text.
4141 May contain only Bold, Italic, Underline, Strikethrough, Spoiler, CustomEmoji, Url, EmailAddress, Mention, Hashtag, Cashtag and PhoneNumber entities.
4242
43- completed_by_user (:obj:`~pyrogram.types.User `, *optional*):
43+ completed_by_user (:obj:`~pyrogram.types.Chat `, *optional*):
4444 The user that completed the task.
4545 None if the task isn't completed.
4646
@@ -56,7 +56,7 @@ def __init__(
5656 id : int ,
5757 text : str ,
5858 text_entities : Optional [list ["types.MessageEntity" ]] = None ,
59- completed_by_user : Optional ["types.User " ] = None ,
59+ completed_by_user : Optional ["types.Chat " ] = None ,
6060 completion_date : Optional [datetime ] = None ,
6161 ):
6262 super ().__init__ ()
@@ -73,6 +73,7 @@ def _parse(
7373 item : "raw.types.TodoItem" ,
7474 completion : "raw.types.TodoCompletion" ,
7575 users : Dict [int , "raw.base.User" ],
76+ chats : Dict [int , "raw.base.Chat" ],
7677 ) -> "ChecklistTask" :
7778 text_entities = [
7879 types .MessageEntity ._parse (client , entity , users )
@@ -81,10 +82,19 @@ def _parse(
8182 text_entities = types .List (filter (lambda x : x is not None , text_entities ))
8283 text = Str (item .title .text ).init (text_entities ) or None
8384
85+ completed_by_peer = getattr (completion , "completed_by" , None )
86+ completed_by_chat = None
87+ if completed_by_peer :
88+ completed_by_peer_id = utils .get_raw_peer_id (completed_by_peer )
89+ if isinstance (completed_by_peer , raw .types .PeerUser ):
90+ completed_by_chat = types .Chat ._parse_chat (client , users .get (completed_by_peer_id ))
91+ else :
92+ completed_by_chat = types .Chat ._parse_chat (client , chats .get (completed_by_peer_id ))
93+
8494 return ChecklistTask (
8595 id = item .id ,
8696 text = text ,
8797 text_entities = text_entities ,
88- completed_by_user = types . User . _parse ( client , users . get ( getattr ( completion , "completed_by" , None ))) ,
98+ completed_by_user = completed_by_chat ,
8999 completion_date = utils .timestamp_to_datetime (getattr (completion , "date" , None ))
90100 )
0 commit comments