瀏覽代碼

Added many things

TheHamkerCat 5 年之前
父節點
當前提交
ab714d41cf
共有 6 個文件被更改,包括 97 次插入 和 3 次删除
  1. 1 1
      sample_config.ini
  2. 1 0
      wbb/__init__.py
  3. 76 0
      wbb/modules/advanced.py
  4. 3 0
      wbb/modules/misc.py
  5. 2 2
      wbb/utils/errors.py
  6. 14 0
      wbb/utils/json_prettify.py

+ 1 - 1
sample_config.ini

@@ -9,7 +9,7 @@ sudo_user_id = 79813487
 neofetch = True
 # https://wall.alphacoders.com/api.php
 alpha_coders_wall_api_key = ca45r8c444s55g7t5s3a4esd33hs6t
-# Follow this tutorial to generate a key
+log_group_id = -1001337393587
 # https://cryptography.io/en/latest/fernet.html
 fernet_encryption_key = iKMq0WZMnJKjMQxZWKtv-cplMuF_LoyshXj0XbTGGWM=
 captcha_delay_in_seconds = 300

+ 1 - 0
wbb/__init__.py

@@ -32,6 +32,7 @@ config = ConfigParser()
 config.read("config.ini")
 OWNER_ID = int(config.get("admin", "owner_id"))
 SUDO_USER_ID = int(config.get("admin", "sudo_user_id"))
+LOG_GROUP_ID = int(config.get("admin", "log_group_id"))
 NEOFETCH = config.get("admin", "neofetch")
 WALL_API_KEY = config.get("admin", "alpha_coders_wall_api_key")
 FERNET_ENCRYPTION_KEY = config.get("admin", "fernet_encryption_key")

+ 76 - 0
wbb/modules/advanced.py

@@ -0,0 +1,76 @@
+from wbb import app, LOG_GROUP_ID
+from wbb.utils.json_prettify import json_object_prettify
+from wbb.utils.errors import capture_err
+from pyrogram.errors.exceptions.bad_request_400 import ChannelInvalid, PeerIdInvalid
+from pyrogram import filters
+
+
+__MODULE__ = "Advanced"
+__HELP__ = """**NOTE** - Some of these commands are only supported in BOT_LOG_GROUP [OWNER]
+/get_chat [CHAT_ID] - Get Info of A Chat.
+/get_user [USER_ID] - Get Info of A User.
+/leave_chat [CHAT_ID] - Leave The Chat.
+/send_message [CHAT_ID] [TEXT] - Send A Message To A Chat."""
+
+
+@app.on_message(filters.command("get_chat") & ~filters.edited)
+@capture_err
+async def get_chat_data(_, message):
+    if len(message.command) != 2:
+        await message.reply_text("/get_chat [CHAT_ID]")
+        return
+    try:
+        chat_id = message.text.split(None, 1)[1]
+        chat_data = await app.get_chat(chat_id)
+        data = await json_object_prettify(chat_data)
+        await app.send_message(message.chat.id, data)
+    except (PeerIdInvalid, ChannelInvalid) as e:
+        await message.reply_text("PEER_ID_INVALID")
+        print(str(e))
+
+
+@app.on_message(filters.command("get_user") & ~filters.edited)
+@capture_err
+async def get_user_data(_, message):
+    if len(message.command) != 2:
+        await message.reply_text("/get_user [USER_ID]")
+        return
+    try:
+        user_id = message.text.split(None, 1)[1]
+        user_data = await app.get_users(user_id)
+        data = await json_object_prettify(user_data)
+        await app.send_message(message.chat.id, data)
+    except (PeerIdInvalid, ChannelInvalid) as e:
+        await message.reply_text("PEER_ID_INVALID")
+        print(str(e))
+
+
+@app.on_message(filters.command("leave_chat") & ~filters.edited & filters.chat(LOG_GROUP_ID))
+@capture_err
+async def leave_chat(_, message):
+    if len(message.command) != 2:
+        await message.reply_text("/leave_chat [CHAT_ID]")
+        return
+    try:
+        chat_id = message.text.split(None, 1)[1]
+        await app.leave_chat(chat_id)
+        await message.reply_text("Left The Chat!")
+    except Exception as e:
+        await message.reply_text(str(e))
+        print(str(e))
+
+
+@app.on_message(filters.command("send_message") & ~filters.edited & filters.chat(LOG_GROUP_ID))
+@capture_err
+async def send_message(_, message):
+    if len(message.command) < 3:
+        await message.reply_text("/send_message [CHAT_ID] [TEXT]")
+        return
+    try:
+        chat_id = message.text.split(None, 2)[1]
+        text = message.text.split(None, 2)[2]
+        await app.send_message(chat_id, text=text)
+        await message.reply_text("Message Sent!")
+    except Exception as e:
+        await message.reply_text(str(e))
+        print(str(e))

+ 3 - 0
wbb/modules/misc.py

@@ -139,6 +139,9 @@ async def cheat(_, message: Message):
         query = ftext[1]
         r = requests.get(f"http://cht.sh/{language}/{query}?QT")
         reply = r.text
+        if not reply:
+            await message.reply_text("Found Literally Nothing!")
+            return
         await message.reply_text(f"`{reply}`")
     except Exception as e:
         await message.reply_text(str(e))

+ 2 - 2
wbb/utils/errors.py

@@ -1,7 +1,7 @@
 import sys
 import traceback
 from functools import wraps
-from wbb import app, OWNER_ID
+from wbb import app, LOG_GROUP_ID
 
 def split_limits(text):
     if len(text) < 2048:
@@ -41,7 +41,7 @@ def capture_err(func):
             )
             for x in error_feedback:
                 await app.send_message(
-                    OWNER_ID,
+                    LOG_GROUP_ID,
                     x
                 )
             raise err

+ 14 - 0
wbb/utils/json_prettify.py

@@ -0,0 +1,14 @@
+async def json_object_prettify(objecc):
+    dicc = objecc.__dict__
+    output = ""
+    for key , value in dicc.items():
+        if key == "pinned_message" or key == "photo":
+            continue
+        output += f"**{key}:** `{value}`\n"
+    return output
+
+async def json_prettify(data):
+    output = ""
+    for key , value in data.items():
+        output += f"**{key}:** `{value}`\n"
+    return output