Преглед на файлове

fix: Add more restrictions to some userbot commands

TheHamkerCat преди 3 години
родител
ревизия
d583091b30

+ 6 - 1
wbb/modules/alive.py

@@ -27,7 +27,12 @@ from pyrogram import filters
 from wbb import BOT_ID, SUDOERS, USERBOT_PREFIX, app2
 
 
-@app2.on_message(filters.command("alive", prefixes=USERBOT_PREFIX) & SUDOERS)
+@app2.on_message(
+    filters.command("alive", prefixes=USERBOT_PREFIX)
+    & ~filters.forwarded
+    & ~filters.via_bot
+    & SUDOERS
+)
 async def alive_command_func(_, message):
     await message.delete()
     results = await app2.get_inline_bot_results(BOT_ID, "alive")

+ 12 - 2
wbb/modules/anonymize.py

@@ -38,7 +38,12 @@ from wbb.modules.userbot import eor
 from wbb.utils.functions import extract_user
 
 
-@app2.on_message(filters.command("anonymize", prefixes=USERBOT_PREFIX) & SUDOERS)
+@app2.on_message(
+    filters.command("anonymize", prefixes=USERBOT_PREFIX)
+    & ~filters.forwarded
+    & ~filters.via_bot
+    & SUDOERS
+)
 async def change_profile(_, message: Message):
     m = await eor(message, text="Anonymizing...")
     try:
@@ -64,7 +69,12 @@ async def change_profile(_, message: Message):
     image.close()
 
 
-@app2.on_message(filters.command("impersonate", prefixes=USERBOT_PREFIX) & SUDOERS)
+@app2.on_message(
+    filters.command("impersonate", prefixes=USERBOT_PREFIX)
+    & ~filters.forwarded
+    & ~filters.via_bot
+    & SUDOERS
+)
 async def impersonate(_, message: Message):
     user_id = await extract_user(message)
 

+ 10 - 2
wbb/modules/autocorrect.py

@@ -24,7 +24,12 @@ async def autocorrect_bot(_, message: Message):
 IS_ENABLED = False
 
 
-@app2.on_message(filters.command("autocorrect", prefixes=USERBOT_PREFIX) & SUDOERS)
+@app2.on_message(
+    filters.command("autocorrect", prefixes=USERBOT_PREFIX)
+    & ~filters.forwarded
+    & ~filters.via_bot
+    & SUDOERS
+)
 async def autocorrect_ubot_toggle(_, message: Message):
     global IS_ENABLED
     if len(message.command) != 2:
@@ -41,7 +46,10 @@ async def autocorrect_ubot_toggle(_, message: Message):
 
 
 @app2.on_message(
-    filters.text & filters.user(USERBOT_ID),
+    filters.text
+    & filters.user(USERBOT_ID)
+    & ~filters.forwarded
+    & ~filters.via_bot,
     group=autocorrect_group,
 )
 async def autocorrect_ubot(_, message: Message):

+ 6 - 1
wbb/modules/chatbot.py

@@ -116,7 +116,12 @@ async def chatbot_talk(_, message: Message):
 # FOR USERBOT
 
 
-@app2.on_message(filters.command("chatbot", prefixes=USERBOT_PREFIX) & SUDOERS)
+@app2.on_message(
+    filters.command("chatbot", prefixes=USERBOT_PREFIX)
+    & SUDOERS
+    & ~filters.forwarded
+    & ~filters.via_bot
+)
 @capture_err
 async def chatbot_status_ubot(_, message: Message):
     if len(message.text.split()) != 2:

+ 5 - 1
wbb/modules/dice.py

@@ -10,7 +10,11 @@ __HELP__ = """
 """
 
 
-@app2.on_message(filters.command("dice", prefixes=USERBOT_PREFIX) & SUDOERS)
+@app2.on_message(
+    filters.command("dice", prefixes=USERBOT_PREFIX)
+    & SUDOERS
+    & ~filters.forwarded
+    & ~filters.via_bot)
 @app.on_message(filters.command("dice"))
 async def throw_dice(client, message: Message):
     six = (message.from_user.id in SUDOERS) if message.from_user else False

+ 12 - 2
wbb/modules/download_upload.py

@@ -36,7 +36,12 @@ from wbb.core.tasks import add_task, rm_task
 from wbb.utils.downloader import download
 
 
-@app2.on_message(SUDOERS & filters.command("download", prefixes=USERBOT_PREFIX))
+@app2.on_message(
+    SUDOERS
+    & filters.command("download", prefixes=USERBOT_PREFIX)
+    & ~filters.forwarded
+    & ~filters.via_bot
+)
 async def download_func(_, message: Message):
     reply = message.reply_to_message
     start = time()
@@ -103,7 +108,12 @@ async def download_func(_, message: Message):
     await eor(m, text=section("Downloaded", body))
 
 
-@app2.on_message(SUDOERS & filters.command("upload", prefixes=USERBOT_PREFIX))
+@app2.on_message(
+    SUDOERS
+    & filters.command("upload", prefixes=USERBOT_PREFIX)
+    & ~filters.forwarded
+    & ~filters.via_bot
+)
 async def upload_func(_, message: Message):
     if len(message.text.split()) != 2:
         return await eor(message, text="Invalid Arguments")

+ 12 - 2
wbb/modules/misc.py

@@ -101,7 +101,12 @@ ASQ_LOCK = Lock()
 PING_LOCK = Lock()
 
 
-@app2.on_message(SUDOERS & filters.command("ping", prefixes=USERBOT_PREFIX))
+@app2.on_message(
+    SUDOERS
+    & filters.command("ping", prefixes=USERBOT_PREFIX)
+    & ~filters.forwarded
+    & ~filters.via_bot
+)
 @app.on_message(filters.command("ping"))
 async def ping_handler(_, message):
     m = await eor(message, text="Pinging datacenters...")
@@ -169,7 +174,12 @@ async def runs(_, message):
     await message.reply_text((await random_line("wbb/utils/runs.txt")))
 
 
-@app2.on_message(filters.command("id", prefixes=USERBOT_PREFIX) & SUDOERS)
+@app2.on_message(
+    filters.command("id", prefixes=USERBOT_PREFIX)
+    & ~filters.forwarded
+    & ~filters.via_bot
+    & SUDOERS
+)
 @app.on_message(filters.command("id"))
 async def getid(client, message):
     chat = message.chat

+ 24 - 4
wbb/modules/notes.py

