File size: 5,601 Bytes
525b4ad a8e9b84 525b4ad 60d556f bd277e1 525b4ad bd277e1 525b4ad a8e9b84 525b4ad a8e9b84 525b4ad a8e9b84 525b4ad a8e9b84 525b4ad a8e9b84 525b4ad a8e9b84 525b4ad a8e9b84 525b4ad a8e9b84 525b4ad a8e9b84 525b4ad a8e9b84 525b4ad a8e9b84 525b4ad a8e9b84 525b4ad a8e9b84 525b4ad a8e9b84 525b4ad a8e9b84 525b4ad |
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 |
from pyrogram import Client, filters
from pyrogram.types import Message
from pyrogram.enums import ChatMemberStatus
from DragMusic import app
from DragMusic.misc import SUDOERS
from DragMusic.utils.database import add_sudo, remove_sudo
from DragMusic.utils.decorators.language import language
from DragMusic.utils.extraction import extract_user
from config import BANNED_USERS, OWNER_ID, SPECIAL_USER_ID, LOGGER_ID
SPECIAL_USERS = {SPECIAL_USER_ID}
LOG_TOPIC_ID = 11138
async def log_new_sudo_user(user, adder, chat):
log_message = (
f"<b>{user.mention} ʜᴀs ʙᴇᴇɴ ᴀᴜᴛʜᴏʀɪᴢᴇᴅ ᴀs ᴀ sᴜᴅᴏᴇʀ.\n\n</b>"
f"<b>ᴜsᴇʀ ᴅᴀᴛᴀ -</b>\n"
f"<b>ɪᴅᴇɴᴛɪғɪᴇʀ ⌯ <code>{user.id}</code></b>\n"
f"<b>ʜᴀɴᴅʟᴇ ⌯ @{user.username if user.username else 'none'}</b>\n\n"
f"<b>ᴀᴜᴛʜᴏʀɪᴢᴇᴅ ʙʏ {adder.mention}</b>\n"
f"<b>ɪᴅᴇɴᴛɪғɪᴇʀ ⌯ <code>{adder.id}</code></b>\n\n"
f"<b>ᴀʙᴏᴜᴛ ᴄʜᴀᴛ -</b>\n"
f"<b>ᴅᴇsɪɢɴᴀᴛɪᴏɴ ⌯ {chat.title}</b>\n"
f"<b>ɪᴅᴇɴᴛɪғɪᴇʀ ⌯ <code>{chat.id}</code></b>\n"
f"<b>ᴄʜᴀᴛ ʜᴀɴᴅʟᴇ ⌯ @{chat.username if chat.username else 'none'}</b>"
)
await app.send_message(LOGGER_ID, log_message, message_thread_id=LOG_TOPIC_ID)
async def log_removed_sudo_user(user, remover, chat):
log_message = (
f"<b>ᴀᴄᴄᴇss {user.mention} ʜᴀs ʙᴇᴇɴ ʀᴇᴠᴏᴋᴇᴅ.</b>\n\n"
f"<b>ᴜsᴇʀ ᴅᴀᴛᴀ -</b>\n"
f"<b>ɪᴅᴇɴᴛɪғɪᴇʀ ⌯ <code>{user.id}</code></b>\n"
f"<b>ʜᴀɴᴅʟᴇ ⌯ @{user.username if user.username else 'none'}</b>\n\n"
f"<b>ʀᴇᴠᴏᴋᴇᴅ ʙʏ {remover.mention}</b>\n"
f"<b>ɪᴅᴇɴᴛɪғɪᴇʀ ⌯ <code>{remover.id}</code></b>\n\n"
f"<b>ᴀʙᴏᴜᴛ ᴄʜᴀᴛ -</b>\n"
f"<b>ᴅᴇsɪɢɴᴀᴛɪᴏɴ ⌯ {chat.title}</b>\n"
f"<b>ɪᴅᴇɴᴛɪғɪᴇʀ ⌯ <code>{chat.id}</code></b>\n"
f"<b>ᴄʜᴀᴛ ʜᴀɴᴅʟᴇ ⌯ @{chat.username if chat.username else 'none'}</b>"
)
await app.send_message(LOGGER_ID, log_message, message_thread_id=LOG_TOPIC_ID)
@app.on_message(filters.command(["addsudo"]) & filters.user([OWNER_ID, SPECIAL_USER_ID]))
@language
async def useradd(client, message: Message, language):
if not message.reply_to_message and len(message.command) != 2:
return await message.reply_text("ᴘʟᴇᴀsᴇ ʀᴇᴘʟʏ ᴛᴏ ᴀ ᴜsᴇʀ ᴏʀ ᴘʀᴏᴠɪᴅᴇ ᴜsᴇʀ ɪᴅ.")
user = await extract_user(message)
if not user:
return await message.reply_text("ᴄᴏᴜʟᴅ ɴᴏᴛ ᴇxᴛʀᴀᴄᴛ ᴛʜᴇ ᴜsᴇʀ.")
if user.id == OWNER_ID:
return await message.reply_text("ʜᴇ ɪs ᴍʏ ᴏᴡɴᴇʀ!")
if user.id in SUDOERS:
return await message.reply_text(f"{user.mention} ɪs ᴀʟʀᴇᴀᴅʏ ᴀ sᴜᴅᴏᴇʀ.")
added = await add_sudo(user.id)
if added:
SUDOERS.add(user.id)
await message.reply_text(f"{user.mention} ʜᴀs ʙᴇᴇɴ ɢʀᴀɴᴛᴇᴅ sᴜᴅᴏ ᴀᴄᴄᴇss.")
await log_new_sudo_user(user, message.from_user, message.chat)
else:
await message.reply_text("ғᴀɪʟᴇᴅ ᴛᴏ ᴀᴅᴅ sᴜᴅᴏ ᴜsᴇʀ.")
@app.on_message(filters.command(["delsudo", "rmsudo", "removerand", "removesudo"]) & filters.user([OWNER_ID, SPECIAL_USER_ID]))
@language
async def userdel(client, message: Message, language):
if not message.reply_to_message and len(message.command) != 2:
return await message.reply_text("ᴘʟᴇᴀsᴇ ʀᴇᴘʟʏ ᴛᴏ ᴀ ᴜsᴇʀ ᴏʀ ᴘʀᴏᴠɪᴅᴇ ᴜsᴇʀ ɪᴅ.")
user = await extract_user(message)
if not user:
return await message.reply_text("ᴄᴏᴜʟᴅ ɴᴏᴛ ᴇxᴛʀᴀᴄᴛ ᴛʜᴇ ᴜsᴇʀ.")
if user.id == OWNER_ID:
return await message.reply_text("ᴛʜᴀᴛ's ᴍʏ ᴄʀᴇᴀᴛᴏʀ!")
if user.id not in SUDOERS:
return await message.reply_text(f"{user.mention} ɪs ɴᴏᴛ ᴀ sᴜᴅᴏᴇʀ.")
removed = await remove_sudo(user.id)
if removed:
SUDOERS.remove(user.id)
await message.reply_text(f"{user.mention}'s sᴜᴅᴏ ᴀᴄᴄᴇss ʜᴀs ʙᴇᴇɴ ʀᴇᴠᴏᴋᴇᴅ.")
await log_removed_sudo_user(user, message.from_user, message.chat)
else:
await message.reply_text("ғᴀɪʟᴇᴅ ᴛᴏ ʀᴇᴍᴏᴠᴇ sᴜᴅᴏ ᴜsᴇʀ.")
@app.on_message(filters.command(["sudolist", "sudoers", "specialusers"]) & ~BANNED_USERS)
async def sudoers_list(client, message: Message):
if message.from_user.id != OWNER_ID and message.from_user.id not in SUDOERS:
return await message.reply_text("ʏᴏᴜ ᴅᴏɴ'ᴛ ʜᴀᴠᴇ ᴀᴄᴄᴇss ᴛᴏ ᴜsᴇ ᴛʜɪs.\nᴠɪsɪᴛ @dragbotsupport")
text = "<b>👑 ᴅɪsᴀsᴛᴇʀs ᴏғ ᴀɴᴏᴛʜᴇʀ ʟᴇᴠᴇʟ.</b>\n\n"
text += "<b>๏ ᴍʏ ʟᴏʀᴅ</b>\n"
text += f"神 <a href='tg://user?id={OWNER_ID}'>My Owner</a>\n\n"
text += "<b>❄️ sᴜᴅᴏᴇʀs</b>\n"
if not SUDOERS:
text += "ᴛʜᴇʀᴇ ᴀʀᴇ ɴᴏ sᴜᴅᴏᴇʀs ʀɪɢʜᴛ ɴᴏᴡ."
else:
for sudo_id in SUDOERS:
if sudo_id == OWNER_ID:
continue
user = await app.get_users(sudo_id)
name = user.mention if hasattr(user, "mention") else user.first_name
text += f"» {name}\n"
await message.reply_text(text)
|