فهرست منبع

Silence & Deleting actions in restrictions (#89)

* S and D bans

* Other S&Ds

* edit `__HELP__` and add those Ds and Ss in that
Roj Serbest 5 سال پیش
والد
کامیت
b1e5d799d3
1فایلهای تغییر یافته به همراه36 افزوده شده و 14 حذف شده
  1. 36 14
      wbb/modules/admin.py

+ 36 - 14
wbb/modules/admin.py

@@ -35,18 +35,26 @@ from wbb.utils.functions import extract_user, extract_user_and_reason
 
 __MODULE__ = "Admin"
 __HELP__ = """/ban - Ban A User
+/dban - Delete the replied message banning its sender
+/sban - Ban a user silently
 /unban - Unban A User
 /warn - Warn A User
+/dwarn - Delete the replied message warning its sender
+/swarn - Warn a user silently
 /rmwarn - Remove 1 Warning Of A User
 /rmwarns - Remove All Warning of A User
 /warns - Show Warning Of A User
 /kick - Kick A User
+/dkick - Delete the replied message kicking its sender
+/skick - Kick a user silently
 /purge - Purge Messages
 /del - Delete Replied Message
 /promote - Promote A Member
 /demote - Demote A Member
 /pin - Pin A Message
 /mute - Mute A User
+/dmute - Delete the replied message muting its sender
+/smute - Mute a user silently
 /unmute - Unmute A User
 /ban_ghosts - Ban Deleted Accounts
 /report | @admins - Report A Message To Admins."""
@@ -168,7 +176,7 @@ async def purgeFunc(client, message: Message):
 
 
 @app.on_message(
-    filters.command("kick") & ~filters.edited & ~filters.private
+    filters.command(["kick", "skick", "dkick"]) & ~filters.edited & ~filters.private
 )
 @adminsOnly("can_restrict_members")
 async def kickFunc(_, message: Message):
@@ -193,7 +201,12 @@ async def kickFunc(_, message: Message):
 **Kicked By:** {message.from_user.mention if message.from_user else 'Anon'}
 **Reason:** {reason or 'No Reason Provided.'}"""
     await message.chat.kick_member(user_id)
-    await message.reply_text(msg)
+    if message.command[0][0] in ("s", "d"):
+        await message.reply_to_message.delete()
+    if message.command[0][0] == "s":
+        await message.delete()
+    if message.command[0][0] != "s":
+        await message.reply_text(msg)
     await asyncio.sleep(1)
     await message.chat.unban_member(user_id)
 
@@ -202,7 +215,7 @@ async def kickFunc(_, message: Message):
 
 
 @app.on_message(
-    filters.command("ban") & ~filters.edited & ~filters.private
+    filters.command(["ban", "sban", "dban"]) & ~filters.edited & ~filters.private
 )
 @adminsOnly("can_restrict_members")
 async def banFunc(_, message: Message):
@@ -227,7 +240,12 @@ async def banFunc(_, message: Message):
 **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)
-    await message.reply_text(msg)
+    if message.command[0][0] in ("s", "d"):
+        await message.reply_to_message.delete()
+    if message.command[0][0] == "s":
+        await message.delete()
+    if message.command[0][0] != "s":
+        await message.reply_text(msg)
 
 
 # Unban members
@@ -430,7 +448,7 @@ async def ban_deleted_accounts(_, message: Message):
 
 
 @app.on_message(
-    filters.command("warn") & ~filters.edited & ~filters.private
+    filters.command(["warn", "swarn", "dwarn"]) & ~filters.edited & ~filters.private
 )
 @adminsOnly("can_restrict_members")
 async def warn_user(_, message: Message):
@@ -462,15 +480,18 @@ async def warn_user(_, message: Message):
         warns = warns["warns"]
     else:
         warns = 0
+    if message.command[0][0] in ('s', 'd'):
+        await message.reply_to_message.delete()
+    if message.command[0][0] == 's':
+        await message.delete()
     if warns >= 2:
-        _, __, alpha = await asyncio.gather(
-            message.chat.kick_member(user_id),
-            message.reply_text(
-                f"Number of warns of {mention} exceeded, BANNED!"
-            ),
-            int_to_alpha(user_id),
-        )
-        await remove_warns(chat_id, alpha)
+        await message.chat.kick_member(user_id)
+
+        if message.command[0][0] != 's':
+            await message.reply_text(
+                    f"Number of warns of {mention} exceeded, BANNED!"
+                )
+        await remove_warns(chat_id, await int_to_alpha(user_id))
     else:
         warn = {"warns": warns + 1}
         msg = f"""
@@ -478,7 +499,8 @@ async def warn_user(_, message: Message):
 **Warned By:** {message.from_user.mention if message.from_user else 'Anon'}
 **Reason:** {reason or 'No Reason Provided.'}
 **Warns:** {warns + 1}/3"""
-        await message.reply_text(msg, reply_markup=keyboard)
+        if message.command[0][0] != 's':
+            await message.reply_text(msg, reply_markup=keyboard)
         await add_warn(chat_id, await int_to_alpha(user_id), warn)