From df4dbb76ba9d87a9dd342ab66f443b15b6adaa0b Mon Sep 17 00:00:00 2001 From: yasir Date: Wed, 18 Jan 2023 14:42:52 +0700 Subject: [PATCH] Merge --- misskaty/helper/tools.py | 2 + misskaty/plugins/imdb_search.py | 150 +++++++++++++++--------------- misskaty/plugins/inline_search.py | 2 +- 3 files changed, 76 insertions(+), 78 deletions(-) diff --git a/misskaty/helper/tools.py b/misskaty/helper/tools.py index c9bc1ba2..d532e444 100644 --- a/misskaty/helper/tools.py +++ b/misskaty/helper/tools.py @@ -96,6 +96,8 @@ def get_provider(url): name = "Google Play Movies" elif names[0] == "hbogoasia": name = "HBOGo Asia" + elif names[0] == "maxstream": + name = "MaxStream" return name.title() netloc = urlparse(url).netloc diff --git a/misskaty/plugins/imdb_search.py b/misskaty/plugins/imdb_search.py index 045af75d..e94413e5 100644 --- a/misskaty/plugins/imdb_search.py +++ b/misskaty/plugins/imdb_search.py @@ -49,8 +49,8 @@ async def imdb_choose(_, m): ranval = get_random_string(4) LIST_CARI[ranval] = kuery buttons.row( - InlineButton("🇺🇸 English", f"imdbcari_en#{ranval}#{m.from_user.id}"), - InlineButton("🇮🇩 Indonesia", f"imdcari_id#{ranval}#{m.from_user.id}"), + InlineButton("🇺🇸 English", f"imdbcari#eng#{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("❌ 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\nERROR: {err}") -@app.on_callback_query(filters.regex("^imdcari_id")) -async def imdbcari_id(client, query): +@app.on_callback_query(filters.regex("^imdcari")) +async def imdbcari(client, query): BTN = [] - i, msg, uid = query.data.split("#") - if query.from_user.id != int(uid): - return await query.answer("⚠️ Akses Ditolak!", True) - try: - kueri = LIST_CARI.get(msg) - del LIST_CARI[msg] - except KeyError: - return await query.message.edit_caption("⚠️ Callback Query Sudah Expired!") - await query.message.edit_caption("🔎 Sedang mencari di Database IMDB..") - msg = "" - buttons = InlineKeyboard(row_width=4) - try: - r = await http.get(f"https://imdb.yasirapi.eu.org/search?query={kueri}") - res = r.json().get("results") - if not res: - return await query.message.edit_caption(f"⛔️ Tidak ditemukan hasil untuk kueri: {kueri}") - msg += f"🎬 Ditemukan ({len(res)}) hasil dari: {kueri} ~ {query.from_user.mention}\n\n" - for num, movie in enumerate(res, start=1): - title = movie.get("title") - year = f"({movie.get('year', 'N/A')})" - typee = movie.get("type", "N/A").capitalize() - movieID = re.findall(r"tt(\d+)", movie.get("id"))[0] - msg += f"{num}. {title} {year} - {typee}\n" - 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}"), + i, lang, msg, uid = query.data.split("#") + if lang == "ind": + if query.from_user.id != int(uid): + return await query.answer("⚠️ Akses Ditolak!", True) + try: + kueri = LIST_CARI.get(msg) + del LIST_CARI[msg] + except KeyError: + return await query.message.edit_caption("⚠️ Callback Query Sudah Expired!") + await query.message.edit_caption("🔎 Sedang mencari di Database IMDB..") + msg = "" + buttons = InlineKeyboard(row_width=4) + try: + r = await http.get(f"https://imdb.yasirapi.eu.org/search?query={kueri}") + res = r.json().get("results") + if not res: + return await query.message.edit_caption(f"⛔️ Tidak ditemukan hasil untuk kueri: {kueri}") + msg += f"🎬 Ditemukan ({len(res)}) hasil dari: {kueri} ~ {query.from_user.mention}\n\n" + for num, movie in enumerate(res, start=1): + title = movie.get("title") + year = f"({movie.get('year', 'N/A')})" + typee = movie.get("type", "N/A").capitalize() + movieID = re.findall(r"tt(\d+)", movie.get("id"))[0] + msg += f"{num}. {title} {year} - {typee}\n" + 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}"), + ) ) - ) - buttons.add(*BTN) - await query.message.edit_caption(msg, reply_markup=buttons) - except Exception as err: - await query.message.edit_caption(f"Ooppss, gagal mendapatkan daftar judul di IMDb.\n\nERROR: {err}") - - -@app.on_callback_query(filters.regex("^imdbcari_en")) -async def imdbcari_en(client, query): - BTN = [] - i, msg, uid = query.data.split("#") - if query.from_user.id != int(uid): - return await query.answer("⚠️ Access Denied!", True) - try: - kueri = LIST_CARI.get(msg) - del LIST_CARI[msg] - except KeyError: - return await query.message.edit_caption("⚠️ Callback Query Expired!") - await query.message.edit_caption("🔎 Looking in the IMDB Database..") - msg = "" - buttons = InlineKeyboard(row_width=4) - try: - r = await http.get(f"https://imdb.yasirapi.eu.org/search?query={kueri}") - res = r.json().get("results") - if not res: - return await query.message.edit_caption(f"⛔️ Result not found for keywords: {kueri}") - msg += f"🎬 Found ({len(res)}) result for keywords: {kueri} ~ {query.from_user.mention}\n\n" - for num, movie in enumerate(res, start=1): - title = movie.get("title") - year = f"({movie.get('year', 'N/A')})" - typee = movie.get("type", "N/A").capitalize() - movieID = re.findall(r"tt(\d+)", movie.get("id"))[0] - 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) + await query.message.edit_caption(msg, reply_markup=buttons) + except Exception as err: + await query.message.edit_caption(f"Ooppss, gagal mendapatkan daftar judul di IMDb.\n\nERROR: {err}") + else: + if query.from_user.id != int(uid): + return await query.answer("⚠️ Access Denied!", True) + try: + kueri = LIST_CARI.get(msg) + del LIST_CARI[msg] + except KeyError: + return await query.message.edit_caption("⚠️ Callback Query Expired!") + await query.message.edit_caption("🔎 Looking in the IMDB Database..") + msg = "" + buttons = InlineKeyboard(row_width=4) + try: + r = await http.get(f"https://imdb.yasirapi.eu.org/search?query={kueri}") + res = r.json().get("results") + if not res: + return await query.message.edit_caption(f"⛔️ Result not found for keywords: {kueri}") + msg += f"🎬 Found ({len(res)}) result for keywords: {kueri} ~ {query.from_user.mention}\n\n" + for num, movie in enumerate(res, start=1): + title = movie.get("title") + year = f"({movie.get('year', 'N/A')})" + typee = movie.get("type", "N/A").capitalize() + movieID = re.findall(r"tt(\d+)", movie.get("id"))[0] + 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) - await query.message.edit_caption(msg, reply_markup=buttons) - except Exception as err: - await query.message.edit_caption(f"Failed when requesting movies title @ IMDb\n\nERROR: {err}") + buttons.add(*BTN) + await query.message.edit_caption(msg, reply_markup=buttons) + except Exception as err: + await query.message.edit_caption(f"Failed when requesting movies title @ IMDb\n\nERROR: {err}") @app.on_callback_query(filters.regex("^imdbres_id")) @@ -279,7 +275,7 @@ async def imdb_id_callback(_, query): sop = BeautifulSoup(resp, "lxml") r_json = json.loads(sop.find("script", attrs={"type": "application/ld+json"}).contents[0]) ott = await search_jw(r_json.get("name"), "ID") - typee = f"{r_json.get('@type', '')}" + typee = r_json.get('@type', '') res_str = "" if judul := r_json.get("name"): try: @@ -408,7 +404,7 @@ async def imdb_en_callback(bot, query): sop = BeautifulSoup(resp, "lxml") r_json = json.loads(sop.find("script", attrs={"type": "application/ld+json"}).contents[0]) ott = await search_jw(r_json.get("name"), "US") - typee = f"{r_json.get('@type', '')}" + typee = r_json.get('@type', '') res_str = "" if judul := r_json.get("name"): try: diff --git a/misskaty/plugins/inline_search.py b/misskaty/plugins/inline_search.py index bc4d1d21..e57d4836 100644 --- a/misskaty/plugins/inline_search.py +++ b/misskaty/plugins/inline_search.py @@ -439,7 +439,7 @@ async def imdb_inl(_, query): r_json = json.loads(sop.find("script", attrs={"type": "application/ld+json"}).contents[0]) ott = await search_jw(r_json["name"], "en_ID") res_str = "" - typee = f"{r_json['@type']}" if r_json.get("@type") else "" + typee = r_json.get('@type', '') if r_json.get("name"): try: tahun = sop.select('ul[data-testid="hero-title-block__metadata"]')[0].find("span", class_="sc-8c396aa2-2 jwaBvf").text