diff --git a/bot/helper/telegram_helper/message_utils.py b/bot/helper/telegram_helper/message_utils.py
index e1f1205..e89619e 100644
--- a/bot/helper/telegram_helper/message_utils.py
+++ b/bot/helper/telegram_helper/message_utils.py
@@ -1,10 +1,11 @@
-from telegram import InlineKeyboardMarkup
+from telegram import InlineKeyboardButton, InlineKeyboardMarkup
+from telegram.ext import CallbackContext, CallbackQueryHandler
from telegram.message import Message
from telegram.update import Update
import psutil, shutil
import time
from bot import AUTO_DELETE_MESSAGE_DURATION, LOGGER, bot, \
- status_reply_dict, status_reply_dict_lock, download_dict, download_dict_lock, botStartTime
+ status_reply_dict, status_reply_dict_lock, download_dict, download_dict_lock, botStartTime, dispatcher
from bot.helper.ext_utils.bot_utils import get_readable_message, get_readable_file_size, get_readable_time, MirrorStatus
from telegram.error import TimedOut, BadRequest
@@ -67,13 +68,7 @@ def delete_all_messages():
def update_all_messages():
- total, used, free = shutil.disk_usage('.')
- free = get_readable_file_size(free)
- currentTime = get_readable_time(time.time() - botStartTime)
msg = get_readable_message()
- msg += f"CPU: {psutil.cpu_percent()}%" \
- f" RAM: {psutil.virtual_memory().percent}%" \
- f" DISK: {psutil.disk_usage('/').percent}%"
with download_dict_lock:
dlspeed_bytes = 0
uldl_bytes = 0
@@ -91,27 +86,22 @@ def update_all_messages():
uldl_bytes += float(speedy.split('M')[0]) * 1048576
dlspeed = get_readable_file_size(dlspeed_bytes)
ulspeed = get_readable_file_size(uldl_bytes)
- msg += f"\nFREE: {free} | UPTIME: {currentTime}\nDL: {dlspeed}ps 🔻 | UL: {ulspeed}ps 🔺\n"
+ msg += f"DL: {dlspeed}ps 🔻 | UL: {ulspeed}ps 🔺"
with status_reply_dict_lock:
for chat_id in list(status_reply_dict.keys()):
if status_reply_dict[chat_id] and msg != status_reply_dict[chat_id].text:
if len(msg) == 0:
msg = "Starting DL"
try:
- editMessage(msg, status_reply_dict[chat_id])
+ keyboard = [[InlineKeyboardButton("♻️ Stats", callback_data="stats_")]]
+ editMessage(msg, status_reply_dict[chat_id], reply_markup=InlineKeyboardMarkup(keyboard))
except Exception as e:
LOGGER.error(str(e))
status_reply_dict[chat_id].text = msg
def sendStatusMessage(msg, bot):
- total, used, free = shutil.disk_usage('.')
- free = get_readable_file_size(free)
- currentTime = get_readable_time(time.time() - botStartTime)
progress = get_readable_message()
- progress += f"CPU: {psutil.cpu_percent()}%" \
- f" RAM: {psutil.virtual_memory().percent}%" \
- f" DISK: {psutil.disk_usage('/').percent}%"
with download_dict_lock:
dlspeed_bytes = 0
uldl_bytes = 0
@@ -129,7 +119,7 @@ def sendStatusMessage(msg, bot):
uldl_bytes += float(speedy.split('M')[0]) * 1048576
dlspeed = get_readable_file_size(dlspeed_bytes)
ulspeed = get_readable_file_size(uldl_bytes)
- progress += f"\nFREE: {free} | UPTIME: {currentTime}\nDL: {dlspeed}ps 🔻 | UL: {ulspeed}ps 🔺\n"
+ progress += f"DL: {dlspeed}ps 🔻 | UL: {ulspeed}ps 🔺"
with status_reply_dict_lock:
if msg.message.chat.id in list(status_reply_dict.keys()):
try:
@@ -144,3 +134,27 @@ def sendStatusMessage(msg, bot):
progress = "Starting DL"
message = sendMessage(progress, bot, msg)
status_reply_dict[msg.message.chat.id] = message
+
+
+def pop_up_stats(update, context):
+ query = update.callback_query
+ stats = bot_sys_stats()
+ query.answer(text=stats, show_alert=True)
+
+def bot_sys_stats():
+ currentTime = get_readable_time(time.time() - botStartTime)
+ cpu = psutil.cpu_percent()
+ mem = psutil.virtual_memory().percent
+ disk = psutil.disk_usage("/").percent
+ total, used, free = shutil.disk_usage('.')
+ free = get_readable_file_size(free)
+ stats = f"""
+Bot Uptime: {currentTime}
+Free Disk: {free}
+CPU: {cpu}%
+RAM: {mem}%
+DISK: {disk}%
+"""
+ return stats
+
+dispatcher.add_handler(CallbackQueryHandler(pop_up_stats, pattern="stats_"))