@@ -45,7 +45,12 @@ Checkout /markdownhelp to know more about formattings and other syntax.
 """
 
 
-@app2.on_message(filters.command("save", prefixes=USERBOT_PREFIX) & SUDOERS)
+@app2.on_message(
+    filters.command("save", prefixes=USERBOT_PREFIX)
+    & ~filters.forwarded
+    & ~filters.via_bot
+    & SUDOERS
+)
 @app.on_message(filters.command("save") & ~filters.private)
 @adminsOnly("can_change_info")
 async def save_notee(_, message):
@@ -77,7 +82,12 @@ async def save_notee(_, message):
         await eor(message, text=f"__**Saved note {name}.**__")
 
 
-@app2.on_message(filters.command("notes", prefixes=USERBOT_PREFIX) & SUDOERS)
+@app2.on_message(
+    filters.command("notes", prefixes=USERBOT_PREFIX)
+    & ~filters.forwarded
+    & ~filters.via_bot
+    & SUDOERS
+)
 @app.on_message(filters.command("notes") & ~filters.private)
 @capture_err
 async def get_notes(_, message):
@@ -96,7 +106,12 @@ async def get_notes(_, message):
     await eor(message, text=msg)
 
 
-@app2.on_message(filters.command("get", prefixes=USERBOT_PREFIX) & SUDOERS)
+@app2.on_message(
+    filters.command("get", prefixes=USERBOT_PREFIX)
+    & ~filters.forwarded
+    & ~filters.via_bot
+    & SUDOERS
+)
 async def get_one_note_userbot(_, message):
     if len(message.text.split()) < 2:
         return await eor(message, text="Invalid arguments")
@@ -143,7 +158,12 @@ async def get_one_note(_, message):
         await message.reply_sticker(_note["data"])
 
 
-@app2.on_message(filters.command("delete", prefixes=USERBOT_PREFIX) & SUDOERS)
+@app2.on_message(
+    filters.command("delete", prefixes=USERBOT_PREFIX)
+    & ~filters.forwarded
+    & ~filters.via_bot
+    & SUDOERS
+)
 @app.on_message(filters.command("delete") & ~filters.private)
 @adminsOnly("can_change_info")
 async def del_note(_, message):

+ 6 - 1
wbb/modules/parse_preview.py

@@ -7,7 +7,12 @@ from wbb import SUDOERS, USERBOT_PREFIX, app2, eor
 from wbb.core.sections import section
 
 
-@app2.on_message(filters.command("parse_preview", prefixes=USERBOT_PREFIX) & SUDOERS)
+@app2.on_message(
+    filters.command("parse_preview", prefixes=USERBOT_PREFIX)
+    & ~filters.forwarded
+    & ~filters.via_bot
+    & SUDOERS
+)
 async def parse(_, message: Message):
     r = message.reply_to_message
     has_wpp = False

+ 6 - 1
wbb/modules/paste.py

@@ -38,7 +38,12 @@ __HELP__ = "/paste - To Paste Replied Text Or Document To A Pastebin"
 pattern = re.compile(r"^text/|json$|yaml$|xml$|toml$|x-sh$|x-shellscript$")
 
 
-@app2.on_message(filters.command("paste", prefixes=USERBOT_PREFIX) & SUDOERS)
+@app2.on_message(
+    filters.command("paste", prefixes=USERBOT_PREFIX) 
+    & ~filters.forwarded
+    & ~filters.via_bot
+    & SUDOERS
+)
 @app.on_message(filters.command("paste"))
 @capture_err
 async def paste_func(_, message: Message):

+ 16 - 4
wbb/modules/pmpermit.py

@@ -69,7 +69,10 @@ async def pmpermit_func(_, message):
 
 
 @app2.on_message(
-    filters.command("approve", prefixes=USERBOT_PREFIX) & SUDOERS & ~filters.via_bot
+    filters.command("approve", prefixes=USERBOT_PREFIX)
+    & SUDOERS 
+    & ~filters.via_bot
+    & ~filters.forwarded
 )
 @capture_err
 async def pm_approve(_, message):
@@ -83,7 +86,10 @@ async def pm_approve(_, message):
 
 
 @app2.on_message(
-    filters.command("disapprove", prefixes=USERBOT_PREFIX) & SUDOERS & ~filters.via_bot
+    filters.command("disapprove", prefixes=USERBOT_PREFIX)
+    & SUDOERS 
+    & ~filters.via_bot
+    & ~filters.forwarded
 )
 async def pm_disapprove(_, message):
     if not message.reply_to_message:
@@ -103,7 +109,10 @@ async def pm_disapprove(_, message):
 
 
 @app2.on_message(
-    filters.command("block", prefixes=USERBOT_PREFIX) & SUDOERS & ~filters.via_bot
+    filters.command("block", prefixes=USERBOT_PREFIX)
+    & SUDOERS
+    & ~filters.via_bot
+    & ~filters.forwarded
 )
 @capture_err
 async def block_user_func(_, message):
@@ -116,7 +125,10 @@ async def block_user_func(_, message):
 
 
 @app2.on_message(
-    filters.command("unblock", prefixes=USERBOT_PREFIX) & SUDOERS & ~filters.via_bot
+    filters.command("unblock", prefixes=USERBOT_PREFIX)
+    & SUDOERS 
+    & ~filters.via_bot
+    & ~filters.forwarded
 )
 async def unblock_user_func(_, message):
     if not message.reply_to_message:

+ 7 - 2
wbb/modules/purge_me.py

@@ -25,7 +25,7 @@ SOFTWARE.
 from pyrogram import filters
 from pyrogram.types import Message
 
-from wbb import USERBOT_ID, USERBOT_PREFIX, app2, eor, log, telegraph
+from wbb import SUDOERS, USERBOT_ID, USERBOT_PREFIX, app2, eor, log, telegraph
 
 __MODULE__ = "Userbot"
 TEXT = """
