From d234bede5cfa92434f6fd1dfc39c862c8814bfe2 Mon Sep 17 00:00:00 2001 From: yasir Date: Sun, 15 Jan 2023 20:53:01 +0700 Subject: [PATCH] Try using own api --- misskaty/plugins/imdb_search.py | 107 +++++++++----------------------- 1 file changed, 30 insertions(+), 77 deletions(-) diff --git a/misskaty/plugins/imdb_search.py b/misskaty/plugins/imdb_search.py index a6f7af70..4f2bd8dd 100644 --- a/misskaty/plugins/imdb_search.py +++ b/misskaty/plugins/imdb_search.py @@ -263,7 +263,7 @@ async def imdbcari_en(client, query): @app.on_callback_query(filters.regex("^imdbres_id")) -async def imdb_id_callback(bot, query): +async def imdb_id_callback(_, query): i, userid, movie = query.data.split("#") if query.from_user.id != int(userid): return await query.answer("âš ī¸ Akses Ditolak!", True) @@ -271,107 +271,60 @@ async def imdb_id_callback(bot, query): await query.message.edit_caption("âŗ Permintaan kamu sedang diproses.. ") url = f"https://www.imdb.com/title/tt{movie}/" resp = await http.get( - url, + f"https://yasirapi.eu.org/imdb-page?url={url}", headers={"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/600.1.17 (KHTML, like Gecko) Version/7.1 Safari/537.85.10"}, ) - sop = BeautifulSoup(resp, "lxml") - r_json = json.loads(sop.find("script", attrs={"type": "application/ld+json"}).contents[0]) + r_json = resp.json() res_str = "" - type = f"{r_json['@type']}" if r_json.get("@type") else "" - 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 - except: - tahun = "N/A" - res_str += f"📹 Judul: {r_json['name']} [{tahun}] ({type})\n" - if r_json.get("alternateName"): - res_str += f"đŸ“ĸ AKA: {r_json.get('alternateName')}\n\n" + if judul := r_json.get("title"): + res_str += f"📹 Judul: {judul}\n" + if aka := r_json.get("aka"): + res_str += f"đŸ“ĸ AKA: {aka}\n\n" else: res_str += "\n" - if duration := sop.select('li[data-testid="title-techspec_runtime"]'): - durasi = duration[0].find(class_="ipc-metadata-list-item__content-container").text + if durasi := r_json.get("duration"): res_str += f"Durasi: {GoogleTranslator('auto', 'id').translate(durasi)}\n" - if r_json.get("contentRating"): - res_str += f"Kategori: {r_json['contentRating']} \n" - if r_json.get("aggregateRating"): - res_str += f"Peringkat: {r_json['aggregateRating']['ratingValue']}â­ī¸ dari {r_json['aggregateRating']['ratingCount']} pengguna \n" - if release := sop.select('li[data-testid="title-details-releasedate"]'): - rilis = release[0].find(class_="ipc-metadata-list-item__list-content-item ipc-metadata-list-item__list-content-item--link").text - rilis_url = release[0].find(class_="ipc-metadata-list-item__list-content-item ipc-metadata-list-item__list-content-item--link")["href"] - res_str += f"Rilis: {rilis}\n" - if r_json.get("genre"): - genre = "".join(f"{GENRES_EMOJI[i]} #{i.replace('-', '_').replace(' ', '_')}, " if i in GENRES_EMOJI else f"#{i.replace('-', '_').replace(' ', '_')}, " for i in r_json["genre"]) - genre = genre[:-2] + if kategori := r_json.get("category"): + res_str += f"Kategori: {kategori} \n" + if rating := r_json.get("rating"): + res_str += f"Peringkat: {GoogleTranslator('auto', 'id').translate(rating)}\n" + if release := r_json.get("release_date"): + res_str += f"Rilis: {release}\n" + if genre := r_json.get("genre"): res_str += f"Genre : {genre}\n" - if negara := sop.select('li[data-testid="title-details-origin"]'): - country = "".join( - f"{demoji(country.text)} #{country.text.replace(' ', '_').replace('-', '_')}, " - for country in negara[0].findAll(class_="ipc-metadata-list-item__list-content-item ipc-metadata-list-item__list-content-item--link") - ) - country = country[:-2] - res_str += f"Negara: {country}\n" - if bahasa := sop.select('li[data-testid="title-details-languages"]'): - language = "".join( - f"#{lang.text.replace(' ', '_').replace('-', '_')}, " for lang in bahasa[0].findAll(class_="ipc-metadata-list-item__list-content-item ipc-metadata-list-item__list-content-item--link") - ) - language = language[:-2] - res_str += f"Bahasa: {language}\n" + if negara := r_json.get("country"): + res_str += f"Negara: {negara}\n" + if bahasa := r_json.get("language"): + res_str += f"Bahasa: {bahasa}\n" res_str += "\n🙎 Info Cast:\n" - if r_json.get("director"): - director = "" - for i in r_json["director"]: - name = i["name"] - url = i["url"] - director += f"{name}, " - director = director[:-2] + if director := r_json.get("director"): res_str += f"Sutradara: {director}\n" - if r_json.get("creator"): - creator = "" - for i in r_json["creator"]: - if i["@type"] == "Person": - name = i["name"] - url = i["url"] - creator += f"{name}, " - creator = creator[:-2] + if creator := r_json.get("creator"): res_str += f"Penulis: {creator}\n" - if r_json.get("actor"): - actors = "" - for i in r_json["actor"]: - name = i["name"] - url = i["url"] - actors += f"{name}, " - actors = actors[:-2] + if actors := r_json.get("actors"): res_str += f"Pemeran: {actors}\n\n" - if r_json.get("description"): - summary = GoogleTranslator("auto", "id").translate(r_json.get("description")) + if deskripsi := r_json.get("description"): + summary = GoogleTranslator("auto", "id").translate(deskripsi) res_str += f"📜 Plot: {summary}\n\n" - if r_json.get("keywords"): - keywords = r_json["keywords"].split(",") - key_ = "" - for i in keywords: - i = i.replace(" ", "_").replace("-", "_") - key_ += f"#{i}, " - key_ = key_[:-2] + if key_ := r_json.get("keyword"): res_str += f"đŸ”Ĩ Kata Kunci: {key_} \n" - if award := sop.select('li[data-testid="award_information"]'): - awards = award[0].find(class_="ipc-metadata-list-item__list-content-item").text - res_str += f"🏆 Penghargaan: {GoogleTranslator('auto', 'id').translate(awards)}\n\n" + if award := r_json.get("awards"): + res_str += f"🏆 Penghargaan: {GoogleTranslator('auto', 'id').translate(award)}\n\n" else: res_str += "\n" res_str += f"ÂŠī¸ IMDb by @{BOT_USERNAME}" - if r_json.get("trailer"): - trailer_url = r_json["trailer"]["url"] + if trailer := r_json.get("trailer_url"): markup = InlineKeyboardMarkup( [ [ InlineKeyboardButton("đŸŽŦ Open IMDB", url=f"https://www.imdb.com{r_json['url']}"), - InlineKeyboardButton("â–ļī¸ Trailer", url=trailer_url), + InlineKeyboardButton("â–ļī¸ Trailer", url=trailer), ] ] ) else: markup = InlineKeyboardMarkup([[InlineKeyboardButton("đŸŽŦ Open IMDB", url=f"https://www.imdb.com{r_json['url']}")]]) - if thumb := r_json.get("image"): + if thumb := r_json.get("thumb"): try: await query.message.edit_media(InputMediaPhoto(thumb, caption=res_str), reply_markup=markup) except (MediaEmpty, PhotoInvalidDimensions, WebpageMediaEmpty):