# Ultroid - UserBot # Copyright (C) 2021-2022 TeamUltroid # # This file is a part of < https://github.com/TeamUltroid/Ultroid/ > # PLease read the GNU Affero General Public License in # . from telethon.tl.types import InputWebDocument as wb from telethon.tl.custom import Button from . import in_pattern, InlinePlugin, async_searcher, asst __doc__ = f""" ✘ Commands Available - • `@{asst.username} koo ` Searches for the query on Koo and returns the results. """ _koo_ = {} @in_pattern("koo", owner=True) async def koo_search(ult): """Search Users on koo with API""" try: match = ult.text.split(maxsplit=1)[1].lower() match_ = match except IndexError: await ult.answer( [], switch_pm="Enter Query to Search..", switch_pm_param="start" ) return if _koo_.get(match): return await ult.answer( _koo_[match], switch_pm="• Koo Search •", switch_pm_param="start" ) res = [] se_ = None key_count = None if " | " in match: match = match.split(" | ", maxsplit=1) try: key_count = int(match[1]) except ValueError: pass match = match[0] match = match.replace(" ", "+") req = await async_searcher( f"https://www.kooapp.com/apiV1/search?query={match}&searchType=EXPLORE", re_json=True, ) if key_count: try: se_ = [req["feed"][key_count - 1]] except KeyError: pass if not se_: se_ = req["feed"] for count, feed in enumerate(se_[:10]): if feed["uiItemType"] == "search_profile": count += 1 item = feed["items"][0] profileImage = ( item["profileImageBaseUrl"] if item.get("profileImageBaseUrl") else "https://telegra.ph/file/dc28e69bd7ea2c0f25329.jpg" ) extra = await async_searcher( "https://www.kooapp.com/apiV1/users/handle/" + item["userHandle"], re_json=True, ) img = wb(profileImage, 0, "image/jpeg", []) text = f"‣ **Name :** `{item['name']}`" if extra.get("title"): text += f"\n‣ **Title :** `{extra['title']}`" text += f"\n‣ **Username :** `@{item['userHandle']}`" if extra.get("description"): text += f"\n‣ **Description :** `{extra['description']}`" text += f"\n‣ **Followers :** `{extra['followerCount']}` ‣ **Following :** {extra['followingCount']}" if extra.get("socialProfile") and extra["socialProfile"].get("website"): text += f"\n‣ **Website :** {extra['socialProfile']['website']}" res.append( await ult.builder.article( title=item["name"], description=item.get("title") or f"@{item['userHandle']}", type="photo", content=img, thumb=img, include_media=True, text=text, buttons=[ Button.url( "View", "https://kooapp.com/profile/" + item["userHandle"], ), Button.switch_inline( "• Share •", query=ult.text if key_count else f"{ult.text} | {count}", ), ], ) ) if not res: switch = "No Results Found :(" else: _koo_.update({match_: res}) switch = f"Showing {len(res)} Results!" await ult.answer(res, switch_pm=switch, switch_pm_param="start") InlinePlugin.update({"Kᴏᴏ Sᴇᴀʀᴄʜ": "koo @__kumar__amit"})