Files
plain-ub-overfork/app/plugins/admin/ban.py
2024-10-22 17:39:09 +05:30

42 lines
1.3 KiB
Python

import asyncio
from pyrogram.types import User
from app import BOT, Message
@BOT.add_cmd(cmd=["ban", "unban"])
async def ban_or_unban(bot: BOT, message: Message) -> None:
user, reason = await message.extract_user_n_reason()
if not isinstance(user, User):
await message.reply(user, del_in=10)
return
action = bot.ban_chat_member if message.cmd == "ban" else bot.unban_chat_member
try:
await action(chat_id=message.chat.id, user_id=user.id) # NOQA
await message.reply(
text=f"{message.cmd.capitalize()}ned: {user.mention}\nReason: {reason}"
)
except Exception as e:
await message.reply(text=e, del_in=10)
@BOT.add_cmd(cmd="kick")
async def kick_user(bot: BOT, message: Message):
user, reason = await message.extract_user_n_reason()
if not isinstance(user, User):
await message.reply(user, del_in=10)
return
try:
await bot.ban_chat_member(chat_id=message.chat.id, user_id=user.id)
await asyncio.sleep(2)
await bot.unban_chat_member(chat_id=message.chat.id, user_id=user.id)
await message.reply(
text=f"{message.cmd.capitalize()}ed: {user.mention}\nReason: {reason}"
)
except Exception as e:
await message.reply(text=e, del_in=10)