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):