diff --git a/misskaty/plugins/imdb_search.py b/misskaty/plugins/imdb_search.py
index d62ef97b..3cc490e1 100644
--- a/misskaty/plugins/imdb_search.py
+++ b/misskaty/plugins/imdb_search.py
@@ -40,6 +40,16 @@ from utils import demoji
LOGGER = logging.getLogger("MissKaty")
LIST_CARI = Cache(filename="imdb_cache.db", path="cache", in_memory=False)
+async def libretranslate(text, source="auto", target="id"):
+ payload = {
+ "q": text,
+ "source": source,
+ "target": target,
+ "format": "text",
+ "alternatives": 3
+ }
+ response = await fetch.post(url, json=payload)
+ return response.json()["translatedText"]
# IMDB Choose Language
@app.on_cmd("imdb")
@@ -420,7 +430,7 @@ async def imdb_id_callback(self: Client, query: CallbackQuery):
.find(class_="ipc-metadata-list-item__content-container")
.text
)
- res_str += f"Durasi: {GoogleTranslator('auto', 'id').translate(durasi)}\n"
+ res_str += f"Durasi: {await libretranslate(durasi, "auto", "id")}\n"
if kategori := r_json.get("contentRating"):
res_str += f"Kategori: {kategori} \n"
if rating := r_json.get("aggregateRating"):
@@ -480,7 +490,7 @@ async def imdb_id_callback(self: Client, query: CallbackQuery):
)
res_str += f"Pemeran: {actor[:-2]}\n\n"
if deskripsi := r_json.get("description"):
- summary = GoogleTranslator("auto", "id").translate(deskripsi)
+ summary = await libretranslate(deskripsi, "auto", "id")
res_str += f"📜 Plot:\n
{summary}\n\n"
if keywd := r_json.get("keywords"):
key_ = "".join(
@@ -496,7 +506,7 @@ async def imdb_id_callback(self: Client, query: CallbackQuery):
.find(class_="ipc-metadata-list-item__list-content-item")
.text
)
- res_str += f"🏆 Penghargaan:\n{GoogleTranslator('auto', 'id').translate(awards)}\n"
+ res_str += f"🏆 Penghargaan:\n{await libretranslate(awards, "auto", "id")}\n"
else:
res_str += "\n"
if ott != "":