Spaces:
Sleeping
Sleeping
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 | |