mirror of
https://github.com/Mayuri-Chan/pyrofork.git
synced 2025-12-29 12:04:51 +00:00
Pyrofork: add all_perms parameter to ChatPermissions
Signed-off-by: wulan17 <wulan17@nusantararom.org>
This commit is contained in:
parent
a37ca092d5
commit
d93285b7ba
2 changed files with 123 additions and 19 deletions
|
|
@ -65,6 +65,59 @@ class SetChatPermissions:
|
|||
)
|
||||
"""
|
||||
|
||||
if permissions.all_perms is not None:
|
||||
send_audios=None
|
||||
send_docs=None
|
||||
send_games=None
|
||||
send_gifs=None
|
||||
send_inline=None
|
||||
send_photos=None
|
||||
send_plain=None
|
||||
send_roundvideos=None
|
||||
send_stickers=None
|
||||
send_videos=None
|
||||
send_voices=None
|
||||
if permissions.all_perms:
|
||||
send_messages=False
|
||||
send_media=False
|
||||
send_polls=False
|
||||
embed_links=False
|
||||
change_info=False
|
||||
invite_users=False
|
||||
pin_messages=False
|
||||
manage_topics=False
|
||||
send_inline=False
|
||||
else:
|
||||
send_messages=True
|
||||
send_media=True
|
||||
send_polls=True
|
||||
embed_links=True
|
||||
change_info=True
|
||||
invite_users=True
|
||||
pin_messages=True
|
||||
manage_topics=True
|
||||
send_inline=True
|
||||
else:
|
||||
send_messages=not permissions.can_send_messages if permissions.can_send_messages is not None else None
|
||||
send_media=not permissions.can_send_media_messages if permissions.can_send_media_messages is not None else None
|
||||
embed_links=not permissions.can_add_web_page_previews if permissions.can_add_web_page_previews is not None else not old_permissions.can_add_web_page_previews
|
||||
send_polls=not permissions.can_send_polls if permissions.can_send_polls is not None else not old_permissions.can_send_polls
|
||||
change_info=not permissions.can_change_info if permissions.can_change_info is not None else not old_permissions.can_change_info
|
||||
invite_users=not permissions.can_invite_users if permissions.can_invite_users is not None else not old_permissions.can_invite_users
|
||||
pin_messages=not permissions.can_pin_messages if permissions.can_pin_messages is not None else not old_permissions.can_pin_messages
|
||||
manage_topics=not permissions.can_manage_topics if permissions.can_manage_topics is not None else not old_permissions.can_manage_topics
|
||||
send_audios=not permissions.can_send_audios if permissions.can_send_audios is not None else not old_permissions.can_send_audios
|
||||
send_docs=not permissions.can_send_docs if permissions.can_send_docs is not None else not old_permissions.can_send_docs
|
||||
send_games=not permissions.can_send_games if permissions.can_send_games is not None else not old_permissions.can_send_games
|
||||
send_gifs=not permissions.can_send_gifs if permissions.can_send_gifs is not None else not old_permissions.can_send_gifs
|
||||
send_inline=not permissions.can_send_inline if permissions.can_send_inline is not None else not old_permissions.can_send_inline
|
||||
send_photos=not permissions.can_send_photos if permissions.can_send_photos is not None else not old_permissions.can_send_photos
|
||||
send_plain=not permissions.can_send_plain if permissions.can_send_plain is not None else not old_permissions.can_send_plain
|
||||
send_roundvideos=not permissions.can_send_roundvideos if permissions.can_send_roundvideos is not None else not old_permissions.can_send_roundvideos
|
||||
send_stickers=not permissions.can_send_stickers if permissions.can_send_stickers is not None else not old_permissions.can_send_stickers
|
||||
send_videos=not permissions.can_send_videos if permissions.can_send_videos is not None else not old_permissions.can_send_videos
|
||||
send_voices=not permissions.can_send_voices if permissions.can_send_voices is not None else not old_permissions.can_send_voices
|
||||
|
||||
old_permissions = (await self.get_chat(chat_id)).permissions
|
||||
|
||||
r = await self.invoke(
|
||||
|
|
@ -72,25 +125,25 @@ class SetChatPermissions:
|
|||
peer=await self.resolve_peer(chat_id),
|
||||
banned_rights=raw.types.ChatBannedRights(
|
||||
until_date=0,
|
||||
send_messages=not permissions.can_send_messages if permissions.can_send_messages is not None else None,
|
||||
send_media=not permissions.can_send_media_messages if permissions.can_send_media_messages is not None else None,
|
||||
embed_links=not permissions.can_add_web_page_previews if permissions.can_add_web_page_previews is not None else not old_permissions.can_add_web_page_previews,
|
||||
send_polls=not permissions.can_send_polls if permissions.can_send_polls is not None else not old_permissions.can_send_polls,
|
||||
change_info=not permissions.can_change_info if permissions.can_change_info is not None else not old_permissions.can_change_info,
|
||||
invite_users=not permissions.can_invite_users if permissions.can_invite_users is not None else not old_permissions.can_invite_users,
|
||||
pin_messages=not permissions.can_pin_messages if permissions.can_pin_messages is not None else not old_permissions.can_pin_messages,
|
||||
manage_topics=not permissions.can_manage_topics if permissions.can_manage_topics is not None else not old_permissions.can_manage_topics,
|
||||
send_audios=not permissions.can_send_audios if permissions.can_send_audios is not None else not old_permissions.can_send_audios,
|
||||
send_docs=not permissions.can_send_docs if permissions.can_send_docs is not None else not old_permissions.can_send_docs,
|
||||
send_games=not permissions.can_send_games if permissions.can_send_games is not None else not old_permissions.can_send_games,
|
||||
send_gifs=not permissions.can_send_gifs if permissions.can_send_gifs is not None else not old_permissions.can_send_gifs,
|
||||
send_inline=not permissions.can_send_inline if permissions.can_send_inline is not None else not old_permissions.can_send_inline,
|
||||
send_photos=not permissions.can_send_photos if permissions.can_send_photos is not None else not old_permissions.can_send_photos,
|
||||
send_plain=not permissions.can_send_plain if permissions.can_send_plain is not None else not old_permissions.can_send_plain,
|
||||
send_roundvideos=not permissions.can_send_roundvideos if permissions.can_send_roundvideos is not None else not old_permissions.can_send_roundvideos,
|
||||
send_stickers=not permissions.can_send_stickers if permissions.can_send_stickers is not None else not old_permissions.can_send_stickers,
|
||||
send_videos=not permissions.can_send_videos if permissions.can_send_videos is not None else not old_permissions.can_send_videos,
|
||||
send_voices=not permissions.can_send_voices if permissions.can_send_voices is not None else not old_permissions.can_send_voices
|
||||
send_messages=send_messages,
|
||||
send_media=send_media,
|
||||
embed_links=embed_links,
|
||||
send_polls=send_polls,
|
||||
change_info=change_info,
|
||||
invite_users=invite_users,
|
||||
pin_messages=pin_messages,
|
||||
manage_topics=manage_topics,
|
||||
send_audios=send_audios,
|
||||
send_docs=send_docs,
|
||||
send_games=send_games,
|
||||
send_gifs=send_gifs,
|
||||
send_inline=send_inline,
|
||||
send_photos=send_photos,
|
||||
send_plain=send_plain,
|
||||
send_roundvideos=send_roundvideos,
|
||||
send_stickers=send_stickers,
|
||||
send_videos=send_videos,
|
||||
send_voices=send_voices
|
||||
)
|
||||
)
|
||||
)
|
||||
|
|
|
|||
|
|
@ -25,6 +25,9 @@ class ChatPermissions(Object):
|
|||
"""Describes actions that a non-administrator user is allowed to take in a chat.
|
||||
|
||||
Parameters:
|
||||
all_perms (``bool``, *optional*):
|
||||
True, if all permissions are allowed.
|
||||
|
||||
can_send_messages (``bool``, *optional*):
|
||||
True, if the user is allowed to send text messages, contacts, locations and venues.
|
||||
|
||||
|
|
@ -92,6 +95,7 @@ class ChatPermissions(Object):
|
|||
def __init__(
|
||||
self,
|
||||
*,
|
||||
all_perms: bool = None,
|
||||
can_send_messages: bool = None, # Text, contacts, locations and venues
|
||||
can_send_media_messages: bool = None, # Audio files, documents, photos, videos, video notes and voice notes
|
||||
can_send_polls: bool = None,
|
||||
|
|
@ -114,6 +118,7 @@ class ChatPermissions(Object):
|
|||
):
|
||||
super().__init__(None)
|
||||
|
||||
self.all_perms = all_perms
|
||||
self.can_send_messages = can_send_messages
|
||||
self.can_send_media_messages = can_send_media_messages
|
||||
self.can_send_polls = can_send_polls
|
||||
|
|
@ -137,7 +142,53 @@ class ChatPermissions(Object):
|
|||
@staticmethod
|
||||
def _parse(denied_permissions: "raw.base.ChatBannedRights") -> "ChatPermissions":
|
||||
if isinstance(denied_permissions, raw.types.ChatBannedRights):
|
||||
all_permissions = None
|
||||
all_params = [
|
||||
denied_permissions.send_messages,
|
||||
denied_permissions.send_media,
|
||||
denied_permissions.embed_links,
|
||||
denied_permissions.send_polls,
|
||||
denied_permissions.change_info,
|
||||
denied_permissions.invite_users,
|
||||
denied_permissions.pin_messages,
|
||||
denied_permissions.send_audios,
|
||||
denied_permissions.send_docs,
|
||||
denied_permissions.send_games,
|
||||
denied_permissions.send_gifs,
|
||||
denied_permissions.send_inline,
|
||||
denied_permissions.send_photos,
|
||||
denied_permissions.send_plain,
|
||||
denied_permissions.send_roundvideos,
|
||||
denied_permissions.send_stickers,
|
||||
denied_permissions.send_videos,
|
||||
denied_permissions.send_voices
|
||||
]
|
||||
all_params_not = [
|
||||
not denied_permissions.send_messages,
|
||||
not denied_permissions.send_media,
|
||||
not denied_permissions.embed_links,
|
||||
not denied_permissions.send_polls,
|
||||
not denied_permissions.change_info,
|
||||
not denied_permissions.invite_users,
|
||||
not denied_permissions.pin_messages,
|
||||
not denied_permissions.send_audios,
|
||||
not denied_permissions.send_docs,
|
||||
not denied_permissions.send_games,
|
||||
not denied_permissions.send_gifs,
|
||||
not denied_permissions.send_inline,
|
||||
not denied_permissions.send_photos,
|
||||
not denied_permissions.send_plain,
|
||||
not denied_permissions.send_roundvideos,
|
||||
not denied_permissions.send_stickers,
|
||||
not denied_permissions.send_videos,
|
||||
not denied_permissions.send_voices
|
||||
]
|
||||
if all(all_params):
|
||||
all_permissions = False
|
||||
elif all(all_params_not):
|
||||
all_permissions = True
|
||||
return ChatPermissions(
|
||||
all_perms=all_permissions,
|
||||
can_send_messages=not denied_permissions.send_messages,
|
||||
can_send_media_messages=not denied_permissions.send_media,
|
||||
can_add_web_page_previews=not denied_permissions.embed_links,
|
||||
|
|
|
|||
Loading…
Reference in a new issue