|
@@ -31,11 +31,12 @@ from wbb.core.decorators.errors import capture_err
|
|
|
from wbb.core.keyboard import ikb
|
|
from wbb.core.keyboard import ikb
|
|
|
from wbb.utils.dbfunctions import (add_warn, get_warn, int_to_alpha,
|
|
from wbb.utils.dbfunctions import (add_warn, get_warn, int_to_alpha,
|
|
|
remove_warns)
|
|
remove_warns)
|
|
|
-from wbb.utils.functions import extract_user, extract_user_and_reason
|
|
|
|
|
|
|
+from wbb.utils.functions import extract_user, extract_user_and_reason, time_converter
|
|
|
|
|
|
|
|
__MODULE__ = "Admin"
|
|
__MODULE__ = "Admin"
|
|
|
__HELP__ = """/ban - Ban A User
|
|
__HELP__ = """/ban - Ban A User
|
|
|
/dban - Delete the replied message banning its sender
|
|
/dban - Delete the replied message banning its sender
|
|
|
|
|
+/tban - Ban A User For Specific Time
|
|
|
/unban - Unban A User
|
|
/unban - Unban A User
|
|
|
/warn - Warn A User
|
|
/warn - Warn A User
|
|
|
/dwarn - Delete the replied message warning its sender
|
|
/dwarn - Delete the replied message warning its sender
|
|
@@ -50,8 +51,7 @@ __HELP__ = """/ban - Ban A User
|
|
|
/demote - Demote A Member
|
|
/demote - Demote A Member
|
|
|
/pin - Pin A Message
|
|
/pin - Pin A Message
|
|
|
/mute - Mute A User
|
|
/mute - Mute A User
|
|
|
-/dmute - Delete the replied message muting its sender
|
|
|
|
|
-/smute - Mute a user silently
|
|
|
|
|
|
|
+/tmute - Mute A User For Specific Time
|
|
|
/unmute - Unmute A User
|
|
/unmute - Unmute A User
|
|
|
/ban_ghosts - Ban Deleted Accounts
|
|
/ban_ghosts - Ban Deleted Accounts
|
|
|
/report | @admins - Report A Message To Admins."""
|
|
/report | @admins - Report A Message To Admins."""
|
|
@@ -209,7 +209,7 @@ async def kickFunc(_, message: Message):
|
|
|
|
|
|
|
|
|
|
|
|
|
@app.on_message(
|
|
@app.on_message(
|
|
|
- filters.command(["ban", "dban"]) & ~filters.edited & ~filters.private
|
|
|
|
|
|
|
+ filters.command(["ban", "dban", "tban"]) & ~filters.edited & ~filters.private
|
|
|
)
|
|
)
|
|
|
@adminsOnly("can_restrict_members")
|
|
@adminsOnly("can_restrict_members")
|
|
|
async def banFunc(_, message: Message):
|
|
async def banFunc(_, message: Message):
|
|
@@ -229,13 +229,30 @@ async def banFunc(_, message: Message):
|
|
|
"I can't ban an admin, You know the rules, so do i."
|
|
"I can't ban an admin, You know the rules, so do i."
|
|
|
)
|
|
)
|
|
|
mention = (await app.get_users(user_id)).mention
|
|
mention = (await app.get_users(user_id)).mention
|
|
|
- msg = f"""
|
|
|
|
|
-**Banned User:** {mention}
|
|
|
|
|
-**Banned By:** {message.from_user.mention if message.from_user else 'Anon'}
|
|
|
|
|
-**Reason:** {reason or 'No Reason Provided.'}"""
|
|
|
|
|
- await message.chat.kick_member(user_id)
|
|
|
|
|
|
|
+ msg = f"**Banned User:** {mention}\n" \
|
|
|
|
|
+ f"**Banned By:** {message.from_user.mention if message.from_user else 'Anon'}\n"
|
|
|
if message.command[0][0] == "d":
|
|
if message.command[0][0] == "d":
|
|
|
await message.reply_to_message.delete()
|
|
await message.reply_to_message.delete()
|
|
|
|
|
+ if message.command[0] == "tban":
|
|
|
|
|
+ split = reason.split(None, 1)
|
|
|
|
|
+ time_value = split[0]
|
|
|
|
|
+ temp_reason = split[1] if len(split) > 1 else ""
|
|
|
|
|
+ temp_ban = await time_converter(message, time_value)
|
|
|
|
|
+ msg += f"**Banned For:** {time_value}\n"
|
|
|
|
|
+ if temp_reason:
|
|
|
|
|
+ msg += f"**Reason:** {temp_reason}"
|
|
|
|
|
+ try:
|
|
|
|
|
+ if len(time_value[:-1]) < 3:
|
|
|
|
|
+ await message.chat.kick_member(user_id, until_date=temp_ban)
|
|
|
|
|
+ await message.reply_text(msg)
|
|
|
|
|
+ else:
|
|
|
|
|
+ await message.reply_text("You can't use more than 99")
|
|
|
|
|
+ except AttributeError:
|
|
|
|
|
+ pass
|
|
|
|
|
+ return
|
|
|
|
|
+ if reason:
|
|
|
|
|
+ msg += f"**Reason:** {reason}"
|
|
|
|
|
+ await message.chat.kick_member(user_id)
|
|
|
await message.reply_text(msg)
|
|
await message.reply_text(msg)
|
|
|
|
|
|
|
|
|
|
|
|
@@ -365,7 +382,7 @@ async def pin(_, message: Message):
|
|
|
|
|
|
|
|
|
|
|
|
|
@app.on_message(
|
|
@app.on_message(
|
|
|
- filters.command("mute") & ~filters.edited & ~filters.private
|
|
|
|
|
|
|
+ filters.command(["mute", "tmute"]) & ~filters.edited & ~filters.private
|
|
|
)
|
|
)
|
|
|
@adminsOnly("can_restrict_members")
|
|
@adminsOnly("can_restrict_members")
|
|
|
async def mute(_, message: Message):
|
|
async def mute(_, message: Message):
|
|
@@ -387,11 +404,32 @@ async def mute(_, message: Message):
|
|
|
)
|
|
)
|
|
|
mention = (await app.get_users(user_id)).mention
|
|
mention = (await app.get_users(user_id)).mention
|
|
|
keyboard = ikb([[("🚨 Unmute 🚨", f"unmute_{user_id}")]])
|
|
keyboard = ikb([[("🚨 Unmute 🚨", f"unmute_{user_id}")]])
|
|
|
- msg = f"""
|
|
|
|
|
-**Muted User:** {mention}
|
|
|
|
|
-**Muted By:** {message.from_user.mention if message.from_user else 'Anon'}
|
|
|
|
|
-**Reason:** {reason or 'No Reason Provided.'}"""
|
|
|
|
|
-
|
|
|
|
|
|
|
+ msg = f"**Muted User:** {mention}\n" \
|
|
|
|
|
+ f"**Muted By:** {message.from_user.mention if message.from_user else 'Anon'}\n"
|
|
|
|
|
+ if message.command[0] == "tmute":
|
|
|
|
|
+ split = reason.split(None, 1)
|
|
|
|
|
+ time_value = split[0]
|
|
|
|
|
+ temp_reason = split[1] if len(split) > 1 else ""
|
|
|
|
|
+ temp_mute = await time_converter(message, time_value)
|
|
|
|
|
+ msg += f"**Muted For:** {time_value}\n"
|
|
|
|
|
+ if temp_reason:
|
|
|
|
|
+ msg += f"**Reason:** {temp_reason}"
|
|
|
|
|
+ try:
|
|
|
|
|
+ if len(time_value[:-1]) < 3:
|
|
|
|
|
+ await message.chat.restrict_member(
|
|
|
|
|
+ user_id, permissions=ChatPermissions(), until_date=temp_mute,
|
|
|
|
|
+ )
|
|
|
|
|
+ await message.reply_text(msg, reply_markup=keyboard)
|
|
|
|
|
+ else:
|
|
|
|
|
+ await message.reply_text("You can't use more than 99")
|
|
|
|
|
+ except AttributeError:
|
|
|
|
|
+ pass
|
|
|
|
|
+ return
|
|
|
|
|
+ if reason:
|
|
|
|
|
+ msg += f"**Reason:** {reason}"
|
|
|
|
|
+ await message.chat.restrict_member(
|
|
|
|
|
+ user_id, permissions=ChatPermissions()
|
|
|
|
|
+ )
|
|
|
await message.reply_text(msg, reply_markup=keyboard)
|
|
await message.reply_text(msg, reply_markup=keyboard)
|
|
|
|
|
|
|
|
|
|
|