Files
Ultroid-fork/addons/inline/omgubuntu.py

73 lines
2.3 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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
# <https://www.github.com/TeamUltroid/Ultroid/blob/main/LICENSE/>.
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 <query>`
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"})