mirror of
https://github.com/pyrogram/pyrogram
synced 2025-08-29 05:18:10 +00:00
Add the field is_member to the ChatMember type
This can be used to find whether a restricted user is a member of the chat at the moment of the request.
This commit is contained in:
parent
bcef74c574
commit
b056aa8d7f
@ -36,6 +36,9 @@ class ChatMember(PyrogramType):
|
|||||||
date (``int``, *optional*):
|
date (``int``, *optional*):
|
||||||
Date when the user joined, unix time. Not available for creator.
|
Date when the user joined, unix time. Not available for creator.
|
||||||
|
|
||||||
|
is_member (``bool``, *optional*):
|
||||||
|
Restricted only. True, if the user is a member of the chat at the moment of the request.
|
||||||
|
|
||||||
invited_by (:obj:`User <pyrogram.User>`, *optional*):
|
invited_by (:obj:`User <pyrogram.User>`, *optional*):
|
||||||
Administrators and self member only. Information about the user who invited this member.
|
Administrators and self member only. Information about the user who invited this member.
|
||||||
In case the user joined by himself this will be the same as "user".
|
In case the user joined by himself this will be the same as "user".
|
||||||
@ -51,7 +54,7 @@ class ChatMember(PyrogramType):
|
|||||||
Information about the member permissions.
|
Information about the member permissions.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
__slots__ = ["user", "status", "date", "invited_by", "promoted_by", "restricted_by", "permissions"]
|
__slots__ = ["user", "status", "date", "is_member", "invited_by", "promoted_by", "restricted_by", "permissions"]
|
||||||
|
|
||||||
def __init__(
|
def __init__(
|
||||||
self,
|
self,
|
||||||
@ -60,6 +63,7 @@ class ChatMember(PyrogramType):
|
|||||||
user: "pyrogram.User",
|
user: "pyrogram.User",
|
||||||
status: str,
|
status: str,
|
||||||
date: int = None,
|
date: int = None,
|
||||||
|
is_member: bool = None,
|
||||||
invited_by: "pyrogram.User" = None,
|
invited_by: "pyrogram.User" = None,
|
||||||
promoted_by: "pyrogram.User" = None,
|
promoted_by: "pyrogram.User" = None,
|
||||||
restricted_by: "pyrogram.User" = None,
|
restricted_by: "pyrogram.User" = None,
|
||||||
@ -70,6 +74,7 @@ class ChatMember(PyrogramType):
|
|||||||
self.user = user
|
self.user = user
|
||||||
self.status = status
|
self.status = status
|
||||||
self.date = date
|
self.date = date
|
||||||
|
self.is_member = is_member
|
||||||
self.invited_by = invited_by
|
self.invited_by = invited_by
|
||||||
self.promoted_by = promoted_by
|
self.promoted_by = promoted_by
|
||||||
self.restricted_by = restricted_by
|
self.restricted_by = restricted_by
|
||||||
@ -121,14 +126,17 @@ class ChatMember(PyrogramType):
|
|||||||
)
|
)
|
||||||
|
|
||||||
if isinstance(member, types.ChannelParticipantBanned):
|
if isinstance(member, types.ChannelParticipantBanned):
|
||||||
|
status = (
|
||||||
|
"kicked" if member.banned_rights.view_messages
|
||||||
|
else "left" if member.left
|
||||||
|
else "restricted"
|
||||||
|
)
|
||||||
|
|
||||||
return ChatMember(
|
return ChatMember(
|
||||||
user=user,
|
user=user,
|
||||||
status=(
|
status=status,
|
||||||
"kicked" if member.banned_rights.view_messages
|
|
||||||
else "left" if member.left
|
|
||||||
else "restricted"
|
|
||||||
),
|
|
||||||
date=member.date,
|
date=member.date,
|
||||||
|
is_member=not member.left if status == "restricted" else None,
|
||||||
restricted_by=pyrogram.User._parse(client, users[member.kicked_by]),
|
restricted_by=pyrogram.User._parse(client, users[member.kicked_by]),
|
||||||
permissions=pyrogram.ChatPermissions._parse(member),
|
permissions=pyrogram.ChatPermissions._parse(member),
|
||||||
client=client
|
client=client
|
||||||
|
Loading…
x
Reference in New Issue
Block a user