diff --git a/misskaty/__init__.py b/misskaty/__init__.py
index 1cb53e67..3d9b9827 100644
--- a/misskaty/__init__.py
+++ b/misskaty/__init__.py
@@ -28,6 +28,7 @@ MOD_NOLOAD = ["subscene_dl"]
HELPABLE = {}
cleanmode = {}
botStartTime = time.time()
+misskaty_version = "v2.04.27 - Stable"
pymonclient = MongoClient(DATABASE_URI)
mongo = AsyncIOMotorClient(DATABASE_URI)
diff --git a/misskaty/core/misskaty_patch/bound/message.py b/misskaty/core/misskaty_patch/bound/message.py
index a2db77ab..1c25b2df 100644
--- a/misskaty/core/misskaty_patch/bound/message.py
+++ b/misskaty/core/misskaty_patch/bound/message.py
@@ -169,7 +169,7 @@ async def edit_or_send_as_file(self, text: str, del_in: int = 0, as_raw: bool =
return await reply_as_file(self, text=text, *args, **kwargs)
-async def reply_or_send_as_file(self, text: str, as_raw: bool = False, del_in: int = -1, *args, **kwargs) -> Union["Message", bool]:
+async def reply_or_send_as_file(self, text: str, as_raw: bool = False, del_in: int = 0, *args, **kwargs) -> Union["Message", bool]:
"""\nThis will first try to message.reply.
If it raise MessageTooLong error,
run message.send_as_file.
diff --git a/misskaty/plugins/dev.py b/misskaty/plugins/dev.py
index ed61d56e..d39c8e43 100644
--- a/misskaty/plugins/dev.py
+++ b/misskaty/plugins/dev.py
@@ -19,11 +19,11 @@ from psutil import cpu_percent
from psutil import disk_usage as disk_usage_percent
from psutil import virtual_memory
-from pyrogram import enums, filters, Client
+from pyrogram import enums, filters, Client, __version__ as pyrover
from pyrogram.types import InlineKeyboardButton, InlineKeyboardMarkup, Message
from pyrogram.raw.types import UpdateBotStopped
-from misskaty import app, user, botStartTime, BOT_NAME
+from misskaty import app, user, botStartTime, misskaty_version, BOT_NAME
from misskaty.helper.http import http
from misskaty.helper.eval_helper import meval, format_exception
from misskaty.helper.localization import use_chat_lang
@@ -100,10 +100,6 @@ async def server_stats(self: Client, ctx: Message) -> "Message":
"""
Give system stats of the server.
"""
- if os.path.exists(".git"):
- botVersion = (await shell_exec("git log -1 --date=format:v%y.%m%d.%H%M --pretty=format:%cd"))[0]
- else:
- botVersion = "v2.49"
try:
serverinfo = await http.get("https://ipinfo.io/json")
org = serverinfo.json()["org"]
@@ -116,16 +112,18 @@ async def server_stats(self: Client, ctx: Message) -> "Message":
free = get_readable_file_size(free)
neofetch = (await shell_exec("neofetch --stdout"))[0]
caption = f"""
-**{BOT_NAME} {botVersion} is Up and Running successfully.**
-Bot Uptime: `{currentTime}`
+{BOT_NAME} {misskaty_version} is Up and Running successfully.
+Bot Uptime: {currentTime}
+Pyrogram Version: {pyrover}
+Python Version: {sys.version_info[0]}.{sys.version_info[1]}.{sys.version_info[2]} {sys.version_info[3].title()}
Server: {org}
-Total Disk Space: `{total}`
-Used: `{used}({disk_usage_percent("/").percent}%)`
-Free: `{free}`
-CPU Usage: `{cpu_percent()}%`
-RAM Usage: `{virtual_memory().percent}%`
+Total Disk Space: {total}
+Used: {used}({disk_usage_percent("/").percent}%)
+Free: {free}
+CPU Usage: {cpu_percent()}%
+RAM Usage: {virtual_memory().percent}%
-`{neofetch}`
+{neofetch}
"""
await ctx.reply_msg(caption)
@@ -304,7 +302,7 @@ async def update_restart(self: Client, ctx: Message, strings) -> "Message":
async def updtebot(client, update, users, chats):
if isinstance(update, UpdateBotStopped):
user = users[update.user_id]
- await client.send_msg(LOG_CHANNEL, f"{user.first_name} ({user.id}) " f"{'BLOCKED' if update.stopped else 'UNBLOCKED'} the bot at " f"{datetime.fromtimestamp(update.date)}")
+ await client.send_msg(LOG_CHANNEL, f"{user.first_name} ({user.id}) " f"{'BLOCKED' if update.stopped else 'UNBLOCKED'} the bot at " f"{datetime.fromtimestamp(update.date)}")
async def aexec(code, c, m):
exec("async def __aexec(c, m): " + "\n p = print" + "\n replied = m.reply_to_message" + "".join(f"\n {l_}" for l_ in code.split("\n")))
diff --git a/misskaty/plugins/imdb_search.py b/misskaty/plugins/imdb_search.py
index 9633c2b5..5c895e8a 100644
--- a/misskaty/plugins/imdb_search.py
+++ b/misskaty/plugins/imdb_search.py
@@ -443,8 +443,8 @@ async def imdb_en_callback(self: Client, query: CallbackQuery):
i, userid, movie = query.data.split("#")
if query.from_user.id != int(userid):
return await query.answer("⚠️ Access Denied!", True)
- await query.message.edit_caption("⏳ Getting IMDb source..")
try:
+ await query.message.edit_caption("⏳ Getting IMDb source..")
url = f"https://www.imdb.com/title/tt{movie}/"
resp = await http.get(url, headers=headers)
sop = BeautifulSoup(resp, "lxml")
diff --git a/misskaty/plugins/inline_search.py b/misskaty/plugins/inline_search.py
index 6eb4feea..54d5b920 100644
--- a/misskaty/plugins/inline_search.py
+++ b/misskaty/plugins/inline_search.py
@@ -11,6 +11,7 @@ from motor import version as mongover
from pykeyboard import InlineKeyboard, InlineButton
from pyrogram import __version__ as pyrover
from pyrogram import enums, filters
+from pyrogram.errors import MessageIdInvalid, MessageNotModified
from pyrogram.types import (
InlineKeyboardButton,
InlineKeyboardMarkup,
@@ -541,8 +542,8 @@ async def destroy_msg(_, c_q):
async def imdb_inl(_, query):
i, user, movie = query.data.split("#")
if user == f"{query.from_user.id}":
- await query.edit_message_caption("⏳ Permintaan kamu sedang diproses.. ")
try:
+ await query.edit_message_caption("⏳ Permintaan kamu sedang diproses.. ")
url = f"https://www.imdb.com/title/{movie}/"
resp = await get_content(url)
sop = BeautifulSoup(resp, "lxml")
@@ -649,6 +650,8 @@ async def imdb_inl(_, query):
]
)
await query.edit_message_caption(res_str, parse_mode=enums.ParseMode.HTML, reply_markup=markup)
+ except (MessageNotModified, MessageIdInvalid):
+ pass
except Exception:
exc = traceback.format_exc()
await query.edit_message_caption(f"ERROR:\n{exc}")
diff --git a/misskaty/plugins/ping.py b/misskaty/plugins/ping.py
index 943f2b81..2417a472 100644
--- a/misskaty/plugins/ping.py
+++ b/misskaty/plugins/ping.py
@@ -7,39 +7,30 @@
"""
import time
import os
+import platform
from asyncio import Lock
from re import MULTILINE, findall
from subprocess import run as srun
-from pyrogram import filters, Client
+from pyrogram import filters, Client, __version__ as pyrover
from pyrogram.types import Message
-from misskaty import app, botStartTime
+from misskaty import app, botStartTime, misskaty_version
from misskaty.core.decorator.ratelimiter import ratelimiter
from misskaty.helper.human_read import get_readable_time
from misskaty.helper.http import http
-from .dev import shell_exec
from misskaty.vars import COMMAND_HANDLER
@app.on_message(filters.command(["ping"], COMMAND_HANDLER))
@ratelimiter
async def ping(self: Client, ctx: Message):
- if os.path.exists(".git"):
- botVersion = (await shell_exec("git log -1 --date=format:v%y.%m%d.%H%M --pretty=format:%cd"))[0]
- else:
- botVersion = "v2.49"
- try:
- serverinfo = await http.get("https://ipinfo.io/json")
- org = serverinfo.json()["org"]
- except:
- org = "N/A"
currentTime = get_readable_time(time.time() - botStartTime)
start_t = time.time()
rm = await ctx.reply_msg("🐱 Pong!!...")
end_t = time.time()
time_taken_s = round(end_t - start_t, 3)
- await rm.edit_msg(f"🐈 MissKatyBot {botVersion} online.\n\nPing: {time_taken_s} detik\nUptime: {currentTime}\nHosted by {org}")
+ await rm.edit_msg(f"🐈 MissKatyBot {botVersion} based Pyrogram {pyrover} Online.\n\nPing: {time_taken_s} detik\nUptime: {currentTime}\nPython Version: {platform.python_version()}")
@app.on_message(filters.command(["ping_dc"], COMMAND_HANDLER))
diff --git a/misskaty/plugins/web_scraper.py b/misskaty/plugins/web_scraper.py
index 177e3f2b..0614f270 100644
--- a/misskaty/plugins/web_scraper.py
+++ b/misskaty/plugins/web_scraper.py
@@ -481,7 +481,7 @@ async def lendrive_s(self: Client, ctx: Message, strings):
kueri = ctx.input
if not kueri:
kueri = ""
- pesan = await ctx.edit_msg(strings("get_data"), quote=True)
+ pesan = await ctx.reply_msg(strings("get_data"), quote=True)
CurrentPage = 1
lendres, PageLen, btn = await getDataLendrive(pesan, kueri, CurrentPage, ctx.from_user.id, strings)
if not lendres: