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