This commit is contained in:
yasir 2023-01-18 14:42:52 +07:00
parent 043798e32e
commit df4dbb76ba
3 changed files with 76 additions and 78 deletions

View file

@ -96,6 +96,8 @@ def get_provider(url):
name = "Google Play Movies" name = "Google Play Movies"
elif names[0] == "hbogoasia": elif names[0] == "hbogoasia":
name = "HBOGo Asia" name = "HBOGo Asia"
elif names[0] == "maxstream":
name = "MaxStream"
return name.title() return name.title()
netloc = urlparse(url).netloc netloc = urlparse(url).netloc

View file

@ -49,8 +49,8 @@ async def imdb_choose(_, m):
ranval = get_random_string(4) ranval = get_random_string(4)
LIST_CARI[ranval] = kuery LIST_CARI[ranval] = kuery
buttons.row( buttons.row(
InlineButton("🇺🇸 English", f"imdbcari_en#{ranval}#{m.from_user.id}"), InlineButton("🇺🇸 English", f"imdbcari#eng#{ranval}#{m.from_user.id}"),
InlineButton("🇮🇩 Indonesia", f"imdcari_id#{ranval}#{m.from_user.id}"), InlineButton("🇮🇩 Indonesia", f"imdcari#ind#{ranval}#{m.from_user.id}"),
) )
buttons.row(InlineButton("🚩 Set Default Language", f"imdbset#{m.from_user.id}")) buttons.row(InlineButton("🚩 Set Default Language", f"imdbset#{m.from_user.id}"))
buttons.row(InlineButton("❌ Close", f"close#{m.from_user.id}")) buttons.row(InlineButton("❌ Close", f"close#{m.from_user.id}"))
@ -186,82 +186,78 @@ async def imdb_search_en(kueri, message):
await k.edit_caption(f"Failed when requesting movies title.\n\n<b>ERROR:</b> <code>{err}</code>") await k.edit_caption(f"Failed when requesting movies title.\n\n<b>ERROR:</b> <code>{err}</code>")
@app.on_callback_query(filters.regex("^imdcari_id")) @app.on_callback_query(filters.regex("^imdcari"))
async def imdbcari_id(client, query): async def imdbcari(client, query):
BTN = [] BTN = []
i, msg, uid = query.data.split("#") i, lang, msg, uid = query.data.split("#")
if query.from_user.id != int(uid): if lang == "ind":
return await query.answer("⚠️ Akses Ditolak!", True) if query.from_user.id != int(uid):
try: return await query.answer("⚠️ Akses Ditolak!", True)
kueri = LIST_CARI.get(msg) try:
del LIST_CARI[msg] kueri = LIST_CARI.get(msg)
except KeyError: del LIST_CARI[msg]
return await query.message.edit_caption("⚠️ Callback Query Sudah Expired!") except KeyError:
await query.message.edit_caption("<i>🔎 Sedang mencari di Database IMDB..</i>") return await query.message.edit_caption("⚠️ Callback Query Sudah Expired!")
msg = "" await query.message.edit_caption("<i>🔎 Sedang mencari di Database IMDB..</i>")
buttons = InlineKeyboard(row_width=4) msg = ""
try: buttons = InlineKeyboard(row_width=4)
r = await http.get(f"https://imdb.yasirapi.eu.org/search?query={kueri}") try:
res = r.json().get("results") r = await http.get(f"https://imdb.yasirapi.eu.org/search?query={kueri}")
if not res: res = r.json().get("results")
return await query.message.edit_caption(f"⛔️ Tidak ditemukan hasil untuk kueri: <code>{kueri}</code>") if not res:
msg += f"🎬 Ditemukan ({len(res)}) hasil dari: <code>{kueri}</code> ~ {query.from_user.mention}\n\n" return await query.message.edit_caption(f"⛔️ Tidak ditemukan hasil untuk kueri: <code>{kueri}</code>")
for num, movie in enumerate(res, start=1): msg += f"🎬 Ditemukan ({len(res)}) hasil dari: <code>{kueri}</code> ~ {query.from_user.mention}\n\n"
title = movie.get("title") for num, movie in enumerate(res, start=1):
year = f"({movie.get('year', 'N/A')})" title = movie.get("title")
typee = movie.get("type", "N/A").capitalize() year = f"({movie.get('year', 'N/A')})"
movieID = re.findall(r"tt(\d+)", movie.get("id"))[0] typee = movie.get("type", "N/A").capitalize()
msg += f"{num}. {title} {year} - {typee}\n" movieID = re.findall(r"tt(\d+)", movie.get("id"))[0]
BTN.append(InlineKeyboardButton(text=num, callback_data=f"imdbres_id#{uid}#{movieID}")) msg += f"{num}. {title} {year} - {typee}\n"
BTN.extend( BTN.append(InlineKeyboardButton(text=num, callback_data=f"imdbres_id#{uid}#{movieID}"))
( BTN.extend(
InlineKeyboardButton(text="🚩 Language", callback_data=f"imdbset#{uid}"), (
InlineKeyboardButton(text="❌ Close", callback_data=f"close#{uid}"), InlineKeyboardButton(text="🚩 Language", callback_data=f"imdbset#{uid}"),
InlineKeyboardButton(text="❌ Close", callback_data=f"close#{uid}"),
)
) )
) buttons.add(*BTN)
buttons.add(*BTN) await query.message.edit_caption(msg, reply_markup=buttons)
await query.message.edit_caption(msg, reply_markup=buttons) except Exception as err:
except Exception as err: await query.message.edit_caption(f"Ooppss, gagal mendapatkan daftar judul di IMDb.\n\n<b>ERROR:</b> <code>{err}</code>")
await query.message.edit_caption(f"Ooppss, gagal mendapatkan daftar judul di IMDb.\n\n<b>ERROR:</b> <code>{err}</code>") else:
if query.from_user.id != int(uid):
return await query.answer("⚠️ Access Denied!", True)
@app.on_callback_query(filters.regex("^imdbcari_en")) try:
async def imdbcari_en(client, query): kueri = LIST_CARI.get(msg)
BTN = [] del LIST_CARI[msg]
i, msg, uid = query.data.split("#") except KeyError:
if query.from_user.id != int(uid): return await query.message.edit_caption("⚠️ Callback Query Expired!")
return await query.answer("⚠️ Access Denied!", True) await query.message.edit_caption("<i>🔎 Looking in the IMDB Database..</i>")
try: msg = ""
kueri = LIST_CARI.get(msg) buttons = InlineKeyboard(row_width=4)
del LIST_CARI[msg] try:
except KeyError: r = await http.get(f"https://imdb.yasirapi.eu.org/search?query={kueri}")
return await query.message.edit_caption("⚠️ Callback Query Expired!") res = r.json().get("results")
await query.message.edit_caption("<i>🔎 Looking in the IMDB Database..</i>") if not res:
msg = "" return await query.message.edit_caption(f"⛔️ Result not found for keywords: <code>{kueri}</code>")
buttons = InlineKeyboard(row_width=4) msg += f"🎬 Found ({len(res)}) result for keywords: <code>{kueri}</code> ~ {query.from_user.mention}\n\n"
try: for num, movie in enumerate(res, start=1):
r = await http.get(f"https://imdb.yasirapi.eu.org/search?query={kueri}") title = movie.get("title")
res = r.json().get("results") year = f"({movie.get('year', 'N/A')})"
if not res: typee = movie.get("type", "N/A").capitalize()
return await query.message.edit_caption(f"⛔️ Result not found for keywords: <code>{kueri}</code>") movieID = re.findall(r"tt(\d+)", movie.get("id"))[0]
msg += f"🎬 Found ({len(res)}) result for keywords: <code>{kueri}</code> ~ {query.from_user.mention}\n\n" msg += f"{num}. {title} {year} - {typee}\n"
for num, movie in enumerate(res, start=1): BTN.append(InlineKeyboardButton(text=num, callback_data=f"imdbres_en#{uid}#{movieID}"))
title = movie.get("title") BTN.extend(
year = f"({movie.get('year', 'N/A')})" (
typee = movie.get("type", "N/A").capitalize() InlineKeyboardButton(text="🚩 Language", callback_data=f"imdbset#{uid}"),
movieID = re.findall(r"tt(\d+)", movie.get("id"))[0] InlineKeyboardButton(text="❌ Close", callback_data=f"close#{uid}"),
msg += f"{num}. {title} {year} - {typee}\n" )
BTN.append(InlineKeyboardButton(text=num, callback_data=f"imdbres_en#{uid}#{movieID}"))
BTN.extend(
(
InlineKeyboardButton(text="🚩 Language", callback_data=f"imdbset#{uid}"),
InlineKeyboardButton(text="❌ Close", callback_data=f"close#{uid}"),
) )
) buttons.add(*BTN)
buttons.add(*BTN) await query.message.edit_caption(msg, reply_markup=buttons)
await query.message.edit_caption(msg, reply_markup=buttons) except Exception as err:
except Exception as err: await query.message.edit_caption(f"Failed when requesting movies title @ IMDb\n\n<b>ERROR:</b> <code>{err}</code>")
await query.message.edit_caption(f"Failed when requesting movies title @ IMDb\n\n<b>ERROR:</b> <code>{err}</code>")
@app.on_callback_query(filters.regex("^imdbres_id")) @app.on_callback_query(filters.regex("^imdbres_id"))
@ -279,7 +275,7 @@ async def imdb_id_callback(_, query):
sop = BeautifulSoup(resp, "lxml") sop = BeautifulSoup(resp, "lxml")
r_json = json.loads(sop.find("script", attrs={"type": "application/ld+json"}).contents[0]) r_json = json.loads(sop.find("script", attrs={"type": "application/ld+json"}).contents[0])
ott = await search_jw(r_json.get("name"), "ID") ott = await search_jw(r_json.get("name"), "ID")
typee = f"<code>{r_json.get('@type', '')}</code>" typee = r_json.get('@type', '')
res_str = "" res_str = ""
if judul := r_json.get("name"): if judul := r_json.get("name"):
try: try:
@ -408,7 +404,7 @@ async def imdb_en_callback(bot, query):
sop = BeautifulSoup(resp, "lxml") sop = BeautifulSoup(resp, "lxml")
r_json = json.loads(sop.find("script", attrs={"type": "application/ld+json"}).contents[0]) r_json = json.loads(sop.find("script", attrs={"type": "application/ld+json"}).contents[0])
ott = await search_jw(r_json.get("name"), "US") ott = await search_jw(r_json.get("name"), "US")
typee = f"<code>{r_json.get('@type', '')}</code>" typee = r_json.get('@type', '')
res_str = "" res_str = ""
if judul := r_json.get("name"): if judul := r_json.get("name"):
try: try:

View file

@ -439,7 +439,7 @@ async def imdb_inl(_, query):
r_json = json.loads(sop.find("script", attrs={"type": "application/ld+json"}).contents[0]) r_json = json.loads(sop.find("script", attrs={"type": "application/ld+json"}).contents[0])
ott = await search_jw(r_json["name"], "en_ID") ott = await search_jw(r_json["name"], "en_ID")
res_str = "" res_str = ""
typee = f"<code>{r_json['@type']}</code>" if r_json.get("@type") else "" typee = r_json.get('@type', '')
if r_json.get("name"): if r_json.get("name"):
try: try:
tahun = sop.select('ul[data-testid="hero-title-block__metadata"]')[0].find("span", class_="sc-8c396aa2-2 jwaBvf").text tahun = sop.select('ul[data-testid="hero-title-block__metadata"]')[0].find("span", class_="sc-8c396aa2-2 jwaBvf").text