from pyrogram.errors import RPCError
from pyrogram.types import Message
from Powers import DEV_USERS, LOGGER, OWNER_ID, SUDO_USERS, WHITELIST_USERS
from Powers.bot_class import Gojo
from Powers.utils.custom_filters import command
from Powers.utils.parser import mention_html
@Gojo.on_message(command("botstaff", dev_cmd=True))
async def botstaff(c: Gojo, m: Message):
    try:
        owner = await c.get_users(OWNER_ID)
        reply = f"🌟 Owner: {(await mention_html(owner.first_name, OWNER_ID))} ({OWNER_ID})\n"
    except RPCError:
        pass
    true_dev = list(set(DEV_USERS) - {OWNER_ID})
    reply += "\nDevelopers ⚡️:\n"
    if true_dev == []:
        reply += "No Dev Users\n"
    else:
        for each_user in true_dev:
            user_id = int(each_user)
            try:
                user = await c.get_users(user_id)
                reply += f"• {(await mention_html(user.first_name, user_id))} ({user_id})\n"
            except RPCError:
                pass
    true_sudo = list(set(SUDO_USERS) - set(DEV_USERS))
    reply += "\nSudo Users 🐉:\n"
    if true_sudo == []:
        reply += "No Sudo Users\n"
    else:
        for each_user in true_sudo:
            user_id = int(each_user)
            try:
                user = await c.get_users(user_id)
                reply += f"• {(await mention_html(user.first_name, user_id))} ({user_id})\n"
            except RPCError:
                pass
    reply += "\nWhitelisted Users 🐺:\n"
    if WHITELIST_USERS == []:
        reply += "No additional whitelisted users\n"
    else:
        for each_user in WHITELIST_USERS:
            user_id = int(each_user)
            try:
                user = await c.get_users(user_id)
                reply += f"• {(await mention_html(user.first_name, user_id))} ({user_id})\n"
            except RPCError:
                pass
    await m.reply_text(reply)
    LOGGER.info(f"{m.from_user.id} fetched botstaff in {m.chat.id}")
    return