Spaces:
Sleeping
Sleeping
File size: 2,637 Bytes
ca4eb6d 11ae35a c0ed2cf 11ae35a 87abec5 83fe5dc 9427182 ca4eb6d 83fe5dc bb1bfd1 ca4eb6d 5bc27d3 ca4eb6d 5bc27d3 ca4eb6d 5bc27d3 ca4eb6d 83fe5dc bb1bfd1 6dcea66 6cef7ec ca4eb6d 6dcea66 ca4eb6d 5bc27d3 ca4eb6d |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 |
from traceback import format_exc
from pyrogram.enums import ChatMemberStatus as CMS
from pyrogram.types import CallbackQuery, Message
from Powers import LOGGER, OWNER_ID
from Powers.supports import get_support_staff
async def admin_check(m: Message or CallbackQuery) -> bool:
"""Checks if user is admin or not."""
if isinstance(m, Message):
user_id = m.from_user.id
if isinstance(m, CallbackQuery):
user_id = m.message.from_user.id
SUDO_LEVEL = get_support_staff("sudo_level")
try:
if user_id in SUDO_LEVEL:
return True
except Exception as ef:
LOGGER.error(format_exc())
user = await m.chat.get_member(user_id)
admin_strings = (CMS.OWNER, CMS.ADMINISTRATOR)
if user.status not in admin_strings:
reply = "Nigga, you're not admin, don't try this explosive shit."
try:
await m.edit_text(reply)
except Exception as ef:
await m.reply_text(reply)
LOGGER.error(ef)
LOGGER.error(format_exc())
return False
return True
async def check_rights(m: Message or CallbackQuery, rights) -> bool:
"""Check Admin Rights"""
if isinstance(m, Message):
user_id = m.from_user.id
chat_id = m.chat.id
app = m._client
if isinstance(m, CallbackQuery):
user_id = m.message.from_user.id
chat_id = m.message.chat.id
app = m.message._client
user = await app.get_chat_member(chat_id, user_id)
if user.status == CMS.MEMBER:
return False
admin_strings = (CMS.OWNER, CMS.ADMINISTRATOR)
if user.status in admin_strings:
return bool(getattr(user, rights, None))
return False
async def owner_check(m: Message or CallbackQuery) -> bool:
"""Checks if user is owner or not."""
if isinstance(m, Message):
user_id = m.from_user.id
if isinstance(m, CallbackQuery):
user_id = m.message.from_user.id
m = m.message
SUDO_LEVEL = get_support_staff("sudo_level")
if user_id in SUDO_LEVEL:
return True
try:
user = await m.chat.get_member(user_id)
except Exception:
return False
if user.status != CMS.OWNER:
if user.status == CMS.ADMINISTRATOR:
reply = "Stay in your limits, or lose adminship too."
else:
reply = "You ain't even admin, what are you trying to do?"
try:
await m.edit_text(reply)
except Exception as ef:
await m.reply_text(reply)
LOGGER.error(ef)
LOGGER.error(format_exc())
return False
return True
|