# # Copyright (C) 2021-2022 by TeamYukki@Github, < https://github.com/TeamYukki >. # # This file is part of < https://github.com/TeamYukki/YukkiMusicBot > project, # and is released under the "GNU v3.0 License Agreement". # Please see < https://github.com/TeamYukki/YukkiMusicBot/blob/master/LICENSE > # # All rights reserved. from pyrogram import filters from pyrogram.types import Message from config import BANNED_USERS, MONGO_DB_URI, OWNER_ID from strings import get_command from YukkiMusic import app from YukkiMusic.misc import SUDOERS from YukkiMusic.utils.database import add_sudo, remove_sudo from YukkiMusic.utils.decorators.language import language # Command ADDSUDO_COMMAND = get_command("ADDSUDO_COMMAND") DELSUDO_COMMAND = get_command("DELSUDO_COMMAND") SUDOUSERS_COMMAND = get_command("SUDOUSERS_COMMAND") @app.on_message( filters.command(ADDSUDO_COMMAND) & filters.user(OWNER_ID) ) @language async def useradd(client, message: Message, _): if MONGO_DB_URI is None: return await message.reply_text( "**Due to bot's privacy issues, You can't manage sudo users when you're using Yukki's Database.\n\n Please fill your MONGO_DB_URI in your vars to use this feature**" ) if not message.reply_to_message: if len(message.command) != 2: return await message.reply_text(_["general_1"]) user = message.text.split(None, 1)[1] if "@" in user: user = user.replace("@", "") user = await app.get_users(user) if user.id in SUDOERS: return await message.reply_text( _["sudo_1"].format(user.mention) ) added = await add_sudo(user.id) if added: SUDOERS.add(user.id) await message.reply_text(_["sudo_2"].format(user.mention)) else: await message.reply_text("Failed") return if message.reply_to_message.from_user.id in SUDOERS: return await message.reply_text( _["sudo_1"].format( message.reply_to_message.from_user.mention ) ) added = await add_sudo(message.reply_to_message.from_user.id) if added: SUDOERS.add(message.reply_to_message.from_user.id) await message.reply_text( _["sudo_2"].format( message.reply_to_message.from_user.mention ) ) else: await message.reply_text("Failed") return @app.on_message( filters.command(DELSUDO_COMMAND) & filters.user(OWNER_ID) ) @language async def userdel(client, message: Message, _): if MONGO_DB_URI is None: return await message.reply_text( "**Due to bot's privacy issues, You can't manage sudo users when you're using Yukki's Database.\n\n Please fill your MONGO_DB_URI in your vars to use this feature**" ) if not message.reply_to_message: if len(message.command) != 2: return await message.reply_text(_["general_1"]) user = message.text.split(None, 1)[1] if "@" in user: user = user.replace("@", "") user = await app.get_users(user) if user.id not in SUDOERS: return await message.reply_text(_["sudo_3"]) removed = await remove_sudo(user.id) if removed: SUDOERS.remove(user.id) await message.reply_text(_["sudo_4"]) return await message.reply_text(f"Something wrong happened.") return user_id = message.reply_to_message.from_user.id if user_id not in SUDOERS: return await message.reply_text(_["sudo_3"]) removed = await remove_sudo(user_id) if removed: SUDOERS.remove(user_id) await message.reply_text(_["sudo_4"]) return await message.reply_text(f"Something wrong happened.") @app.on_message(filters.command(SUDOUSERS_COMMAND) & ~BANNED_USERS) @language async def sudoers_list(client, message: Message, _): text = _["sudo_5"] count = 0 for x in OWNER_ID: try: user = await app.get_users(x) user = ( user.first_name if not user.mention else user.mention ) count += 1 except Exception: continue text += f"{count}➤ {user}\n" smex = 0 for user_id in SUDOERS: if user_id not in OWNER_ID: try: user = await app.get_users(user_id) user = ( user.first_name if not user.mention else user.mention ) if smex == 0: smex += 1 text += _["sudo_6"] count += 1 text += f"{count}➤ {user}\n" except Exception: continue if not text: await message.reply_text(_["sudo_7"]) else: await message.reply_text(text)