diff --git a/pyrogram/client/types/user_and_chats/chat_member.py b/pyrogram/client/types/user_and_chats/chat_member.py index a0157c28..203be137 100644 --- a/pyrogram/client/types/user_and_chats/chat_member.py +++ b/pyrogram/client/types/user_and_chats/chat_member.py @@ -104,9 +104,17 @@ class ChatMember(Object): Restricted only. True, if the user is allowed to send audios, documents, photos, videos, video notes and voice notes. - can_send_other_messages (``bool``, *optional*): - Restricted only. - True, if the user is allowed to send animations, games, stickers and use inline bots. + can_send_stickers (``bool``, *optional*): + True, if the user is allowed to send stickers, implies can_send_media_messages. + + can_send_animations (``bool``, *optional*): + True, if the user is allowed to send animations (GIFs), implies can_send_media_messages. + + can_send_games (``bool``, *optional*): + True, if the user is allowed to send games, implies can_send_media_messages. + + can_use_inline_bots (``bool``, *optional*): + True, if the user is allowed to use inline bots, implies can_send_media_messages. can_add_web_page_previews (``bool``, *optional*): Restricted only. @@ -145,7 +153,10 @@ class ChatMember(Object): # Restricted user permissions can_send_messages: bool = None, # Text, contacts, locations and venues can_send_media_messages: bool = None, # Audios, documents, photos, videos, video notes and voice notes - can_send_other_messages: bool = None, # Animations (GIFs), games, stickers, inline bot results + can_send_stickers: bool = None, + can_send_animations: bool = None, + can_send_games: bool = None, + can_use_inline_bots: bool = None, can_add_web_page_previews: bool = None, can_send_polls: bool = None ): @@ -173,7 +184,10 @@ class ChatMember(Object): self.can_send_messages = can_send_messages self.can_send_media_messages = can_send_media_messages - self.can_send_other_messages = can_send_other_messages + self.can_send_stickers = can_send_stickers + self.can_send_animations = can_send_animations + self.can_send_games = can_send_games + self.can_use_inline_bots = can_use_inline_bots self.can_add_web_page_previews = can_add_web_page_previews self.can_send_polls = can_send_polls @@ -246,10 +260,10 @@ class ChatMember(Object): restricted_by=pyrogram.User._parse(client, users[member.kicked_by]), can_send_messages=not denied_permissions.send_messages, can_send_media_messages=not denied_permissions.send_media, - can_send_other_messages=( - not denied_permissions.send_stickers or not denied_permissions.send_gifs or - not denied_permissions.send_games or not denied_permissions.send_inline - ), + can_send_stickers=not denied_permissions.send_stickers, + can_send_animations=not denied_permissions.send_gifs, + can_send_games=not denied_permissions.send_games, + can_use_inline_bots=not denied_permissions.send_inline, can_add_web_page_previews=not denied_permissions.embed_links, can_send_polls=not denied_permissions.send_polls, can_change_info=not denied_permissions.change_info, diff --git a/pyrogram/client/types/user_and_chats/chat_permissions.py b/pyrogram/client/types/user_and_chats/chat_permissions.py index 17326922..03d3e072 100644 --- a/pyrogram/client/types/user_and_chats/chat_permissions.py +++ b/pyrogram/client/types/user_and_chats/chat_permissions.py @@ -26,6 +26,15 @@ class ChatPermissions(Object): Some permissions make sense depending on the context: default chat permissions, restricted/kicked member or administrators in groups or channels. + .. note:: + + Pyrogram's chat permission are much more detailed. In particular, you can restrict sending stickers, animations, + games and inline bot results individually, allowing a finer control. + + If you wish to have the same permissions as seen in official apps or in bot API's *"can_send_other_messages"* + simply set these arguments to True: ``can_send_stickers``, ``can_send_animations``, ``can_send_games`` and + ``can_use_inline_bots``. + Parameters: can_send_messages (``bool``, *optional*): True, if the user is allowed to send text messages, contacts, locations and venues. @@ -34,9 +43,17 @@ class ChatPermissions(Object): True, if the user is allowed to send audios, documents, photos, videos, video notes and voice notes, implies can_send_messages. - can_send_other_messages (``bool``, *optional*): - True, if the user is allowed to send animations, games, stickers and use inline bots, implies - can_send_media_messages + can_send_stickers (``bool``, *optional*): + True, if the user is allowed to send stickers, implies can_send_media_messages. + + can_send_animations (``bool``, *optional*): + True, if the user is allowed to send animations (GIFs), implies can_send_media_messages. + + can_send_games (``bool``, *optional*): + True, if the user is allowed to send games, implies can_send_media_messages. + + can_use_inline_bots (``bool``, *optional*): + True, if the user is allowed to use inline bots, implies can_send_media_messages. can_add_web_page_previews (``bool``, *optional*): True, if the user is allowed to add web page previews to their messages, implies can_send_media_messages. @@ -61,7 +78,10 @@ class ChatPermissions(Object): *, can_send_messages: bool = None, # Text, contacts, locations and venues can_send_media_messages: bool = None, # Audios, documents, photos, videos, video notes and voice notes - can_send_other_messages: bool = None, # Animations (GIFs), games, stickers, inline bot results + can_send_stickers: bool = None, + can_send_animations: bool = None, + can_send_games: bool = None, + can_use_inline_bots: bool = None, can_add_web_page_previews: bool = None, can_send_polls: bool = None, can_change_info: bool = None, @@ -72,7 +92,10 @@ class ChatPermissions(Object): self.can_send_messages = can_send_messages self.can_send_media_messages = can_send_media_messages - self.can_send_other_messages = can_send_other_messages + self.can_send_stickers = can_send_stickers + self.can_send_animations = can_send_animations + self.can_send_games = can_send_games + self.can_use_inline_bots = can_use_inline_bots self.can_add_web_page_previews = can_add_web_page_previews self.can_send_polls = can_send_polls self.can_change_info = can_change_info @@ -85,10 +108,10 @@ class ChatPermissions(Object): return ChatPermissions( can_send_messages=not denied_permissions.send_messages, can_send_media_messages=not denied_permissions.send_media, - can_send_other_messages=( - not denied_permissions.send_stickers or not denied_permissions.send_gifs or - not denied_permissions.send_games or not denied_permissions.send_inline - ), + can_send_stickers=not denied_permissions.send_stickers, + can_send_animations=not denied_permissions.send_gifs, + can_send_games=not denied_permissions.send_games, + can_use_inline_bots=not denied_permissions.send_inline, can_add_web_page_previews=not denied_permissions.embed_links, can_send_polls=not denied_permissions.send_polls, can_change_info=not denied_permissions.change_info,