diff --git a/misskaty/plugins/pypi_search.py b/misskaty/plugins/pypi_search.py
index 9cf776f9..650f13b2 100644
--- a/misskaty/plugins/pypi_search.py
+++ b/misskaty/plugins/pypi_search.py
@@ -50,20 +50,41 @@ async def pypi_s(_, ctx: Message):
"Please add query after command. Ex: /pypi pyrogram", del_in=6
)
pesan = await ctx.reply_msg("⏳ Please wait, getting data from pypi..", quote=True)
- CurrentPage = 1
- pypires, PageLen, btn = await getDataPypi(
- pesan, kueri, CurrentPage, ctx.from_user.id
+ html = await fetch.get(f"https://pypi.org/pypi/{pkgname}/json")
+ if html.status_code != 200:
+ return await pesan.edit_msg("Failed connect fo pypi server")
+ res = html.json()
+ requirement = (
+ "".join(f"{i}, " for i in res["info"].get("requires_dist"))
+ if res["info"].get("requires_dist")
+ else "Unknown"
)
- if not pypires:
- return
+ msg = ""
+ msg += f"Package Name: {res['info'].get('name', 'Unknown')}\n"
+ msg += f"Version: {res['info'].get('version', 'Unknown')}\n"
+ msg += f"License: {res['info'].get('license', 'Unknown')}\n"
+ msg += f"Author: {res['info'].get('author', 'Unknown')}\n"
+ msg += f"Author Email: {res['info'].get('author_email', 'Unknown')}\n"
+ msg += f"Requirements: {requirement}\n"
+ msg += (
+ f"Requires Python: {res['info'].get('requires_python', 'Unknown')}\n"
+ )
+ msg += f"HomePage: {res['info'].get('home_page', 'Unknown')}\n"
+ msg += f"Bug Track: {res['info'].get('vulnerabilities', 'Unknown')}\n"
+ if res["info"].get("project_urls"):
+ msg += f"Docs Url: {res['info']['project_urls'].get('Documentation', 'Unknown')}\n"
+ msg += f"Description: {res['info'].get('summary', 'Unknown')}\n"
+ msg += (
+ f"Pip Command: pip3 install {res['info'].get('name', 'Unknown')}\n"
+ )
+ msg += f"Keywords: {res['info'].get('keywords', 'Unknown')}\n"
keyboard = InlineKeyboard()
- keyboard.paginate(
- PageLen, CurrentPage, "page_pypi#{number}" + f"#{pesan.id}#{ctx.from_user.id}"
- )
- keyboard.row(InlineButton("👇 Get Info ", "Hmmm"))
- keyboard.row(*btn)
keyboard.row(InlineButton("❌ Close", f"close#{ctx.from_user.id}"))
- await pesan.edit_msg(pypires, reply_markup=keyboard)
+ try:
+ await pesan.edit_msg(pypires, reply_markup=keyboard)
+ except MessageTooLong:
+ url = await post_to_telegraph(False, f"{pkgname}-detail", msg)
+ await pesan.edit_msg(f"Result is too long:\n{url}", reply_markup=keyboard)
@app.on_callback_query(filters.create(lambda _, __, query: "page_pypi#" in query.data))