@@ -90,7 +90,10 @@ log.info("Done pasting userbot commands on telegraph")
 
 
 @app2.on_message(
-    filters.command("help", prefixes=USERBOT_PREFIX) & filters.user(USERBOT_ID)
+    filters.command("help", prefixes=USERBOT_PREFIX)
+    & ~filters.forwarded
+    & ~filters.via_bot
+    & filters.user(USERBOT_ID)
 )
 async def get_help(_, message: Message):
     await eor(
@@ -102,6 +105,8 @@ async def get_help(_, message: Message):
 
 @app2.on_message(
     filters.command(["purgeme", "purge_me"], prefixes=USERBOT_PREFIX)
+    & ~filters.forwarded
+    & ~filters.via_bot
     & filters.user(USERBOT_ID)
 )
 async def purge_me_func(_, message: Message):

+ 6 - 1
wbb/modules/quotly.py

@@ -64,7 +64,12 @@ def isArgInt(message: Message) -> list:
         return [False, 0]
 
 
-@app2.on_message(filters.command("q", prefixes=USERBOT_PREFIX) & SUDOERS)
+@app2.on_message(
+    filters.command("q", prefixes=USERBOT_PREFIX)
+    & ~filters.forwarded
+    & ~filters.via_bot
+    & SUDOERS
+)
 @app.on_message(filters.command("q") & ~filters.private)
 @capture_err
 async def quotly_func(client, message: Message):

+ 6 - 1
wbb/modules/reverse.py

@@ -44,7 +44,12 @@ async def get_soup(url: str, headers):
     return BeautifulSoup(html, "html.parser")
 
 
-@app2.on_message(filters.command("reverse", prefixes=USERBOT_PREFIX) & SUDOERS)
+@app2.on_message(
+    filters.command("reverse", prefixes=USERBOT_PREFIX)
+    & ~filters.forwarded
+    & ~filters.via_bot
+    & SUDOERS
+)
 @app.on_message(filters.command("reverse"))
 @capture_err
 async def reverse_image_search(client, message: Message):

+ 4 - 1
wbb/modules/stickers.py

@@ -106,7 +106,10 @@ async def sticker_image(_, message: Message):
 
 
 @app2.on_message(
-    filters.command("kang", prefixes=USERBOT_PREFIX) & SUDOERS,
+    filters.command("kang", prefixes=USERBOT_PREFIX)
+    & ~filters.forwarded
+    & ~filters.via_bot
+    & SUDOERS,
 )
 async def userbot_kang(_, message: Message):
     reply = message.reply_to_message

+ 18 - 3
wbb/modules/sudo.py

@@ -44,7 +44,12 @@ can even delete your account.
 """
 
 
-@app2.on_message(filters.command("useradd", prefixes=USERBOT_PREFIX) & SUDOERS)
+@app2.on_message(
+    filters.command("useradd", prefixes=USERBOT_PREFIX)
+    & ~filters.forwarded
+    & ~filters.via_bot
+    & SUDOERS
+)
 @capture_err
 async def useradd(_, message: Message):
     if not message.reply_to_message:
@@ -72,7 +77,12 @@ async def useradd(_, message: Message):
     )
 
 
-@app2.on_message(filters.command("userdel", prefixes=USERBOT_PREFIX) & SUDOERS)
+@app2.on_message(
+    filters.command("userdel", prefixes=USERBOT_PREFIX)
+    & ~filters.forwarded
+    & ~filters.via_bot
+    & SUDOERS
+)
 @capture_err
 async def userdel(_, message: Message):
     if not message.reply_to_message:
@@ -97,7 +107,12 @@ async def userdel(_, message: Message):
     )
 
 
-@app2.on_message(filters.command("sudoers", prefixes=USERBOT_PREFIX) & SUDOERS)
+@app2.on_message(
+    filters.command("sudoers", prefixes=USERBOT_PREFIX)
+    & ~filters.forwarded
+    & ~filters.via_bot
+    & SUDOERS
+)
 @capture_err
 async def sudoers_list(_, message: Message):
     sudoers = await get_sudoers()

+ 4 - 1
wbb/modules/taglogger.py

@@ -70,7 +70,10 @@ async def sendLog(message: Message):
 
 
 @app2.on_message(
-    ~filters.me & ~filters.chat([LOG_GROUP_ID, BOT_ID]) & ~filters.private,
+    ~filters.me & ~filters.chat([LOG_GROUP_ID, BOT_ID])
+    & ~filters.private
+    & ~filters.forwarded
+    & ~filters.via_bot,
     group=taglog_group,
 )
 @capture_err

+ 6 - 1
wbb/modules/userbot.py

@@ -231,7 +231,12 @@ async def shellrunner(_, message: Message):
         )
 
 
-@app2.on_message(SUDOERS & filters.command("reserve", prefixes=USERBOT_PREFIX))
+@app2.on_message(
+    filters.command("reserve", prefixes=USERBOT_PREFIX)
+    & ~filters.forwarded
+    & ~filters.via_bot
+    & SUDOERS
+)
 async def reserve_channel_handler(_, message: Message):
     if len(message.text.split()) != 2:
         return await eor(message, text="Pass a username as argument!!")

+ 6 - 1
wbb/modules/webss.py

@@ -56,7 +56,12 @@ async def take_screenshot(url: str, full: bool = False):
     return file
 
 
-@app2.on_message(filters.command("webss", USERBOT_PREFIX) & SUDOERS)
+@app2.on_message(
+    filters.command("webss", USERBOT_PREFIX)
+    & ~filters.forwarded
+    & ~filters.via_bot
+    & SUDOERS
+)
 @app.on_message(filters.command("webss"))
 @capture_err
 async def take_ss(_, message: Message):