# 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.custom import Button from telethon.tl.types import InputWebDocument as wb from .. import async_searcher, in_pattern, InlinePlugin, asst from bs4 import BeautifulSoup as bs __doc__ = f""" ✘ Commands Available - • `@{asst.username} omgu ` Searches for the query on OMG Ubuntu and returns the results. """ _OMG = {} @in_pattern("omgu", owner=True) async def omgubuntu(ult): try: match = ult.text.split(maxsplit=1)[1].lower() except IndexError: await ult.answer( [], switch_pm="Enter Query to search...", switch_pm_param="start" ) return if _OMG.get(match): return await ult.answer( _OMG[match], switch_pm="OMG Ubuntu Search :]", switch_pm_param="start" ) get_web = "https://www.omgubuntu.co.uk/?s=" + match.replace(" ", "+") get_ = await async_searcher(get_web, re_content=True) BSC = bs(get_, "html.parser", from_encoding="utf-8") res = [] for cont in BSC.find_all("div", "sbs-layout__item"): img = cont.find("div", "sbs-layout__image") url = img.find("a")["href"] src = img.find("img")["src"] con = cont.find("div", "sbs-layout__content") tit = con.find("a", "layout__title-link") title = tit.text.strip() desc = con.find("p", "layout__description").text.strip() text = f"[{title.strip()}]({url})\n\n{desc}" img = wb(src, 0, "image/jpeg", []) res.append( await ult.builder.article( title=title, type="photo", description=desc, url=url, text=text, buttons=Button.switch_inline( "Search Again", query=ult.text, same_peer=True ), include_media=True, content=img, thumb=img, ) ) await ult.answer( res, switch_pm=f"Showing {len(res)} results!" if res else "No Results Found :[", switch_pm_param="start", ) _OMG[match] = res InlinePlugin.update({"OᴍɢUʙᴜɴᴛᴜ": "omgu cutefish"})