__MODULE__ = "Misc"
__HELP__ = """
Misc Help
• Command: {0}logger [on/off]
• Explanation: To find out if there are incoming messages from other users, or when you are tagged by others.
- {0}logger on -> To turn on the log group.
- {0}logger off -> To turn off the log group.
• Command: {0}addsudo [reply/username/id]
• Explanation: Add a sudo user.
• Command: {0}delsudo [reply/username/id]
• Explanation: Delete a sudo user.
• Command: {0}sudolist
• Explanation: Check sudo users.
"""
import asyncio
from pyrogram.enums import *
from pyrogram.errors import FloodWait
from pyrogram.types import *
from ubot import *
@PY.GC()
async def _(client, message):
log = await get_log(client)
cek = await get_log_group(client.me.id)
if not cek:
return
user = f"[{message.from_user.first_name} {message.from_user.last_name or ''}](tg://user?id={message.from_user.id})"
message_link = message.link
text = f"""
📨 TAGS MESSAGE
• Logs: {client.me.first_name}
• Group: {message.chat.title}
• From: {user}
• Message: {message.text}
• Group Link: [Here]({message_link})
"""
try:
await client.send_message(
log.id,
text,
disable_web_page_preview=True,
)
except FloodWait as e:
await asyncio.sleep(e.value)
await client.send_message(
log.id,
text,
disable_web_page_preview=True,
)
@PY.PC()
async def _(client, message):
log = await get_log(client)
cek = await get_log_group(client.me.id)
if not cek:
return
if message.chat.id == 777000:
return
async for x in client.search_messages(message.chat.id, limit=1):
await x.forward(log.id)
@PY.UBOT("logger", sudo=True)
async def _(client, message):
xx = await message.reply(f"**Processing...**")
cek = get_arg(message)
logs = await get_log_group(client.me.id)
if cek.lower() == "on":
if not logs:
await set_log_group(client.me.id, logger=True)
await create_botlog(client)
ajg = await get_log(client)
babi = await client.export_chat_invite_link(int(ajg.id))
return await xx.edit(f" Log Group Successfully Activated:\n\n{babi}")
else:
return await xx.edit(f" Your Log Group is Already Active.")
if cek.lower() == "off":
if logs:
await del_log_group(client.me.id)
ajg = await get_log(client)
await client.delete_supergroup(int(ajg.id))
return await xx.edit(f" Log Group Successfully Deactivated.")
else:
return await xx.edit(f" Your Log Group is Already Deactivated.")
else:
return await xx.edit(
f"Invalid format. Please use {message.text} on/off"
)
@PY.UBOT("addsudo", sudo=True)
async def _(client, message):
msg = await message.reply(f"Processing...")
user_id = await extract_user(message)
if not user_id:
return await msg.edit(f"Please reply to user message/username/user id")
try:
user = await client.get_users(user_id)
except Exception as error:
return await msg.edit(error)
sudo_users = await ambil_list_var(client.me.id, "SUDO_USER", "ID_NYA")
if user.id in sudo_users:
return await msg.edit(
f"[{user.first_name} {user.last_name or ''}](tg://user?id={user.id}) is already a sudo user."
)
try:
await add_var(client.me.id, "SUDO_USER", user.id, "ID_NYA")
return await msg.edit(
f"[{user.first_name} {user.last_name or ''}](tg://user?id={user.id}) has been added as a sudo user."
)
except Exception as error:
return await msg.edit(error)
@PY.UBOT("delsudo", sudo=True)
async def _(client, message):
msg = await message.reply(f"Processing...")
user_id = await extract_user(message)
if not user_id:
return await msg.edit(f"Please reply to user message/username/user id.")
try:
user = await client.get_users(user_id)
except Exception as error:
return await msg.edit(error)
sudo_users = await ambil_list_var(client.me.id, "SUDO_USER", "ID_NYA")
if user.id not in sudo_users:
return await msg.edit(
f"[{user.first_name} {user.last_name or ''}](tg://user?id={user.id}) is not a sudo user."
)
try:
await rem_var(client.me.id, "SUDO_USER", user.id, "ID_NYA")
return await msg.edit(
f"[{user.first_name} {user.last_name or ''}](tg://user?id={user.id}) has been removed from sudo users."
)
except Exception as error:
return await msg.edit(error)
@PY.UBOT("sudolist", sudo=True)
async def _(client, message):
msg = await message.reply(f"Processing...")
sudo_users = await ambil_list_var(client.me.id, "SUDO_USER", "ID_NYA")
if not sudo_users:
return await msg.edit(f"No sudo users found.")
sudo_list = []
for user_id in sudo_users:
try:
user = await client.get_users(int(user_id))
sudo_list.append(
f" • [{user.first_name} {user.last_name or ''}](tg://user?id={user.id}) | {user.id}"
)
except:
continue
if sudo_list:
response = (
f"User List:\n"
+ "\n".join(sudo_list)
+ f"\n • {len(sudo_list)}"
)
return await msg.edit(response)
else:
return await msg.edit("Error")