Spaces:
Running
Running
import re | |
import asyncio | |
import logging | |
from pyrogram import * | |
from pyrogram.types import InlineKeyboardMarkup, InlineKeyboardButton | |
from config import * | |
from database import db | |
from helper_regex import is_blocked_markdown_code | |
logging.basicConfig( | |
format="%(asctime)s - %(name)s - %(levelname)s - %(message)s", | |
level=logging.INFO, | |
datefmt="%Y-%m-%d %H:%M:%S", | |
) | |
logging.getLogger("pyrogram").setLevel(logging.WARNING) | |
eval_regex = r"^(\.e(?:val)?|\.exec|\.sh|\.term|\.python|\.ex|\.bash|\.ls)(\s|$)" | |
bot = Client( | |
"antibot", | |
api_id=API_ID, | |
api_hash=API_HASH, | |
bot_token=BOT_TOKEN, | |
) | |
async def start(client, message): | |
reply_markup = InlineKeyboardMarkup( # type: ignore | |
[ | |
[ | |
InlineKeyboardButton( # type: ignore | |
"TAMBAH KE GRUP LU SEKARANG 🔥", url=f"https://t.me/{client.me.username}?startgroup=true" | |
) | |
] | |
] | |
) | |
await db.antieval.update_one( | |
{"bot_id": client.me.id}, | |
{"$addToSet": {"user_id": message.from_user.id}}, | |
upsert=True, | |
) | |
await client.send_message( | |
-1002407639480, | |
f"Mention {message.from_user.mention} ({message.from_user.id}) has started the bot.", | |
reply_markup=InlineKeyboardMarkup( | |
[ | |
[ | |
InlineKeyboardButton( # type: ignore | |
"View User", url=f"tg://openmessage?user_id={message.from_user.id}" | |
) | |
] | |
] | |
) | |
) | |
await client.reply_text( | |
"**GUE BOT ANTI EVAL ‼️**\n\n" | |
"GRUP YANG MASIH PAKE `.e`, `.eval`, `.sh`, `.term`, `.exec` BAKAL DIHAPUS SAMA GUE!\n" | |
"LU SOK JAGO PAKE USERBOT? EVAL MULU? SANA BELAJAR CODING DULU DI VS CODE‼️\n\n" | |
"**TAMBAH GUE KE GRUP MUTUALAN LU LANGSUNG AUTO DELETED YANG PAKE EVAL 💀**", | |
reply_markup=reply_markup, | |
) | |
async def group_join(client, message): | |
if message.new_chat_member.user.id == client.me.id: | |
privileges = message.new_chat_member.privileges | |
if not privileges or not privileges.can_restrict_members or not privileges.can_delete_messages: | |
await client.send_message( | |
message.chat.id, | |
"GUA KELUAR DULU YA! LU NARIK BOT TAPI GAK KASIH IZIN BANNED! 💥\n" | |
"BIKIN BOT BUAT APA KALO CUMA JADI PAJANGAN?" | |
) | |
await client.leave_chat(message.chat.id) | |
logging.info(f"Left group: {message.chat.title} ({message.chat.id})") | |
return | |
if message.new_chat_member.user.id == client.me.id: | |
if message.chat.id in LEAVE_GROUP_LIST: | |
await client.leave_chat(message.chat.id) | |
await message.reply_text( | |
"GUA KELUAR DULU YA! LU TARIK BOT KE GRUP DEVELOPER YANG SUDAH DIBLACKLIST! 💥\n" | |
"GAK MALU APA TARIK BOT TAPI GAK TAU ATURAN?\n" | |
"INI BUKAN BOT PAJANGAN, INI BOT ANTI EVAL! 🚫🧠" | |
) | |
return | |
await db.antieval.update_one( | |
{"bot_id": client.me.id}, | |
{"$addToSet": {"chat_id": message.chat.id}}, | |
upsert=True, | |
) | |
logging.info(f"Added to group: {message.chat.title} ({message.chat.id})") | |
async def block_inline_via_bot(client, message): | |
if message.via_bot: | |
if message.chat.id in [-1002407639480]: | |
return | |
username = message.via_bot.username.lower() | |
if any(ok in username for ok in BLOCKED_INLINE_BOTS): | |
logging.info(f"Blocked message from {message.from_user.first_name} in {message.chat.title}") | |
return await message.delete() | |
if message.via_bot and "eval" in message.via_bot.username.lower(): | |
logging.info(f"Blocked message from {message.from_user.first_name} in {message.chat.title}") | |
return await message.delete() | |
async def markdown_code(client, message): | |
if message.chat.id in [-1002407639480]: | |
return | |
check = (await client.get_chat_member(message.chat.id, client.me.id)).privileges | |
if not check or not check.can_restrict_members or not check.can_delete_messages: | |
await message.reply_text( | |
"GUA KELUAR DULU YA! LU NARIK BOT TAPI GAK KASIH IZIN BANNED! 💥\n" | |
"BIKIN BOT BUAT APA KALO CUMA JADI PAJANGAN?" | |
) | |
await client.leave_chat(message.chat.id) | |
logging.info(f"Left group: {message.chat.title} ({message.chat.id})") | |
return | |
if message.text.markdown is None: | |
return | |
if is_blocked_markdown_code(message.text.markdown or ""): | |
logging.info(f"Blocked message from {message.from_user.first_name} in {message.chat.title}") | |
await message.delete() | |
return | |
async def block_userbot_eval(client, message): | |
if message.chat.id in [-1002407639480]: | |
return | |
check = (await client.get_chat_member(message.chat.id, client.me.id)).privileges | |
if not check or not check.can_restrict_members or not check.can_delete_messages: | |
await message.reply_text( | |
"GUA KELUAR DULU YA! LU NARIK BOT TAPI GAK KASIH IZIN BANNED! 💥\n" | |
"BIKIN BOT BUAT APA KALO CUMA JADI PAJANGAN?" | |
) | |
await client.leave_chat(message.chat.id) | |
logging.info(f"Left group: {message.chat.title} ({message.chat.id})") | |
return | |
logging.info(f"Blocked message from {message.from_user.first_name} in {message.chat.title}") | |
await message.delete() | |
async def main(): | |
await db.connect() | |
await bot.start() | |
me_user = await bot.get_me() | |
me_user = me_user.first_name | |
logging.info(f"Info Bot: user {me_user} started!") | |
await idle() | |
if __name__ == "__main__": | |
loop = asyncio.get_event_loop() | |
loop.run_until_complete(main()) |