diff --git a/misskaty/plugins/admin.py b/misskaty/plugins/admin.py index 8af66787..a675dd43 100644 --- a/misskaty/plugins/admin.py +++ b/misskaty/plugins/admin.py @@ -134,10 +134,13 @@ async def kickFunc(_, message): **Reason:** {reason or '-'}""" if message.command[0][0] == "d": await message.reply_to_message.delete() - await message.chat.ban_member(user_id) - await message.reply_text(msg) - await asyncio.sleep(1) - await message.chat.unban_member(user_id) + try: + await message.chat.ban_member(user_id) + await message.reply_text(msg) + await asyncio.sleep(1) + await message.chat.unban_member(user_id) + except ChatAdminRequired: + await message.reply("Please give me ban permission to ban user in this group.") # Ban/DBan/TBan User diff --git a/misskaty/plugins/bypass.py b/misskaty/plugins/bypass.py index 7195bec6..0ae32a9e 100644 --- a/misskaty/plugins/bypass.py +++ b/misskaty/plugins/bypass.py @@ -110,6 +110,8 @@ async def bypass(_, message): reply_markup=markup, disable_web_page_preview=True, ) - else: + elif "wetransfer.com" or "we.tl" in message.command[1]: data = wetransfer_bypass(url) await msg.edit(f"{data}\n\n{mention}") + else: + await msg.edit("Unsupported URL. Read help menu..") diff --git a/misskaty/plugins/chatbot.py b/misskaty/plugins/chatbot.py index 46f3d660..8471eee5 100644 --- a/misskaty/plugins/chatbot.py +++ b/misskaty/plugins/chatbot.py @@ -1,6 +1,7 @@ from misskaty import app from misskaty.vars import COMMAND_HANDLER, OPENAI_API from pyrogram import filters +from pyrogram.errors import MessageNotModified from misskaty.helper.http import http @@ -24,5 +25,7 @@ async def chatbot(c, m): try: response = (await http.post("https://api.openai.com/v1/completions", headers=headers, json=json_data)).json() await msg.edit(response["choices"][0]["text"]) - except: + except MessageNotModified: + pass + except Exception: await msg.edit("Yahh, sorry i can't get your answer.") diff --git a/misskaty/plugins/genss.py b/misskaty/plugins/genss.py index 4f63bd36..7272a3ef 100644 --- a/misskaty/plugins/genss.py +++ b/misskaty/plugins/genss.py @@ -14,6 +14,7 @@ from pyrogram.errors import FloodWait from misskaty import app, BOT_USERNAME from misskaty.helper.ffmpeg_helper import take_ss, genss_link from misskaty.vars import COMMAND_HANDLER +from misskaty.core.decorator.errors import capture_err from misskaty.helper.pyro_progress import progress_for_pyrogram LOGGER = getLogger(__name__) @@ -27,6 +28,7 @@ __HELP__ = """" @app.on_message(filters.command(["genss"], COMMAND_HANDLER)) +@capture_err async def genss(client, message): if message.reply_to_message is not None: process = await message.reply_text("`Processing, please wait..`") @@ -90,6 +92,7 @@ async def genss(client, message): @app.on_message(filters.command(["genss_link"], COMMAND_HANDLER)) +@capture_err async def genss_link(client, message): try: link = message.text.split(" ")[1] diff --git a/misskaty/plugins/grup_tools.py b/misskaty/plugins/grup_tools.py index 2e0b1575..01df6462 100644 --- a/misskaty/plugins/grup_tools.py +++ b/misskaty/plugins/grup_tools.py @@ -73,6 +73,7 @@ def welcomepic(pic, user, chat, count, id): @app.on_chat_member_updated(filters.group & filters.chat(-1001128045651)) +@capture_err async def member_has_joined(c: app, member: ChatMemberUpdated): if not member.new_chat_member or member.new_chat_member.status in {"banned", "left", "restricted"} or member.old_chat_member: return @@ -135,6 +136,7 @@ async def member_has_joined(c: app, member: ChatMemberUpdated): @app.on_message(filters.new_chat_members & filters.group) +@capture_err async def save_group(bot, message): r_j_check = [u.id for u in message.new_chat_members] if temp.ME in r_j_check: @@ -192,7 +194,7 @@ async def save_group(bot, message): photo=welcomeimg, caption=f"Hai {u.mention}, Selamat datang digrup {message.chat.title}.", ) - except (ChatSendMediaForbidden, SlowmodeWait): + except (ChatSendMediaForbidden, SlowmodeWait, TopicClosed): await app.leave_chat(message.chat.id) try: os.remove(f"downloads/welcome#{u.id}.png") diff --git a/misskaty/plugins/inkick_user.py b/misskaty/plugins/inkick_user.py index 77ee2195..638ad041 100644 --- a/misskaty/plugins/inkick_user.py +++ b/misskaty/plugins/inkick_user.py @@ -19,6 +19,8 @@ __HELP__ = """" @app.on_message(filters.incoming & ~filters.private & filters.command(["inkick"], COMMAND_HANDLER)) async def inkick(_, message): + if message.sender_chat: + return await message.reply("This feature not available for channel.") user = await app.get_chat_member(message.chat.id, message.from_user.id) if user.status.value in ("administrator", "owner"): if len(message.command) > 1: @@ -56,6 +58,8 @@ async def inkick(_, message): # Kick User Without Username @app.on_message(filters.incoming & ~filters.private & filters.command(["uname"], COMMAND_HANDLER)) async def uname(_, message): + if message.sender_chat: + return await message.reply("This feature not available for channel.") user = await app.get_chat_member(message.chat.id, message.from_user.id) if user.status.value in ("administrator", "owner"): sent_message = await message.reply_text("🚮**Sedang membersihkan user, mungkin butuh waktu beberapa saat...**") @@ -89,6 +93,8 @@ async def uname(_, message): @app.on_message(filters.incoming & ~filters.private & filters.command(["dkick"], COMMAND_HANDLER)) async def dkick(client, message): + if message.sender_chat: + return await message.reply("This feature not available for channel.") user = await app.get_chat_member(message.chat.id, message.from_user.id) if user.status.value in ("administrator", "owner"): sent_message = await message.reply_text("🚮**Sedang membersihkan user, mungkin butuh waktu beberapa saat...**") diff --git a/misskaty/plugins/mediainfo.py b/misskaty/plugins/mediainfo.py index fcf09483..e7679b8f 100644 --- a/misskaty/plugins/mediainfo.py +++ b/misskaty/plugins/mediainfo.py @@ -15,14 +15,12 @@ from misskaty.vars import COMMAND_HANDLER from utils import get_file_id from misskaty import app from misskaty.helper.media_helper import post_to_telegraph, runcmd -from misskaty.core.decorator.errors import capture_err from misskaty.helper.pyro_progress import ( progress_for_pyrogram, ) @app.on_message(filters.command(["mediainfo"], COMMAND_HANDLER)) -@capture_err async def mediainfo(client, message): if message.reply_to_message and message.reply_to_message.media: process = await message.reply_text("`Sedang memproses, lama waktu tergantung ukuran file kamu...`", quote=True) @@ -31,12 +29,14 @@ async def mediainfo(client, message): await process.edit_text("Balas ke format media yang valid") return c_time = time.time() - # file_path = safe_filename(await reply.download()) - file_path = await client.download_media( - message=message.reply_to_message, - progress=progress_for_pyrogram, - progress_args=("trying to download, sabar yakk..", process, c_time), - ) + try: + file_path = await client.download_media( + message=message.reply_to_message, + progress=progress_for_pyrogram, + progress_args=("trying to download, sabar yakk..", process, c_time), + ) + except Exception as err: + return await message.reply(f"Failed to download media. Err detail -> {err}") output_ = await runcmd(f'mediainfo "{file_path}"') out = output_[0] if len(output_) != 0 else None body_text = f""" @@ -51,7 +51,7 @@ async def mediainfo(client, message): text_ = file_info.message_type link = post_to_telegraph(title, body_text) markup = InlineKeyboardMarkup([[InlineKeyboardButton(text=text_, url=link)]]) - await message.reply("ℹ️ MEDIA INFO", reply_markup=markup, quote=True) + await message.reply("ℹ️ **MEDIA INFO**", reply_markup=markup, quote=True) await process.delete() try: osremove(file_path) @@ -84,7 +84,7 @@ async def mediainfo(client, message): out_file.name = "MissKaty_Mediainfo.txt" await message.reply_document( out_file, - caption=f"Hasil mediainfo anda..\n\nRequest by: {message.from_user.mention}", + caption=f"Hasil mediainfo anda..\n\n**Request by:** {message.from_user.mention}", reply_markup=markup, ) await process.delete() diff --git a/misskaty/plugins/misc_tools.py b/misskaty/plugins/misc_tools.py index 070f49b1..9c219b3e 100644 --- a/misskaty/plugins/misc_tools.py +++ b/misskaty/plugins/misc_tools.py @@ -122,7 +122,7 @@ async def translate(client, message): target_lang = "id" if len(message.command) == 1 else message.text.split()[1] text = message.reply_to_message.text or message.reply_to_message.caption else: - if len(message.command) == 1: + if len(message.command) < 3: return await message.reply_text( "Berikan Kode bahasa yang valid.\n[Available options](https://telegra.ph/Lang-Codes-11-08).\nUsage: /tr en", )