diff --git a/misskaty/plugins/inline_search.py b/misskaty/plugins/inline_search.py
index 38553398..d67c3752 100644
--- a/misskaty/plugins/inline_search.py
+++ b/misskaty/plugins/inline_search.py
@@ -3,6 +3,7 @@ import re
import traceback
from sys import platform
from sys import version as pyver
+from unicodedata import name
from bs4 import BeautifulSoup
from deep_translator import GoogleTranslator
@@ -35,7 +36,7 @@ To use this feature, just type bot username with following args below.
~ info [user id/username] - Check info about a user.
"""
-keywords_list = ["imdb", "pypi", "git", "google", "secretmsg", "info"]
+keywords_list = ["imdb", "pypi", "git", "google", "secretmsg", "info", "botapi"]
PRVT_MSGS = {}
@@ -87,6 +88,60 @@ async def inline_menu(_, inline_query: InlineQuery):
),
]
await inline_query.answer(results=answerss)
+ elif inline_query.query.strip().lower().split()[0] == "botapi":
+ if len(inline_query.query.strip().lower().split()) < 2:
+ return await inline_query.answer(
+ results=[],
+ switch_pm_text="Bot Api Docs | botapi [QUERY]",
+ switch_pm_parameter="inline",
+ )
+ kueri = inline_query.query.split(None, 1)[1].strip()
+ headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) " "Chrome/61.0.3163.100 Safari/537.36"}
+ jsonapi = await http.get(f"https://github.com/yasirarism/telegram-bot-api-spec/raw/main/api.json", headers=headers)
+ datajson = []
+ for b in jsonapi.json().get("methods"):
+ if b.get("name").lower() in kueri.lower():
+ name = b.get("name")
+ link = b.get("href")
+ description = b.get("description")
+ fields = ""
+ for f in name.get("fields"):
+ types = "".join(f"{i}, " for i in f["types"])
+ returns = "".join(f"{i}, " for i in name.get("returns"))
+ msg = f"{name} ({returns[:-2]})\n"
+ msg += f"Description: {description}\n\n"
+ msg += f"Variables:\n"
+ msg += f"{name['fields']['name']} ({fields[:-2]})\nRequired: {name['fields']['required']}\n{name['fields']['description']}\n\n"
+ data.append(
+ InlineQueryResultArticle(
+ title=f"{title}",
+ input_message_content=InputTextMessageContent(
+ message_text=message_text,
+ parse_mode=enums.ParseMode.HTML,
+ disable_web_page_preview=False,
+ ),
+ url=link,
+ description=description,
+ thumb_url="https://img.freepik.com/premium-vector/open-folder-folder-with-documents-document-protection-concept_183665-104.jpg",
+ reply_markup=InlineKeyboardMarkup(
+ [
+ [
+ InlineKeyboardButton(text="Open Docs", url=link)
+ ],
+ [
+ InlineKeyboardButton("Search Again", switch_inline_query_current_chat=inline_query.query)
+ ]
+ ]),
+ )
+ )
+ await inline_query.answer(
+ results=datajson,
+ is_gallery=False,
+ is_personal=False,
+ next_offset="",
+ switch_pm_text=f"Found {len(datajson)} results",
+ switch_pm_parameter="help",
+ )
elif inline_query.query.strip().lower().split()[0] == "google":
if len(inline_query.query.strip().lower().split()) < 2:
return await inline_query.answer(