Spaces:
Build error
Build error
| 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 | |
| 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.") | |
| 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.") | |
| 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.") | |
| 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() | |