const os = require("os"); const pidusage = require("pidusage"); const { execSync } = require("child_process"); module.exports = { config: { name: "rtm", version: "1.6", author: "š—”š—æš—¶š˜†š—®š—» š—Æš—Æ'š˜‡", countDown: 10, role: 0, shortDescription: { en: "Show system & bot stats", bn: "ą¦øą¦æą¦øą§ą¦Ÿą§‡ą¦® ą¦ą¦¬ą¦‚ ą¦¬ą¦Ÿą§‡ą¦° ą¦øą§ą¦Ÿą§ą¦Æą¦¾ą¦Ÿą¦¾ą¦ø দেখুন" }, longDescription: { en: "Display CPU, RAM, disk usage, uptime, users, groups etc.", bn: "CPU, RAM, Disk, Uptime, User, Group ą¦‡ą¦¤ą§ą¦Æą¦¾ą¦¦ą¦æ দেখাবে" }, category: "system" }, onStart: async function ({ message, api, event, threadsData, usersData, commands }) { let sent; try { sent = await message.reply(">šŸŽ€ š‹šØšššš¢š§š ..\nā–ˆā–’"); const bar = ["ā–ˆā–ˆā–’ā–’ā–’ā–’", "ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–’ā–’ā–’ā–’", "ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆ"]; for (let i = 0; i < bar.length; i++) { await new Promise(r => setTimeout(r, 500)); await api.editMessage(`✨ š‹šØšššš¢š§š ...\n${bar[i]}`, sent.messageID); } // CPU & Memory usage const stats = await pidusage(process.pid); const cpuUsage = stats.cpu.toFixed(2); const usedMem = stats.memory / 1024 / 1024; const totalMem = os.totalmem() / 1024 / 1024; const freeMem = os.freemem() / 1024 / 1024; // Disk usage let diskTotal = 0, diskUsed = 0, diskFree = 0; try { const df = execSync("df -k --total").toString().split("\n"); const totalLine = df[df.length - 2].trim().split(/\s+/); diskTotal = (parseInt(totalLine[1]) / 1024 / 1024).toFixed(2); diskUsed = (parseInt(totalLine[2]) / 1024 / 1024).toFixed(2); diskFree = (parseInt(totalLine[3]) / 1024 / 1024).toFixed(2); } catch { diskTotal = totalMem.toFixed(2); diskUsed = usedMem.toFixed(2); diskFree = freeMem.toFixed(2); } // Uptime const botUptime = formatTime(process.uptime() * 1000); const sysUptime = formatTime(os.uptime() * 1000); // System info const cpuModel = os.cpus()[0].model; const nodeVersion = process.version; const osVersion = os.version ? os.version() : os.type() + " " + os.release(); const platform = os.platform(); const hostname = os.hostname(); // Bot info const totalUsers = (await usersData.getAll()).length; const totalGroups = (await threadsData.getAll()).length; const totalCommands = commands?.size || 0; const botName = "š—”š—æš—¶š˜†š—®š—» š—Æš—Æ'š˜‡ š—•š—¼š˜"; // <-- tor bot er nam const ping = ((Date.now() - event.timestamp) / 1000).toFixed(2); // Version check let botVersion = "unknown"; try { botVersion = require(process.cwd() + "/package.json").version || "unknown"; } catch { } const info = ` >šŸŽ€ š”š’š„š‘š’ & š†š‘šŽš”šš’ • Total Users : ${totalUsers} • Total Groups : ${totalGroups} • Commands : ${totalCommands} š‘š€šŒ šˆšš…šŽ • Total RAM : ${totalMem.toFixed(2)} MB • Free RAM : ${freeMem.toFixed(2)} MB • Used RAM : ${usedMem.toFixed(2)} MB šƒšˆš’šŠ š”š’š€š†š„ • Total Disk : ${diskTotal} GB • Used Disk : ${diskUsed} GB • Free Disk : ${diskFree} GB ššŽš“ š’š“š€š“š”š’ • Bot Uptime : ${botUptime} • Server Uptime : ${sysUptime} • Ping : ${ping}s • Bot Name : ${botName} • Bot Version : ${botVersion} • Hostname : ${hostname} • Author : š—”š—æš—¶š˜†š—®š—» š—Æš—Æ'š˜‡ š‚šš” & š’š˜š’š“š„šŒ • CPU Model : ${cpuModel} • CPU Usage : ${cpuUsage}% • Platform : ${platform} • OS Version : ${osVersion} • Node.js : ${nodeVersion} `.trim(); await new Promise(r => setTimeout(r, 600)); await api.editMessage(info, sent.messageID); } catch (err) { if (sent?.messageID) { api.editMessage("š…ššš¢š„šžš: " + err.message, sent.messageID); } else { message.reply("š…ššš¢š„šžš: " + err.message); } } } }; function formatTime(ms) { const d = Math.floor(ms / (1000 * 60 * 60 * 24)); const h = Math.floor(ms / (1000 * 60 * 60)) % 24; const m = Math.floor(ms / (1000 * 60)) % 60; const s = Math.floor(ms / 1000) % 60; return `${d}d ${h}h ${m}m ${s}s`; }