Add botapi search

This commit is contained in:
yasir 2023-02-07 10:28:10 +07:00
parent cbd0781774
commit 0dda8f9a17

View file

@ -3,6 +3,7 @@ import re
import traceback import traceback
from sys import platform from sys import platform
from sys import version as pyver from sys import version as pyver
from unicodedata import name
from bs4 import BeautifulSoup from bs4 import BeautifulSoup
from deep_translator import GoogleTranslator 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. ~ 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 = {} PRVT_MSGS = {}
@ -87,6 +88,60 @@ async def inline_menu(_, inline_query: InlineQuery):
), ),
] ]
await inline_query.answer(results=answerss) 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"<b>{name}</b> (<code>{returns[:-2]}</code>)\n"
msg += f"<b>Description:</b> {description}\n\n"
msg += f"<b>Variables:</b>\n"
msg += f"<code>{name['fields']['name']}<code> ({fields[:-2]})\n<b>Required:</b> {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": elif inline_query.query.strip().lower().split()[0] == "google":
if len(inline_query.query.strip().lower().split()) < 2: if len(inline_query.query.strip().lower().split()) < 2:
return await inline_query.answer( return await inline_query.answer(