2
0
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:
Dan 2019-04-14 21:04:34 +02:00
parent bcef74c574
commit b056aa8d7f

View File

@ -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