Skip to content

Commit d6a1503

Browse files
committed
Add "date" attribute to ChatMember (#204)
1 parent 76d4e4f commit d6a1503

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

pyrogram/client/types/user_and_chats/chat_member.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)