Browse Source

Audio inline

TheHamkerCat 5 năm trước cách đây
mục cha
commit
4419f4a6bf
3 tập tin đã thay đổi với 35 bổ sung và 6 xóa
  1. 1 1
      wbb/core/types/InlineQueryResult.py
  2. 15 0
      wbb/modules/inline.py
  3. 19 5
      wbb/utils/inlinefuncs.py

+ 1 - 1
wbb/core/types/InlineQueryResult.py

@@ -78,7 +78,7 @@ class InlineQueryResultAudio(InlineQueryResult):
 
         self.audio_url = audio_url
         self.thumb_url = thumb_url
-        self.voice = True if self.mime_type == "audio/ogg" else False
+        self.voice = True if mime_type == "audio/ogg" else False
         self.title = title
         self.caption = caption
         self.description = description

+ 15 - 0
wbb/modules/inline.py

@@ -412,6 +412,21 @@ async def inline_query_handler(client, query):
             await client.answer_inline_query(
                 query.id, results=answerss, cache_time=2
             )
+
+        elif text.split()[0] == "audio":
+            if len(text.split()) < 2:
+                await client.answer_inline_query(
+                    query.id,
+                    results=answers,
+                    switch_pm_text="Random Audio Search | audio [Query]",
+                    switch_pm_parameter="inline",
+                )
+                return
+            tex = text.split()[1].strip()
+            answerss = await randomAudioFunc(answers, tex)
+            await client.answer_inline_query(
+                query.id, results=answerss, cache_time=2
+            )
     except Exception as e:
         e = traceback.format_exc()
         print(e, " InLine")

+ 19 - 5
wbb/utils/inlinefuncs.py

@@ -30,7 +30,6 @@ from sys import version as pyver
 from time import ctime, time
 
 import aiofiles
-import aiohttp
 from motor import version as mongover
 from pykeyboard import InlineKeyboard
 from pyrogram import __version__ as pyrover
@@ -41,8 +40,8 @@ from pyrogram.types import (InlineKeyboardButton, InlineQueryResultArticle,
 from search_engine_parser import GoogleSearch
 
 from wbb import (BOT_USERNAME, MESSAGE_DUMP_CHAT, SUDOERS, USERBOT_ID,
-                 USERBOT_NAME, USERBOT_USERNAME, app, app2, arq)
-from wbb.core.types import InlineQueryResultCachedDocument
+                 USERBOT_NAME, USERBOT_USERNAME, app, app2, arq, aiohttpsession)
+from wbb.core.types import InlineQueryResultCachedDocument, InlineQueryResultAudio
 from wbb.modules.info import get_chat_info, get_user_info
 from wbb.modules.music import download_youtube_audio
 from wbb.modules.paste import isPreviewUp
@@ -352,8 +351,7 @@ async def shortify(url):
     }
     payload = {"long_url": f"{url}"}
     payload = json.dumps(payload)
-    async with aiohttp.ClientSession() as session:
-        async with session.post(
+    async with aiohttpsession.post(
             "https://api-ssl.bitly.com/v4/shorten",
             headers=header,
             data=payload,
@@ -1074,3 +1072,19 @@ async def pypiSearchFunc(answers: list, query: str) -> list:
         )
     )
     return answers
+
+
+async def randomAudioFunc(answers: list, query: str) -> list:
+    url = f"https://www.zedge.net/api-zedge-web/browse/search?query={query}&contentType=ringtones"
+    async with aiohttpsession.get(url) as resp:
+        data = await resp.json()
+    items = data['items']
+    answers = [
+            InlineQueryResultAudio(
+                audio_url=audio['audioUrl'],
+                thumb_url="https://tweety.drk1.workers.dev/0:/image_2021-05-22_20-56-47.png",
+                title=audio['title'],
+                mime_type="audio/mp3"
+                ) for audio in items
+            ]
+    return answers