PMGuard: Allow bots

This commit is contained in:
thedragonsinn
2024-01-12 17:39:29 +05:30
parent da8a697acc
commit cdfaf782fd
2 changed files with 15 additions and 9 deletions

View File

@@ -6,13 +6,12 @@ import sys
import traceback
from io import BytesIO
from pyrogram import Client, filters, idle
from pyrogram.enums import ParseMode
from pyrogram.types import Message as Msg
from app import DB_CLIENT, LOGGER, Config, Message
from app.core.decorators.add_cmd import AddCmd
from app.utils.aiohttp_tools import aio
from pyrogram import Client, filters, idle
from pyrogram.enums import ParseMode
from pyrogram.types import Message as Msg
def import_modules():
@@ -126,5 +125,6 @@ class BOT(Client, AddCmd):
return Message.parse_message(message=message)
doc = BytesIO(bytes(text, encoding="utf-8"))
doc.name = name
# fmt:skip
return await super().send_document(chat_id=chat_id, document=doc, **kwargs)
return (await super().send_document(
chat_id=chat_id, document=doc, **kwargs
)) # fmt: skip

View File

@@ -29,7 +29,9 @@ async def init_task():
@bot.on_message(
(guard_check & filters.private & filters.incoming) & ~allowed_filter, group=0
(guard_check & filters.private & filters.incoming)
& (~allowed_filter & ~filters.bot),
group=0,
)
async def handle_new_pm(bot: BOT, message: Message):
user_id = message.from_user.id
@@ -55,14 +57,16 @@ async def handle_new_pm(bot: BOT, message: Message):
)
@bot.on_message(guard_check & filters.private & filters.outgoing, group=2)
@bot.on_message(
(guard_check & filters.private & filters.outgoing) & ~filters.bot, group=2
)
async def auto_approve(bot: BOT, message: Message):
if message.chat.id in ALLOWED_USERS:
return
message = Message.parse_message(message=message)
await message.reply("Auto-Approved to PM.", del_in=5)
await PM_USERS.insert_one({"_id": message.chat.id})
ALLOWED_USERS.append(message.chat.id)
await PM_USERS.insert_one({"_id": message.chat.id})
@bot.add_cmd(cmd="pmguard")
@@ -99,6 +103,8 @@ async def allow_pm(bot: BOT, message: Message):
await message.reply(f"{name} is already approved.")
return
ALLOWED_USERS.append(user_id)
if user_id in RECENT_USERS:
RECENT_USERS.remove(user_id)
await asyncio.gather(
message.reply(text=f"{name} allowed to PM.", del_in=8),
PM_USERS.insert_one({"_id": user_id}),