MCPcopy Create free account
hub / github.com/GlobalTechInfo/MEGA-MD / handler

Function handler

plugins/sysinfo.js:12–90  ·  view source on GitHub ↗
(sock, message, args, context)

Source from the content-addressed store, hash-verified

10 usage: '.sysinfo',
11 ownerOnly: true,
12 async handler(sock, message, args, context) {
13 const { chatId, channelInfo } = context;
14 try {
15 // Memory via os module (works everywhere, no free command needed)
16 const totalMem = os.totalmem();
17 const freeMem = os.freemem();
18 const usedMem = totalMem - freeMem;
19 const toMB = (b) => (b / 1024 / 1024).toFixed(0);
20 const toGB = (b) => (b / 1024 / 1024 / 1024).toFixed(2);
21 const memTotal = totalMem > 1073741824 ? `${toGB(totalMem) } GB` : `${toMB(totalMem) } MB`;
22 const memUsed = usedMem > 1073741824 ? `${toGB(usedMem) } GB` : `${toMB(usedMem) } MB`;
23 const memFree = freeMem > 1073741824 ? `${toGB(freeMem) } GB` : `${toMB(freeMem) } MB`;
24 // Disk via df (fallback to N/A if not available)
25 let diskTotal = 'N/A', diskUsed = 'N/A', diskFree = 'N/A', diskPct = 'N/A';
26 try {
27 const diskOut = (await execAsync('df -h /')).stdout.trim();
28 const diskVals = diskOut.split('\n')[1]?.split(/\s+/) || [];
29 diskTotal = diskVals[1] || 'N/A';
30 diskUsed = diskVals[2] || 'N/A';
31 diskFree = diskVals[3] || 'N/A';
32 diskPct = diskVals[4] || 'N/A';
33 }
34 catch { }
35 // Bot uptime (process uptime, not system uptime)
36 const uptimeSec = Math.floor(process.uptime());
37 const uptimeDays = Math.floor(uptimeSec / 86400);
38 const uptimeHrs = Math.floor((uptimeSec % 86400) / 3600);
39 const uptimeMins = Math.floor((uptimeSec % 3600) / 60);
40 const uptimeSecs = uptimeSec % 60;
41 const uptimeOut = uptimeDays > 0
42 ? `${uptimeDays}d ${uptimeHrs}h ${uptimeMins}m`
43 : uptimeHrs > 0
44 ? `${uptimeHrs}h ${uptimeMins}m ${uptimeSecs}s`
45 : `${uptimeMins}m ${uptimeSecs}s`;
46 // CPU
47 const cpus = os.cpus();
48 const cpuModel = cpus[0]?.model?.trim() || 'Unknown';
49 const cpuCores = cpus.length;
50 const loadAvg = os.loadavg().map(l => l.toFixed(2)).join(', ');
51 // Platform
52 const platform = os.platform();
53 const arch = os.arch();
54 const nodeVer = process.version;
55 const hostname = os.hostname();
56 const text = `╔══════════════════════════════╗
57║ 🖥️ *SERVER STATS* ║
58╚══════════════════════════════╝
59
60🏠 *Host:* ${hostname}
61🐧 *OS:* ${platform} (${arch})
62⏱️ *Uptime:* ${uptimeOut}
63🟢 *Node.js:* ${nodeVer}
64
65━━━━━━ 🧠 CPU ━━━━━━
66🔧 *Model:* ${cpuModel}
67⚙️ *Cores:* ${cpuCores}
68📊 *Load Avg:* ${loadAvg}
69

Callers

nothing calls this directly

Calls 2

toGBFunction · 0.85
toMBFunction · 0.85

Tested by

no test coverage detected