From ee27bcd992a3b760870f0c2711e9c288e80b562b Mon Sep 17 00:00:00 2001
From: yasirarism <55983182+yasirarism@users.noreply.github.com>
Date: Mon, 26 Jun 2023 14:46:03 +0000
Subject: [PATCH] Fix
---
misskaty/helper/kuso_utils.py | 2 +-
misskaty/plugins/ban_user_or_chat.py | 24 ++++---
misskaty/plugins/imdb_search.py | 104 ++++++++-------------------
misskaty/plugins/inline_search.py | 52 ++++----------
misskaty/plugins/lang_setting.py | 4 +-
misskaty/plugins/web_scraper.py | 12 ++--
misskaty/plugins/ytdl_plugins.py | 5 +-
7 files changed, 69 insertions(+), 134 deletions(-)
diff --git a/misskaty/helper/kuso_utils.py b/misskaty/helper/kuso_utils.py
index 6653a326..5c007712 100644
--- a/misskaty/helper/kuso_utils.py
+++ b/misskaty/helper/kuso_utils.py
@@ -187,7 +187,7 @@ async def byPassPh(url: str, name: str):
class Kusonime:
def __init__(self):
- raise NotImplementedError()
+ pass
@staticmethod
async def byPass(url):
diff --git a/misskaty/plugins/ban_user_or_chat.py b/misskaty/plugins/ban_user_or_chat.py
index 49990714..8a1f7c99 100644
--- a/misskaty/plugins/ban_user_or_chat.py
+++ b/misskaty/plugins/ban_user_or_chat.py
@@ -12,14 +12,17 @@ from misskaty.vars import COMMAND_HANDLER, LOG_CHANNEL, SUDO, SUPPORT_CHAT
async def ban_reply(self: Client, ctx: Message):
if not ctx.from_user:
return
- ban = await db.get_ban_status(ctx.from_user.id)
- if (ban.get("is_banned") and ctx.chat.type.value == "private") or (
- ban.get("is_banned") and ctx.chat.type.value == "supergroup" and ctx.command
- ):
- await ctx.reply_msg(
- f'I am sorry, You are banned to use Me. \nBan Reason: {ban["ban_reason"]}'
- )
- await ctx.stop_propagation()
+ try:
+ ban = await db.get_ban_status(ctx.from_user.id)
+ if (ban.get("is_banned") and ctx.chat.type.value == "private") or (
+ ban.get("is_banned") and ctx.chat.type.value == "supergroup" and ctx.command
+ ):
+ await ctx.reply_msg(
+ f'I am sorry, You are banned to use Me. \nBan Reason: {ban["ban_reason"]}'
+ )
+ await ctx.stop_propagation()
+ except:
+ await ctx.continue_propagation()
@app.on_message(filters.group & filters.incoming, group=-2)
@@ -55,7 +58,10 @@ async def grp_bd(self: Client, ctx: Message, strings):
await k.pin()
except:
pass
- await self.leave_chat(ctx.chat.id)
+ try:
+ await self.leave_chat(ctx.chat.id)
+ except:
+ pass
await ctx.stop_propagation()
diff --git a/misskaty/plugins/imdb_search.py b/misskaty/plugins/imdb_search.py
index 66ba2dee..4ba8cb41 100644
--- a/misskaty/plugins/imdb_search.py
+++ b/misskaty/plugins/imdb_search.py
@@ -49,10 +49,10 @@ async def imdb_choose(self: Client, ctx: Message):
if len(ctx.command) == 1:
return await ctx.reply_msg(
f"âšī¸ Please add query after CMD!\nEx: /{ctx.command[0]} Jurassic World",
- del_in=5,
+ del_in=7,
)
if ctx.sender_chat:
- return await ctx.reply_msg("This feature not supported for channel..", del_in=5)
+ return await ctx.reply_msg("Cannot identify user, please use in private chat.", del_in=7)
kuery = ctx.text.split(" ", 1)[1]
is_imdb, lang = await is_imdbset(ctx.from_user.id)
if is_imdb:
@@ -393,53 +393,29 @@ async def imdb_id_callback(self: Client, query: CallbackQuery):
res_str += f"Rilis: {rilis}\n"
if genre := 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]
- res_str += f"Genre: {genre}\n"
+ res_str += f"Genre: {genre[:-2]}\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"
+ res_str += f"Negara: {country[:-2]}\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"
+ res_str += f"Bahasa: {language[:-2]}\n"
res_str += "\nđ Info Cast:\n"
if directors := r_json.get("director"):
- director = ""
- for i in directors:
- name = i["name"]
- url = i["url"]
- director += f"{name}, "
- director = director[:-2]
- res_str += f"Sutradara: {director}\n"
+ director = director = "".join(f"{i['name']}, " for i in r_json["director"])
+ res_str += f"Sutradara: {director[:-2]}\n"
if creators := r_json.get("creator"):
- creator = ""
- for i in creators:
- if i["@type"] == "Person":
- name = i["name"]
- url = i["url"]
- creator += f"{name}, "
- creator = creator[:-2]
- res_str += f"Penulis: {creator}\n"
+ creator = "".join(f"{i['name']}, " for i in r_json["creator"] if i["@type"] == "Person")
+ res_str += f"Penulis: {creator[:-2]}\n"
if actor := r_json.get("actor"):
- actors = ""
- for i in actor:
- name = i["name"]
- url = i["url"]
- actors += f"{name}, "
- actors = actors[:-2]
- res_str += f"Pemeran: {actors}\n\n"
+ actors = "".join(f"{i['name']}, " for i in r_json["actor"])
+ res_str += f"Pemeran: {actors[:-2]}\n\n"
if deskripsi := r_json.get("description"):
summary = GoogleTranslator("auto", "id").translate(deskripsi)
res_str += f"đ Plot: {summary}\n\n"
if keywd := r_json.get("keywords"):
- keywords = keywd.split(",")
- key_ = ""
- for i in keywords:
- i = i.replace(" ", "_").replace("-", "_")
- key_ += f"#{i}, "
- key_ = key_[:-2]
- res_str += f"đĨ Kata Kunci: {key_} \n"
+ key_ = "".join(f"#{i.replace(' ', '_').replace('-', '_')}, " for i in r_json["keywords"].split(","))
+ res_str += f"đĨ Kata Kunci: {key_[:-2]} \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"
@@ -517,52 +493,28 @@ async def imdb_en_callback(self: Client, query: CallbackQuery):
res_str += f"Rilis: {rilis}\n"
if genre := 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]
- res_str += f"Genre: {genre}\n"
+ res_str += f"Genre: {genre[:-2]}\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"Country: {country}\n"
+ res_str += f"Country: {country[:-2]}\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"Language: {language}\n"
+ res_str += f"Language: {language[:-2]}\n"
res_str += "\nđ Cast Info:\n"
- if directors := r_json.get("director"):
- director = ""
- for i in directors:
- name = i["name"]
- url = i["url"]
- director += f"{name}, "
- director = director[:-2]
- res_str += f"Director: {director}\n"
- if creators := r_json.get("creator"):
- creator = ""
- for i in creators:
- if i["@type"] == "Person":
- name = i["name"]
- url = i["url"]
- creator += f"{name}, "
- creator = creator[:-2]
- res_str += f"Writer: {creator}\n"
- if actor := r_json.get("actor"):
- actors = ""
- for i in actor:
- name = i["name"]
- url = i["url"]
- actors += f"{name}, "
- actors = actors[:-2]
- res_str += f"Stars: {actors}\n\n"
+ if r_json.get("director"):
+ director = "".join(f"{i['name']}, " for i in r_json["director"])
+ res_str += f"Director: {director[:-2]}\n"
+ if r_json.get("creator"):
+ creator = "".join(f"{i['name']}, " for i in r_json["creator"] if i["@type"] == "Person")
+ res_str += f"Writer: {creator[-2]}\n"
+ if r_json.get("actor"):
+ actors = actors = "".join(f"{i['name']}, " for i in r_json["actor"])
+ res_str += f"Stars: {actors[:-2]}\n\n"
if description := r_json.get("description"):
res_str += f"đ Summary: {description}\n\n"
- if keywd := r_json.get("keywords"):
- keywords = keywd.split(",")
- key_ = ""
- for i in keywords:
- i = i.replace(" ", "_").replace("-", "_")
- key_ += f"#{i}, "
- key_ = key_[:-2]
- res_str += f"đĨ Keywords: {key_} \n"
+ if r_json.get("keywords"):
+ key_ = "".join(f"#{i.replace(' ', '_').replace('-', '_')}, " for i in r_json["keywords"].split(","))
+ res_str += f"đĨ Keywords: {key_[:-2]} \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"đ Awards: {awards}\n"
diff --git a/misskaty/plugins/inline_search.py b/misskaty/plugins/inline_search.py
index 05b242f6..aeed66f0 100644
--- a/misskaty/plugins/inline_search.py
+++ b/misskaty/plugins/inline_search.py
@@ -617,11 +617,7 @@ async def imdb_inl(_, query):
ott = await search_jw(r_json["name"], "en_ID")
res_str = ""
typee = r_json.get("@type", "")
- tahun = (
- re.findall(r"\d{4}\W\d{4}|\d{4}-?", sop.title.text)[0]
- if re.findall(r"\d{4}\W\d{4}|\d{4}-?", sop.title.text)
- else "N/A"
- )
+ tahun = re.findall(r"\d{4}\W\d{4}|\d{4}-?", sop.title.text)[0] if re.findall(r"\d{4}\W\d{4}|\d{4}-?", sop.title.text) else "N/A"
res_str += f"đš Judul: {r_json['name']} [{tahun}] ({typee})\n"
if r_json.get("alternateName"):
res_str += (
@@ -659,8 +655,7 @@ async def imdb_inl(_, query):
else f"#{i.replace('-', '_').replace(' ', '_')}, "
for i in r_json["genre"]
)
- genre = genre[:-2]
- res_str += f"Genre: {genre}\n"
+ res_str += f"Genre: {genre[:-2]}\n"
if negara := sop.select('li[data-testid="title-details-origin"]'):
country = "".join(
f"{demoji(country.text)} #{country.text.replace(' ', '_').replace('-', '_')}, "
@@ -668,8 +663,7 @@ async def imdb_inl(_, query):
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"
+ res_str += f"Negara: {country[:-2]}\n"
if bahasa := sop.select('li[data-testid="title-details-languages"]'):
language = "".join(
f"#{lang.text.replace(' ', '_').replace('-', '_')}, "
@@ -677,47 +671,25 @@ async def imdb_inl(_, query):
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"
+ res_str += f"Bahasa: {language[:-2]}\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]
- res_str += f"Sutradara: {director}\n"
+ director = "".join(f"{i['name']}, " for i in r_json["director"])
+ res_str += f"Sutradara: {director[:-2]}\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]
- res_str += f"Penulis: {creator}\n"
+ creator = "".join(f"{i['name']}, " for i in r_json["creator"] if i["@type"] == "Person")
+ res_str += f"Penulis: {creator[:-2]}\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]
- res_str += f"Pemeran: {actors}\n\n"
+ actors = "".join(f"{i['name']}, " for i in r_json["actor"])
+ res_str += f"Pemeran: {actors[:-2]}\n\n"
if r_json.get("description"):
summary = GoogleTranslator("auto", "id").translate(
r_json.get("description")
)
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]
- res_str += f"đĨ Kata Kunci: {key_} \n"
+ key_ = "".join(f"#{i.replace(' ', '_').replace('-', '_')}, " for i in r_json["keywords"].split(","))
+ res_str += f"đĨ Kata Kunci: {key_[:-2]} \n"
if award := sop.select('li[data-testid="award_information"]'):
awards = (
award[0]
diff --git a/misskaty/plugins/lang_setting.py b/misskaty/plugins/lang_setting.py
index e6f2d9a1..29ab79c4 100644
--- a/misskaty/plugins/lang_setting.py
+++ b/misskaty/plugins/lang_setting.py
@@ -69,6 +69,8 @@ async def chlang(c: Client, m: Union[CallbackQuery, Message], strings):
else:
msg = m
sender = msg.reply_text
+ if not msg.from_user:
+ return
res = strings("language_changer_private") if msg.chat.type == ChatType.PRIVATE else strings("language_changer_chat")
msg = await sender(res, reply_markup=keyboard)
@@ -105,4 +107,4 @@ async def set_chat_lang(c: Client, m: CallbackQuery, strings):
)
else:
keyboard = None
- await m.message.edit_text(strings("language_changed_successfully"), reply_markup=keyboard)
+ await m.message.edit_msg(strings("language_changed_successfully"), reply_markup=keyboard)
diff --git a/misskaty/plugins/web_scraper.py b/misskaty/plugins/web_scraper.py
index cea7f180..671f3769 100644
--- a/misskaty/plugins/web_scraper.py
+++ b/misskaty/plugins/web_scraper.py
@@ -220,11 +220,11 @@ async def getDataKuso(msg, kueri, CurrentPage, user, strings):
kusoResult += f"{index*6+c}. {i['title']}\n{i['link']}\n\n"
if c < 6:
extractbtn1.append(
- InlineButton(c, f"kusoextract#{CurrentPage}#{c}#{user}#{msg.id}")
+ InlineButton(index*6+c, f"kusoextract#{CurrentPage}#{c}#{user}#{msg.id}")
)
else:
extractbtn2.append(
- InlineButton(c, f"kusoextract#{CurrentPage}#{c}#{user}#{msg.id}")
+ InlineButton(index*6+c, f"kusoextract#{CurrentPage}#{c}#{user}#{msg.id}")
)
kusoResult = "".join(i for i in kusoResult if i not in "[]")
return kusoResult, PageLen, extractbtn1, extractbtn2
@@ -316,7 +316,7 @@ async def getDataSavefilm21(msg, kueri, CurrentPage, user, strings):
for c, i in enumerate(SCRAP_DICT[msg.id][0][index], start=1):
sfResult += f"{index*6+c}. {i['judul']}\nGenre: {i['genre']}\n\n"
extractbtn.append(
- InlineButton(c, f"sf21extract#{CurrentPage}#{c}#{user}#{msg.id}")
+ InlineButton(index*6+c, f"sf21extract#{CurrentPage}#{c}#{user}#{msg.id}")
)
sfResult = "".join(i for i in sfResult if i not in "[]")
return sfResult, PageLen, extractbtn
@@ -366,7 +366,7 @@ async def getDataLendrive(msg, kueri, CurrentPage, user, strings):
for c, i in enumerate(SCRAP_DICT[msg.id][0][index], start=1):
lenddataResult += f"{index*6+c}. {i['judul']}\n{strings('quality')}: {i['quality']}\nStatus: {i['status']}\n\n"
extractbtn.append(
- InlineButton(c, f"lendriveextract#{CurrentPage}#{c}#{user}#{msg.id}")
+ InlineButton(index*6+c, f"lendriveextract#{CurrentPage}#{c}#{user}#{msg.id}")
)
lenddataResult = "".join(i for i in lenddataResult if i not in "[]")
return lenddataResult, PageLen, extractbtn
@@ -415,7 +415,7 @@ async def getDataMelong(msg, kueri, CurrentPage, user, strings):
for c, i in enumerate(SCRAP_DICT[msg.id][0][index], start=1):
melongResult += f"{index*6+c}. {i['judul']}\n{strings('quality')}: {i['quality']}\n\n"
extractbtn.append(
- InlineButton(c, f"melongextract#{CurrentPage}#{c}#{user}#{msg.id}")
+ InlineButton(index*6+c, f"melongextract#{CurrentPage}#{c}#{user}#{msg.id}")
)
melongResult = "".join(i for i in melongResult if i not in "[]")
return melongResult, PageLen, extractbtn
@@ -466,7 +466,7 @@ async def getDataGomov(msg, kueri, CurrentPage, user, strings):
gomovResult += f"{index*6+c}. {i['judul']}\nGenre: {i['genre']}\n\n"
if not re.search(r"Series", i["genre"]):
extractbtn.append(
- InlineButton(c, f"gomovextract#{CurrentPage}#{c}#{user}#{msg.id}")
+ InlineButton(index*6+c, f"gomovextract#{CurrentPage}#{c}#{user}#{msg.id}")
)
gomovResult += strings("unsupport_dl_btn")
gomovResult = "".join(i for i in gomovResult if i not in "[]")
diff --git a/misskaty/plugins/ytdl_plugins.py b/misskaty/plugins/ytdl_plugins.py
index 7cb8678b..1a1278dd 100644
--- a/misskaty/plugins/ytdl_plugins.py
+++ b/misskaty/plugins/ytdl_plugins.py
@@ -108,7 +108,10 @@ async def ytdownv2(self: Client, ctx: Message, strings):
)
await msg.wait_for_click(from_user_id=ctx.from_user.id, timeout=30)
except ListenerTimeout:
- await msg.edit_caption(strings("exp_task", context="general"))
+ try:
+ await msg.edit_caption(strings("exp_task", context="general"))
+ except MessageIdInvalid:
+ pass
except Exception as err:
await ctx.reply_msg(f"Opps, ERROR: {str(err)}")