@@ -33,6 +33,9 @@ class ChatMember(PyrogramType):
3333 The member's status in the chat. Can be "creator", "administrator", "member", "restricted",
3434 "left" or "kicked".
3535
36+ date (``int``, *optional*):
37+ Date when the user joined, unix time. Not available for creator.
38+
3639 until_date (``int``, *optional*):
3740 Restricted and kicked only. Date when restrictions will be lifted for this user, unix time.
3841
@@ -86,6 +89,7 @@ def __init__(self,
8689 client : "pyrogram.client.ext.BaseClient" ,
8790 user : "pyrogram.User" ,
8891 status : str ,
92+ date : int = None ,
8993 until_date : int = None ,
9094 can_be_edited : bool = None ,
9195 can_change_info : bool = None ,
@@ -104,6 +108,7 @@ def __init__(self,
104108
105109 self .user = user
106110 self .status = status
111+ self .date = date
107112 self .until_date = until_date
108113 self .can_be_edited = can_be_edited
109114 self .can_change_info = can_change_info
@@ -124,20 +129,21 @@ def _parse(client, member, user) -> "ChatMember":
124129 user = pyrogram .User ._parse (client , user )
125130
126131 if isinstance (member , (types .ChannelParticipant , types .ChannelParticipantSelf , types .ChatParticipant )):
127- return ChatMember (user = user , status = "member" , client = client )
132+ return ChatMember (user = user , status = "member" , date = member . date , client = client )
128133
129134 if isinstance (member , (types .ChannelParticipantCreator , types .ChatParticipantCreator )):
130135 return ChatMember (user = user , status = "creator" , client = client )
131136
132137 if isinstance (member , types .ChatParticipantAdmin ):
133- return ChatMember (user = user , status = "administrator" , client = client )
138+ return ChatMember (user = user , status = "administrator" , date = member . date , client = client )
134139
135140 if isinstance (member , types .ChannelParticipantAdmin ):
136141 rights = member .admin_rights
137142
138143 return ChatMember (
139144 user = user ,
140145 status = "administrator" ,
146+ date = member .date ,
141147 can_be_edited = member .can_edit ,
142148 can_change_info = rights .change_info ,
143149 can_post_messages = rights .post_messages ,
@@ -160,6 +166,7 @@ def _parse(client, member, user) -> "ChatMember":
160166 else "kicked" if rights .view_messages
161167 else "restricted"
162168 ),
169+ date = member .date ,
163170 until_date = 0 if rights .until_date == (1 << 31 ) - 1 else rights .until_date ,
164171 client = client
165172 )
0 commit comments