Drag commited on
Commit
ecc4411
·
1 Parent(s): 1f3a510

Create banall.py

Browse files
Files changed (1) hide show
  1. Mikobot/plugins/banall.py +41 -0
Mikobot/plugins/banall.py ADDED
@@ -0,0 +1,41 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # <============================================== IMPORTS =========================================================>
2
+ from telegram import Update
3
+ from telegram.ext import CommandHandler, ContextTypes
4
+ from telegram.error import BadRequest
5
+
6
+ from Mikobot import function, LOGGER as logger
7
+ from Mikobot.plugins.helper_funcs.chat_status import check_admin, connection_status, is_user_admin
8
+
9
+ # <=======================================================================================================>
10
+
11
+ # <================================================ BAN ALL FUNCTION =====================================================>
12
+
13
+ @connection_status
14
+ @check_admin(permission="can_restrict_members", is_both=True)
15
+ async def ban_all(update: Update, context: ContextTypes.DEFAULT_TYPE) -> str:
16
+ chat = update.effective_chat
17
+ user = update.effective_user
18
+ log_message = ""
19
+ bot = context.bot
20
+
21
+ # Get all members in the chat
22
+ members = await chat.get_members()
23
+ admin_ids = [admin.user.id for admin in await chat.get_administrators()]
24
+
25
+ for member in members:
26
+ if member.user.id not in admin_ids and member.user.id != bot.id:
27
+ try:
28
+ await chat.ban_member(member.user.id)
29
+ log_message += f"Banned {member.user.first_name} ({member.user.id})\n"
30
+ except BadRequest as excp:
31
+ logger.warning(f"Failed to ban {member.user.id}: {excp.message}")
32
+ log_message += f"Failed to ban {member.user.first_name} ({member.user.id}): {excp.message}\n"
33
+
34
+ await update.effective_message.reply_text("All non-admin members have been banned.")
35
+ return log_message
36
+
37
+ # <================================================ HANDLER =======================================================>
38
+ # Register the ban_all command handler
39
+ function(CommandHandler("banall", ban_all, block=False))
40
+
41
+ # <================================================ END =======================================================>