Spaces:
Paused
Paused
File size: 4,929 Bytes
2f67506 |
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 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 |
#
# 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)
|