Spaces:
Sleeping
Sleeping
Captain Ezio
commited on
Commit
·
225c97e
1
Parent(s):
2a73bdb
fine now may be
Browse files- Powers/plugins/admin.py +83 -15
Powers/plugins/admin.py
CHANGED
@@ -208,14 +208,7 @@ async def fullpromote_usr(c: Gojo, m: Message):
|
|
208 |
try:
|
209 |
await m.chat.promote_member(
|
210 |
user_id=user_id,
|
211 |
-
|
212 |
-
can_invite_users=bot.privileges.can_invite_users,
|
213 |
-
can_delete_messages=bot.privileges.can_delete_messages,
|
214 |
-
can_restrict_members=bot.privileges.can_restrict_members,
|
215 |
-
can_pin_messages=bot.privileges.can_pin_messages,
|
216 |
-
can_promote_members=bot.privileges.can_promote_members,
|
217 |
-
can_manage_chat=bot.privileges.can_manage_chat,
|
218 |
-
can_manage_video_chats=bot.privileges.can_manage_video_chats,
|
219 |
)
|
220 |
|
221 |
title = ""
|
@@ -321,13 +314,15 @@ async def promote_usr(c: Gojo, m: Message):
|
|
321 |
try:
|
322 |
await m.chat.promote_member(
|
323 |
user_id=user_id,
|
324 |
-
|
325 |
-
|
326 |
-
|
327 |
-
|
328 |
-
|
329 |
-
|
330 |
-
|
|
|
|
|
331 |
)
|
332 |
|
333 |
title = "" # Deafult title
|
@@ -389,6 +384,79 @@ async def promote_usr(c: Gojo, m: Message):
|
|
389 |
LOGGER.error(format_exc())
|
390 |
return
|
391 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
392 |
|
393 |
@Gojo.on_message(command("invitelink"))
|
394 |
async def get_invitelink(c: Gojo, m: Message):
|
|
|
208 |
try:
|
209 |
await m.chat.promote_member(
|
210 |
user_id=user_id,
|
211 |
+
privileges=bot.privileges
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
212 |
)
|
213 |
|
214 |
title = ""
|
|
|
314 |
try:
|
315 |
await m.chat.promote_member(
|
316 |
user_id=user_id,
|
317 |
+
privileges=ChatPrivileges(
|
318 |
+
can_change_info=bot.privileges.can_change_info,
|
319 |
+
can_invite_users=bot.privileges.can_invite_users,
|
320 |
+
can_delete_messages=bot.privileges.can_delete_messages,
|
321 |
+
can_restrict_members=bot.privileges.can_restrict_members,
|
322 |
+
can_pin_messages=bot.privileges.can_pin_messages,
|
323 |
+
can_manage_chat=bot.privileges.can_manage_chat,
|
324 |
+
can_manage_video_chats=bot.privileges.can_manage_video_chats,
|
325 |
+
)
|
326 |
)
|
327 |
|
328 |
title = "" # Deafult title
|
|
|
384 |
LOGGER.error(format_exc())
|
385 |
return
|
386 |
|
387 |
+
@Gojo.on_message(command("demote") & promote_filter)
|
388 |
+
async def demote_usr(c: Gojo, m: Message):
|
389 |
+
|
390 |
+
global ADMIN_CACHE
|
391 |
+
|
392 |
+
if len(m.text.split()) == 1 and not m.reply_to_message:
|
393 |
+
await m.reply_text("I can't demote nothing.")
|
394 |
+
return
|
395 |
+
|
396 |
+
try:
|
397 |
+
user_id, user_first_name, _ = await extract_user(c, m)
|
398 |
+
except Exception:
|
399 |
+
return
|
400 |
+
|
401 |
+
if user_id == Config.BOT_ID:
|
402 |
+
await m.reply_text("Get an admin to demote me!")
|
403 |
+
return
|
404 |
+
|
405 |
+
# If user not already admin
|
406 |
+
try:
|
407 |
+
admin_list = {i[0] for i in ADMIN_CACHE[m.chat.id]}
|
408 |
+
except KeyError:
|
409 |
+
admin_list = {
|
410 |
+
i[0] for i in (await admin_cache_reload(m, "demote_cache_update"))
|
411 |
+
}
|
412 |
+
|
413 |
+
if user_id not in admin_list:
|
414 |
+
await m.reply_text(
|
415 |
+
"This user is not an admin, how am I supposed to re-demote them?",
|
416 |
+
)
|
417 |
+
return
|
418 |
+
|
419 |
+
try:
|
420 |
+
await m.chat.promote_member(
|
421 |
+
user_id=user_id,
|
422 |
+
privileges=ChatPrivileges(can_manage_chat=False),
|
423 |
+
)
|
424 |
+
LOGGER.info(f"{m.from_user.id} demoted {user_id} in {m.chat.id}")
|
425 |
+
|
426 |
+
# ----- Remove admin from cache -----
|
427 |
+
try:
|
428 |
+
admin_list = ADMIN_CACHE[m.chat.id]
|
429 |
+
user = next(user for user in admin_list if user[0] == user_id)
|
430 |
+
admin_list.remove(user)
|
431 |
+
ADMIN_CACHE[m.chat.id] = admin_list
|
432 |
+
except (KeyError, StopIteration):
|
433 |
+
await admin_cache_reload(m, "demote_key_stopiter_error")
|
434 |
+
|
435 |
+
await m.reply_text(
|
436 |
+
("{demoter} demoted {demoted} in <b>{chat_title}</b>!").format(
|
437 |
+
demoter=(
|
438 |
+
await mention_html(
|
439 |
+
m.from_user.first_name,
|
440 |
+
m.from_user.id,
|
441 |
+
)
|
442 |
+
),
|
443 |
+
demoted=(await mention_html(user_first_name, user_id)),
|
444 |
+
chat_title=m.chat.title,
|
445 |
+
),
|
446 |
+
)
|
447 |
+
|
448 |
+
except ChatAdminRequired:
|
449 |
+
await m.reply_text("I am not admin aroung here.")
|
450 |
+
except RightForbidden:
|
451 |
+
await m.reply_text("I can't demote users here.")
|
452 |
+
except UserAdminInvalid:
|
453 |
+
await m.reply_text("Cannot act on this user, maybe I wasn't the one who changed their permissions.")
|
454 |
+
except RPCError as ef:
|
455 |
+
await m.reply_text(f"Some error occured, report to @{SUPPORT_GROUP} \n <b>Error:</b> <code>{ef}</code>")
|
456 |
+
LOGGER.error(ef)
|
457 |
+
LOGGER.error(format_exc())
|
458 |
+
|
459 |
+
return
|
460 |
|
461 |
@Gojo.on_message(command("invitelink"))
|
462 |
async def get_invitelink(c: Gojo, m: Message):
|