Skip to content

Commit 9199ea4

Browse files
authored
Add USERNAMES_CHANGED and MEMBER_SUBSCRIPTION_EXTENDED to ChatEvent
1 parent 679b7c4 commit 9199ea4

File tree

2 files changed

+51
-3
lines changed

2 files changed

+51
-3
lines changed

pyrogram/enums/chat_event_action.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,9 @@ class ChatEventAction(AutoName):
4848
USERNAME_CHANGED = auto()
4949
"the chat username has been changed (see ``old_username`` and ``new_username``)"
5050

51+
USERNAMES_CHANGED = auto()
52+
"the chat username has been changed (see ``old_usernames`` and ``new_usernames``)"
53+
5154
CHAT_PERMISSIONS_CHANGED = auto()
5255
"the default chat permissions has been changed (see ``old_chat_permissions`` and ``new_chat_permissions``)"
5356

@@ -126,5 +129,8 @@ class ChatEventAction(AutoName):
126129
MESSAGE_UNPINNED = auto()
127130
"a message has been unpinned (see ``unpinned_message``)"
128131

132+
MEMBER_SUBSCRIPTION_EXTENDED = auto()
133+
"A chat member extended their subscription to the chat (``old_chat_member`` and ``new_chat_member``)"
134+
129135
UNKNOWN = auto()
130136
"Unknown chat event action"

pyrogram/types/user_and_chats/chat_event.py

Lines changed: 45 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,7 @@
2020
from typing import List, Optional
2121

2222
import pyrogram
23-
from pyrogram import raw
24-
from pyrogram import types, utils, enums
23+
from pyrogram import raw, types, utils, enums
2524
from ..object import Object
2625

2726

