Skip to content

Commit 9f5bb60

Browse files
committed
Affempt (3) to fix restrict_chat_member
1 parent 18094f4 commit 9f5bb60

File tree

2 files changed

+37
-26
lines changed

2 files changed

+37
-26
lines changed

pyrogram/methods/chats/restrict_chat_member.py

Lines changed: 3 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -83,31 +83,9 @@ async def restrict_chat_member(
8383
raw.functions.channels.EditBanned(
8484
channel=await self.resolve_peer(chat_id),
8585
participant=await self.resolve_peer(user_id),
86-
banned_rights=raw.types.ChatBannedRights(
87-
until_date=utils.datetime_to_timestamp(until_date),
88-
send_messages=not permissions.can_send_messages,
89-
send_media=not permissions.can_send_media_messages,
90-
send_stickers=not permissions.can_send_other_messages,
91-
send_gifs=not permissions.can_send_other_messages,
92-
send_games=not permissions.can_send_other_messages,
93-
send_inline=not permissions.can_send_other_messages,
94-
embed_links=not permissions.can_add_web_page_previews,
95-
send_polls=not permissions.can_send_polls,
96-
change_info=not permissions.can_change_info,
97-
invite_users=not permissions.can_invite_users,
98-
pin_messages=not permissions.can_pin_messages,
99-
manage_topics=(
100-
permissions.can_manage_topics and
101-
not permissions.can_manage_topics
102-
) or not permissions.can_pin_messages,
103-
# view_messages=# TODO
104-
send_audios=not permissions.can_send_audios,# TODO
105-
send_docs=not permissions.can_send_documents,# TODO
106-
send_photos=not permissions.can_send_photos,# TODO
107-
send_videos=not permissions.can_send_videos,# TODO
108-
send_roundvideos=not permissions.can_send_video_notes,# TODO
109-
send_voices=not permissions.can_send_voice_notes,# TODO
110-
# send_plain=# TODO
86+
banned_rights=permissions.write(
87+
use_independent_chat_permissions,
88+
until_date
11189
)
11290
)
11391
)

pyrogram/types/user_and_chats/chat_permissions.py

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,8 @@
1616
# You should have received a copy of the GNU Lesser General Public License
1717
# along with Pyrogram. If not, see <http://www.gnu.org/licenses/>.
1818

19-
from pyrogram import raw
19+
from datetime import datetime
20+
from pyrogram import raw, utils
2021
from ..object import Object
2122

2223

@@ -186,3 +187,35 @@ def _parse(denied_permissions: "raw.base.ChatBannedRights") -> "ChatPermissions"
186187
can_manage_topics=can_manage_topics,
187188
can_send_media_messages=can_send_media_messages
188189
)
190+
191+
def write(
192+
permissions: "ChatPermissions",
193+
use_independent_chat_permissions: bool,
194+
until_date: datetime = utils.zero_datetime()
195+
) -> "raw.base.ChatBannedRights":
196+
return raw.types.ChatBannedRights(
197+
until_date=utils.datetime_to_timestamp(until_date),
198+
send_messages=not permissions.can_send_messages,
199+
send_media=not permissions.can_send_media_messages,
200+
send_stickers=not permissions.can_send_other_messages,
201+
send_gifs=not permissions.can_send_other_messages,
202+
send_games=not permissions.can_send_other_messages,
203+
send_inline=not permissions.can_send_other_messages,
204+
embed_links=not permissions.can_add_web_page_previews,
205+
send_polls=not permissions.can_send_polls,
206+
change_info=not permissions.can_change_info,
207+
invite_users=not permissions.can_invite_users,
208+
pin_messages=not permissions.can_pin_messages,
209+
manage_topics=(
210+
permissions.can_manage_topics and
211+
not permissions.can_manage_topics
212+
) or not permissions.can_pin_messages,
213+
# view_messages=# TODO
214+
send_audios=not permissions.can_send_audios,# TODO
215+
send_docs=not permissions.can_send_documents,# TODO
216+
send_photos=not permissions.can_send_photos,# TODO
217+
send_videos=not permissions.can_send_videos,# TODO
218+
send_roundvideos=not permissions.can_send_video_notes,# TODO
219+
send_voices=not permissions.can_send_voice_notes,# TODO
220+
# send_plain=# TODO
221+
)

0 commit comments

Comments
 (0)