TheHamkerCat 5 yıl önce
ebeveyn
işleme
93da0a4d80
3 değiştirilmiş dosya ile 65 ekleme ve 16 silme
  1. 48 14
      wbb/modules/misc.py
  2. 9 0
      wbb/utils/fetch.py
  3. 8 2
      wbb/utils/json_prettify.py

+ 48 - 14
wbb/modules/misc.py

@@ -8,20 +8,22 @@ from cryptography.fernet import Fernet
 from wbb import app, FERNET_ENCRYPTION_KEY
 from wbb.utils import cust_filter, random_line
 from wbb.utils.errors import capture_err
+from wbb.utils.json_prettify import json_prettify
+from wbb.utils.fetch import fetch
+from wbb.utils.nekobin import neko
+
 
 __MODULE__ = "Misc"
 __HELP__ = '''/commit - Generate Funny Commit Messages
 /runs  - Idk Test Yourself
-/quote - Get Random Linux Quotes
 /id - Get Chat_ID or User_ID
 /random - Generate Random Complex Passwords
-/http - Get Cats Reference Photo For Http Error Codes
 /encrypt - Encrypt Text [Can Only Be Decrypted By This Bot]
 /decrypt - Decrypt Text
-/ipinfo - Get Info About An Ip Address
 /cheat - Get Programming Related Help
 /weather - To Get Weather Info
-/tr - Translate A Message
+/tr [en] - Translate A Message
+/json [URL] - Get Response From An API or Something. 
 #RTFM - Check it lol'''
 
 
@@ -133,18 +135,18 @@ async def cheat(_, message: Message):
         await message.reply_text("/cheat [language] [query]")
         return
     text = message.text.split(None, 1)[1]
+    m = await message.reply_text("Searching")
     try:
         ftext = text.split()
         language = ftext[0]
         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!")
+        data = requests.get(f"http://cht.sh/{language}/{query}?QT").text
+        if not data:
+            await m.edit("Found Literally Nothing!")
             return
-        await message.reply_text(f"`{reply}`")
+        await m.edit(f"`{data}`")
     except Exception as e:
-        await message.reply_text(str(e))
+        await m.edit(str(e))
         print(str(e))
 
 # Weather
@@ -153,22 +155,26 @@ async def cheat(_, message: Message):
 @app.on_message(cust_filter.command(commands=("weather")) & ~filters.edited)
 @capture_err
 async def weather(_, message: Message):
-    city = message.text.split(None, 1)[1]
     if len(message.command) != 2:
         await message.reply_text("/weather [city]")
         return
+    city = message.text.split(None, 1)[1]
+    m = await message.reply_text("Fetching Data")
     r = requests.get(f"https://wttr.in/{city}?mnTC0")
     data = r.text
-    await message.reply_text(f"`{data}`")
+    await m.edit(f"`{data}`")
 
 # Translate
 
 
 @app.on_message(cust_filter.command(commands=("tr")) & ~filters.edited)
 @capture_err
-async def tr(_, message: Message):
+async def tr(_, message):
+    if len(message.command) != 2:
+        await message.reply_text("/tr [LANGUAGE_CODE]")
+        return
     lang = message.text.split(None, 1)[1]
-    if not message.reply_to_message or lang == "":
+    if not message.reply_to_message or not lang:
         await message.reply_text(
             "Reply to a message with /tr [language code]"
             + "\nGet supported language list from here -"
@@ -181,6 +187,34 @@ async def tr(_, message: Message):
     await message.reply_text(i.text)
 
 
+fetch_limit = 0
+
+
+@app.on_message(filters.command("json") & ~filters.edited)
+@capture_err
+async def json_fetch(_, message):
+    global fetch_limit
+    if len(message.command) != 2:
+        await message.reply_text("/json [URL]")
+        return
+    elif fetch_limit > 500:
+        await message.reply_text("Today's Quota Exceeded!, lol")
+        return
+    url = message.text.split(None, 1)[1]
+    try:
+        data = await fetch(url)
+        data = await json_prettify(data)
+        fetch_limit += 1
+        if len(data) < 4090:
+            await message.reply_text(data)
+        else:
+            neko_link = await neko(data)
+            await message.reply_text(f"[OUTPUT_TOO_LONG]({neko_link})", disable_web_page_preview=False)
+    except Exception as e:
+        await message.reply_text(str(e))
+        print(str(e))
+    
+
 @app.on_message(filters.command('bun'))
 @capture_err
 async def bunn(_, message):

+ 9 - 0
wbb/utils/fetch.py

@@ -0,0 +1,9 @@
+import aiohttp
+async def fetch(url):
+    async with aiohttp.ClientSession() as session:
+        async with session.get(url) as resp:
+            try:
+                data = await resp.json()
+            except:
+                data = await resp.text()
+    return data

+ 8 - 2
wbb/utils/json_prettify.py

@@ -9,6 +9,12 @@ async def json_object_prettify(objecc):
 
 async def json_prettify(data):
     output = ""
-    for key , value in data.items():
-        output += f"**{key}:** `{value}`\n"
+    try:
+        for key , value in data.items():
+            output += f"**{key}:** `{value}`\n"
+    except:
+        for datas in data:
+            for key , value in datas.items():
+                output += f"**{key}:** `{value}`\n"
+            output += "------------------------\n"
     return output