@@ -66,6 +65,10 @@ class ChatEvent(Object):
6665
old_username, new_username (``str``, *optional*):
6766
Previous and new chat username.
6867
For :obj:`~pyrogram.enums.ChatEventAction.USERNAME_CHANGED` action only.
68+
69+
old_usernames, new_usernames (List of :obj:`~pyrogram.types.Username`, *optional*):
70+
Previous and new chat usernames.
71+
For :obj:`~pyrogram.enums.ChatEventAction.USERNAMES_CHANGED` action only.
6972
7073
old_chat_permissions, new_chat_permissions (:obj:`~pyrogram.types.ChatPermissions`, *optional*):
7174
Previous and new default chat permissions.
@@ -142,6 +145,11 @@ class ChatEvent(Object):
142145
deleted_invite_link (:obj:`~pyrogram.types.ChatInviteLink`, *optional*):
143146
Deleted invite link.
144147
For :obj:`~pyrogram.enums.ChatEventAction.INVITE_LINK_DELETED` action only.
148+
149+
old_chat_member, new_chat_member (:obj:`~pyrogram.types.ChatMember`, *optional*):
150+
Affected chat member status of the user.
151+
For :obj:`~pyrogram.enums.ChatEventAction.MEMBER_SUBSCRIPTION_EXTENDED` action only.
152+
145153
"""
146154

147155
def __init__(
@@ -169,6 +177,9 @@ def __init__(
169177
old_username: str = None,
170178
new_username: str = None,
171179

180+
old_usernames: List["types.Username"] = None,
181+
new_usernames: List["types.Username"] = None,
182+
172183
old_chat_permissions: "types.ChatPermissions" = None,
173184
new_chat_permissions: "types.ChatPermissions" = None,
174185

@@ -205,7 +216,10 @@ def __init__(
205216
old_invite_link: "types.ChatInviteLink" = None,
206217
new_invite_link: "types.ChatInviteLink" = None,
207218
revoked_invite_link: "types.ChatInviteLink" = None,
208-
deleted_invite_link: "types.ChatInviteLink" = None
219+
deleted_invite_link: "types.ChatInviteLink" = None,
220+
221+
old_chat_member: "types.ChatMember" = None,
222+
new_chat_member: "types.ChatMember" = None,
209223
):
210224
super().__init__()
211225

@@ -232,6 +246,9 @@ def __init__(
232246
self.old_username = old_username
233247
self.new_username = new_username
234248

249+
self.old_usernames = old_usernames
250+
self.new_usernames = new_usernames
251+
235252
self.old_chat_permissions = old_chat_permissions
236253
self.new_chat_permissions = new_chat_permissions
237254

@@ -270,6 +287,9 @@ def __init__(
270287
self.revoked_invite_link = revoked_invite_link
271288
self.deleted_invite_link = deleted_invite_link
272289

290+
self.old_chat_member = old_chat_member
291+
self.new_chat_member = new_chat_member
292+
273293
@staticmethod
274294
async def _parse(
275295
client: "pyrogram.Client",
@@ -301,6 +321,9 @@ async def _parse(
301321
old_username: Optional[str] = None
302322
new_username: Optional[str] = None
303323

324+
old_usernames: Optional[types.List[types.Username]] = None
325+
new_usernames: Optional[types.List[types.Username]] = None
326+
304327
old_chat_permissions: Optional[types.ChatPermissions] = None
305328
new_chat_permissions: Optional[types.ChatPermissions] = None
306329

@@ -339,6 +362,9 @@ async def _parse(
339362
revoked_invite_link: Optional[types.ChatInviteLink] = None
340363
deleted_invite_link: Optional[types.ChatInviteLink] = None
341364

365+
old_chat_member: Optional[types.ChatMember] = None
366+
new_chat_member: Optional[types.ChatMember] = None
367+
342368
if isinstance(action, raw.types.ChannelAdminLogEventActionChangeAbout):
343369
old_description = action.prev_value
344370
new_description = action.new_value
@@ -369,6 +395,11 @@ async def _parse(
369395
new_username = action.new_value
370396
action = enums.ChatEventAction.USERNAME_CHANGED
371397

398+
elif isinstance(action, raw.types.ChannelAdminLogEventActionChangeUsernames):
399+
old_usernames = types.List([types.Username(username=p) for p in action.prev_value])
400+
new_usernames = types.List([types.Username(username=n) for n in action.new_value])
401+
action = enums.ChatEventAction.USERNAMES_CHANGED
402+
372403
elif isinstance(action, raw.types.ChannelAdminLogEventActionDefaultBannedRights):
373404
old_chat_permissions = types.ChatPermissions._parse(action.prev_banned_rights)
374405
new_chat_permissions = types.ChatPermissions._parse(action.new_banned_rights)
@@ -473,6 +504,11 @@ async def _parse(
473504
approver_user = types.User._parse(client, users[action.approved_by])
474505
action = enums.ChatEventAction.MEMBER_JOINED_BY_REQUEST
475506

507+
elif isinstance(action, raw.types.ChannelAdminLogEventActionParticipantSubExtend):
508+
old_chat_member = types.ChatMember._parse(client, action.prev_participant, users, chats)
509+
new_chat_member = types.ChatMember._parse(client, action.new_participant, users, chats)
510+
action = enums.ChatEventAction.MEMBER_SUBSCRIPTION_EXTENDED
511+
476512
else:
477513
action = f"{enums.ChatEventAction.UNKNOWN}-{action.QUALNAME}"
478514

@@ -500,6 +536,9 @@ async def _parse(
500536
old_username=old_username,
501537
new_username=new_username,
502538

539+
old_usernames=old_usernames,
540+
new_usernames=new_usernames,
541+
503542
old_chat_permissions=old_chat_permissions,
504543
new_chat_permissions=new_chat_permissions,
505544

@@ -537,4 +576,7 @@ async def _parse(
537576
new_invite_link=new_invite_link,
538577
revoked_invite_link=revoked_invite_link,
539578
deleted_invite_link=deleted_invite_link,
579+
580+
old_chat_member=old_chat_member,
581+
new_chat_member=new_chat_member,
540582
)

0 commit comments

Comments
 (0)