Ver Fonte

fixed many things

TheHamkerCat há 5 anos atrás
pai
commit
721314659e
5 ficheiros alterados com 51 adições e 30 exclusões
  1. 1 1
      wbb/modules/devs.py
  2. 3 2
      wbb/modules/inline.py
  3. 25 21
      wbb/modules/locks.py
  4. 15 3
      wbb/modules/pmpermit.py
  5. 7 3
      wbb/utils/inlinefuncs.py

+ 1 - 1
wbb/modules/devs.py

@@ -97,7 +97,7 @@ async def executor(client, message):
             [[
                 InlineKeyboardButton(
                     text="⏳",
-                    callback_data=f"runtime {t2-t1} Seconds"
+                    callback_data=f"runtime {round(t2-t1, 3)} Seconds"
                 )
             ]]
         )

+ 3 - 2
wbb/modules/inline.py

@@ -377,9 +377,10 @@ async def inline_query_handler(client, query):
             )
             return
         
-        elif text.split()[0] == "pmpermit":
+        elif text.strip().split()[0] == "pmpermit":
             user_id = query.from_user.id
-            answerss = await pmpermit_func(answers, user_id)
+            victim = text.strip().split()[1]
+            answerss = await pmpermit_func(answers, user_id, victim)
             await client.answer_inline_query(
                 query.id,
                 results=answerss,

+ 25 - 21
wbb/modules/locks.py

@@ -81,30 +81,34 @@ async def tg_lock(message, permissions: list, perm: str, lock: bool):
 @app.on_message(filters.command(["lock", "unlock"]) & ~filters.private)
 @capture_err
 async def locks_func(_, message):
-    user_id = message.from_user.id
-    chat_id = message.chat.id
-    if len(message.command) != 2:
-        await message.reply_text(incorrect_parameters)
-        return
+    try:
+        user_id = message.from_user.id
+        chat_id = message.chat.id
+        if len(message.command) != 2:
+            await message.reply_text(incorrect_parameters)
+            return
 
-    parameter = message.text.strip().split(None, 1)[1].lower()
-    state = message.command[0].lower()
-    if parameter not in data and parameter != "all":
-        await message.reply_text(incorrect_parameters)
-        return
+        parameter = message.text.strip().split(None, 1)[1].lower()
+        state = message.command[0].lower()
+        if parameter not in data and parameter != "all":
+            await message.reply_text(incorrect_parameters)
+            return
 
-    permissions = await member_permissions(chat_id, user_id)
-    if "can_restrict_members" not in permissions and user_id not in SUDOERS:
-        await message.reply_text("You Don't Have Enough Permissions.")
-        return
+        permissions = await member_permissions(chat_id, user_id)
+        if "can_restrict_members" not in permissions and user_id not in SUDOERS:
+            await message.reply_text("You Don't Have Enough Permissions.")
+            return
 
-    permissions = await current_chat_permissions(chat_id)
-    if parameter in data:
-        await tg_lock(message, permissions, data[parameter], True if state == "lock" else False)
-        return
-    elif parameter == "all" and state == "lock":
-        await app.set_chat_permissions(chat_id, ChatPermissions())
-        await message.reply_text("Locked Everything.")
+        permissions = await current_chat_permissions(chat_id)
+        if parameter in data:
+            await tg_lock(message, permissions, data[parameter], True if state == "lock" else False)
+            return
+        elif parameter == "all" and state == "lock":
+            await app.set_chat_permissions(chat_id, ChatPermissions())
+            await message.reply_text("Locked Everything.")
+    except Exception as e:
+        await message.reply_text(str(e))
+        print(e)
 
 
 @app.on_message(filters.command("locks") & ~filters.private)

+ 15 - 3
wbb/modules/pmpermit.py

@@ -26,6 +26,7 @@ from wbb import app, app2, BOT_ID, USERBOT_ID, SUDOERS
 from pyrogram import filters
 from wbb.utils.dbfunctions import is_pmpermit_approved, approve_pmpermit, disapprove_pmpermit
 from wbb.modules.chatbot import active_chats_ubot
+import asyncio
 
 flood = {}
 
@@ -46,7 +47,7 @@ async def pmpermit_func(_, message):
         await app2.block_user(user_id)
         await message.reply_text("SPAM DETECTED, USER BLOCKED.")
         return
-    results = await app2.get_inline_bot_results(BOT_ID, "pmpermit")
+    results = await app2.get_inline_bot_results(BOT_ID, f"pmpermit {user_id}")
     await app2.send_inline_bot_result(
             user_id,
             results.query_id,
@@ -65,7 +66,9 @@ async def pm_approve(_, message):
         await message.edit("User is already approved to pm")
         return
     await approve_pmpermit(user_id)
-    await message.edit("User is approved to pm")
+    m = await message.edit("User is approved to pm")
+    await asyncio.sleep(2)
+    await m.delete()
 
 
 @app2.on_message(filters.command("disapprove", prefixes=".") & filters.user(SUDOERS) & ~filters.via_bot)
@@ -114,10 +117,19 @@ async def unblock_user_func(_, message):
 async def pmpermit_cq(_, cq):
     global active_chats_ubot
     user_id = cq.from_user.id
+    data, victim = cq.data.split(None, 2)[1], int(cq.data.split(None, 2)[2])
+
+    if data == "approve":
+        if user_id != USERBOT_ID:
+            await cq.answer("This Button Is Not For You")
+            return
+        await approve_pmpermit(victim)
+        await app.edit_inline_text(cq.inline_message_id, "User Has Been Approved To PM.")
+        return
     if user_id == USERBOT_ID:
         await cq.answer("It's For The Other Person.")
         return
-    data = cq.data.split(None, 1)[1]
+
     if data == "to_scam_you":
         async for m in app2.iter_history(user_id, limit=6):
             if m.reply_markup:

+ 7 - 3
wbb/utils/inlinefuncs.py

@@ -738,11 +738,11 @@ async def pastebin_func(answers, link):
     return answers
 
 
-async def pmpermit_func(answers, user_id):
+async def pmpermit_func(answers, user_id, victim):
     if user_id != USERBOT_ID:
         return
     caption = f"Hi, I'm {USERBOT_NAME}, What are you here for?, You'll be blocked if you send more than 5 messages."
-    buttons = InlineKeyboard(row_width=2)
+    buttons = InlineKeyboard(row_width=3)
     buttons.add(
             InlineKeyboardButton(
                 text="To Scam You",
@@ -752,13 +752,17 @@ async def pmpermit_func(answers, user_id):
                 text="For promotion",
                 callback_data="pmpermit to_scam_you"
                 ),
-                InlineKeyboardButton(
+            InlineKeyboardButton(
                 text="ChitChats",
                 callback_data="pmpermit chitchats"
                 ),
             InlineKeyboardButton(
                 text="Approve me",
                 callback_data="pmpermit approve_me"
+                ),
+            InlineKeyboardButton(
+                text="Approve",
+                callback_data=f"pmpermit approve {victim}"
                 )
             )
     answers.append(