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)}")