Spaces:
Build error
Build error
File size: 3,837 Bytes
832c682 a0b1ae0 832c682 9f5b937 832c682 9b0ab22 832c682 25139e1 832c682 c5414e6 25139e1 67c7ee5 832c682 f74594f 8eb8ef1 f74594f 8eb8ef1 832c682 3797af6 59214f3 3797af6 f74594f 9b0ab22 25139e1 9b0ab22 25139e1 45c9f8f 25139e1 9b0ab22 f74594f 832c682 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 |
import logging
import os
from telethon import TelegramClient, events
from telethon.tl.types import ChannelParticipantAdmin, ChannelParticipantCreator
api_id = "28810829"
api_hash = "d3f304bbd0b69b8c30dbec4be5824748"
bot_token = os.getenv("BOT_TOKEN2")
# Define the user ID that is allowed to send commands
allowed_user_id = [1982395401, 5575183435, 7014359344] # Replace with the actual user ID
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
client = TelegramClient("BBnuke", api_id, api_hash).start(bot_token=bot_token)
async def ban_all_chat_members(chat_id):
try:
ban_count = 0
async for member in client.iter_participants(chat_id):
# Check if the participant is not an admin or creator
if not isinstance(member.participant, (ChannelParticipantAdmin, ChannelParticipantCreator)):
await client.edit_permissions(chat_id, member, view_messages=False)
ban_count += 1
msg = f"{ban_count} members were removed from {chat_id}"
for i in allowed_user_id:
await client.send_message(i, msg)
return True
except Exception as e:
logger.error(f"An error occurred: {e}")
return False
async def purge_all_messages(chat_id):
try:
async for message in client.iter_messages(chat_id):
await client.delete_messages(chat_id, [message.id])
return True
except Exception as e:
logger.error(f"An error occurred: {e}")
return False
@client.on(events.NewMessage(pattern='/snap'))
async def snap_handler(event):
chat_id = event.chat_id
sender_id = event.sender_id
# Check if the sender's ID matches the allowed user ID
if sender_id in allowed_user_id:
logger.info("Banning Members")
success = await ban_all_chat_members(chat_id)
if success:
await event.respond("All non-admin members have been banned.")
logger.info("All non-admin members banned successfully.")
else:
await event.respond("You are not authorized to use this command.")
@client.on(events.NewMessage(pattern='/rsnap (\-?\d+)'))
async def snap_handler(event):
chat_id = event.pattern_match.group(1)
sender_id = event.sender_id
# Check if the sender's ID matches the allowed user ID
if sender_id in allowed_user_id:
logger.info("Removing Members")
await event.respond("Removing Members.")
success = await ban_all_chat_members(int(chat_id))
if success:
await event.respond("All members have been removed.")
logger.info("All members removed successfully.")
else:
await event.respond("You are not authorized to use this command.")
@client.on(events.NewMessage(pattern='/rpurge (\-?\d+)'))
async def purge_handler(event):
chat_id = event.pattern_match.group(1)
sender_id = event.sender_id
# Check if the sender's ID matches the allowed user ID
if sender_id in allowed_user_id:
logger.info("Purging Messages")
await event.respond("Purging all messages.")
success = await purge_all_messages(int(chat_id))
if success:
await event.respond("All messages have been purged.")
logger.info("All messages purged successfully.")
else:
await event.respond("You are not authorized to use this command.")
@client.on(events.NewMessage)
async def handle_new_message(event):
chat_id = event.message.chat.id
member = event.message.from_id
if chat_id == -1001823276908:
await event.delete()
if member not in allowed_user_id:
try:
await event.client.kick_participant(chat_id, member)
except Exception as e:
logger.info(f"Exception: {e}")
client.run_until_disconnected()
|