mirror of
https://github.com/yasirarism/MissKatyPyro.git
synced 2025-12-29 09:44:50 +00:00
75 lines
2.5 KiB
Python
75 lines
2.5 KiB
Python
from pykeyboard import InlineKeyboard
|
|
from pyrogram.types import CallbackQuery, Message
|
|
|
|
from misskaty import app
|
|
from misskaty.helper.http import fetch
|
|
|
|
|
|
async def getData(chat_id, message_id, GetWord, CurrentPage):
|
|
UDJson = (
|
|
await fetch.get(f"https://api.urbandictionary.com/v0/define?term={GetWord}")
|
|
).json()
|
|
|
|
if "list" not in UDJson:
|
|
return await app.send_msg(
|
|
chat_id=chat_id,
|
|
reply_to_message_id=message_id,
|
|
text=f"Word: {GetWord}\nResults: Sorry could not find any matching results!",
|
|
del_in=5,
|
|
)
|
|
try:
|
|
index = int(CurrentPage - 1)
|
|
PageLen = len(UDJson["list"])
|
|
UDReasult = (
|
|
f"**Definition of {GetWord}**\n"
|
|
f"{UDJson['list'][index]['definition']}\n\n"
|
|
"**📌 Examples**\n"
|
|
f"__{UDJson['list'][index]['example']}__"
|
|
)
|
|
UDFReasult = "".join(i for i in UDReasult if i not in "[]")
|
|
return (UDFReasult, PageLen)
|
|
|
|
except (IndexError, KeyError):
|
|
await app.send_msg(
|
|
chat_id=chat_id,
|
|
reply_to_message_id=message_id,
|
|
text=f"Word: {GetWord}\nResults: Sorry could not find any matching results!",
|
|
del_in=5,
|
|
)
|
|
|
|
|
|
@app.on_cmd("ud", no_channel=True)
|
|
async def urbanDictionary(_, ctx: Message):
|
|
message_id = ctx.id
|
|
chat_id = ctx.chat.id
|
|
GetWord = " ".join(ctx.command[1:])
|
|
if not GetWord:
|
|
message = await ctx.chat.ask("Now give any word for query!")
|
|
GetWord = message.text
|
|
|
|
CurrentPage = 1
|
|
try:
|
|
UDReasult, PageLen = await getData(chat_id, message_id, GetWord, CurrentPage)
|
|
except:
|
|
return await ctx.reply_msg("😭 Failed getting info from urban dictionary.")
|
|
|
|
keyboard = InlineKeyboard()
|
|
keyboard.paginate(PageLen, CurrentPage, "pagination_urban#{number}" + f"#{GetWord}")
|
|
await ctx.reply_msg(text=f"{UDReasult}", reply_markup=keyboard)
|
|
|
|
|
|
@app.on_cb("pagination_urban#")
|
|
async def ud_callback(_, callback_query: CallbackQuery):
|
|
message_id = callback_query.message.id
|
|
chat_id = callback_query.message.chat.id
|
|
CurrentPage = int(callback_query.data.split("#")[1])
|
|
GetWord = callback_query.data.split("#")[2]
|
|
|
|
try:
|
|
UDReasult, PageLen = await getData(chat_id, message_id, GetWord, CurrentPage)
|
|
except TypeError:
|
|
return
|
|
|
|
keyboard = InlineKeyboard()
|
|
keyboard.paginate(PageLen, CurrentPage, "pagination_urban#{number}" + f"#{GetWord}")
|
|
await callback_query.message.edit_msg(text=UDReasult, reply_markup=keyboard)
|