import re
import chevron
from telegraph.aio import Telegraph
import logging
from aiohttp import ClientSession
from misskaty import BOT_USERNAME
from bs4 import BeautifulSoup as bs4
LOGGER = logging.getLogger(__name__)
headers = {"Accept": "*/*", "User-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36 Edge/18.19582"}
async def kusonimeBypass(url: str, slug=None):
hasil = {}
_url = url
request = ClientSession(headers=headers)
if slug:
noslug_url = "https://kusonime.com/{slug}"
_url = noslug_url.format({"slug": slug})
try:
test = await request.get(_url)
page = await test.text()
soup = bs4(page, "html.parser")
thumb = soup.find("div", {"class": "post-thumb"}).find("img").get("src")
data = []
# title = soup.select("#venkonten > div.vezone > div.venser > div.venutama > div.lexot > p:nth-child(3) > strong")[0].text.strip()
title = soup.find("h1", {"class": "jdlz"}).text # fix title njing haha
genre = []
for _genre in soup.select("#venkonten > div.vezone > div.venser > div.venutama > div.lexot > div.info > p:nth-child(2)"):
gen = _genre.text.split(":").pop().strip().split(", ")
genre = gen
status_anime = soup.select("#venkonten > div.vezone > div.venser > div.venutama > div.lexot > div.info > p:nth-child(6)")[0].text.split(":").pop().strip()
for num, smokedl in enumerate(soup.find("div", {"class": "dlbod"}).find_all("div", {"class": "smokeddl"}), start=1):
titl = soup.select(f"#venkonten > div.vezone > div.venser > div.venutama > div.lexot > div.dlbod > div:nth-child({num}) > div.smokettl")[0].text
titl = re.sub("Download", "", titl).strip()
mendata = {"name": titl, "links": []}
for smokeurl in smokedl.find_all("div", {"class": "smokeurl"}):
quality = smokeurl.find("strong").text
links = []
for link in smokeurl.find_all("a"):
url = link.get("href")
client = link.text
links.append({"client": client, "url": url})
mendata["links"].append(dict(quality=quality, link_download=links))
data.append(mendata)
hasil |= {
"error": False,
"title": title,
"thumb": thumb,
"genre": genre,
"genre_string": ", ".join(genre),
"status_anim": status_anime,
"data": data,
}
except:
hasil |= {"error": True, "error_message": "kuso bypass error"}
finally:
await request.close()
return hasil
async def byPassPh(url: str, msg_id: int):
kusonime = await kusonimeBypass(url)
results = {"error": True, "error_message": "Post to or create TGH error"}
if not kusonime["error"]:
template = """
Title : {{title}}
Genre : {{genre_string}}
Status : {{status_anime}}
Resolution: {{quality}}
{{#link_download}} {{/link_download}} {{/links}}