let os = require('os')
let util = require('util')
let { performance } = require('perf_hooks')
let { sizeFormatter } = require('human-readable')
let axios = require('axios')
let si = require('systeminformation')
let format = sizeFormatter({
std: 'JEDEC', // 'SI' (default) | 'IEC' | 'JEDEC'
decimalPlaces: 2,
keepTrailingZeroes: false,
render: (literal, symbol) => `${literal} ${symbol}B`,
})
function formatUptime(seconds) {
const days = Math.floor(seconds / (24 * 3600))
seconds %= 24 * 3600
const hours = Math.floor(seconds / 3600)
seconds %= 3600
const minutes = Math.floor(seconds / 60)
seconds %= 60
return `${days}d ${hours}h ${minutes}m`
}
let handler = async (m, { conn }) => {
const chats = Object.entries(conn.chats).filter(([id, data]) => id && data.isChats)
const groupsIn = chats.filter(([id]) => id.endsWith('@g.us')) //groups.filter(v => !v.read_only)
const used = process.memoryUsage()
const cpus = os.cpus().map(cpu => {
cpu.total = Object.keys(cpu.times).reduce((last, type) => last + cpu.times[type], 0)
return cpu
})
const cpu = cpus.reduce((last, cpu, _, { length }) => {
last.total += cpu.total
last.speed += cpu.speed / length
last.times.user += cpu.times.user
last.times.nice += cpu.times.nice
last.times.sys += cpu.times.sys
last.times.idle += cpu.times.idle
last.times.irq += cpu.times.irq
return last
}, {
speed: 0,
total: 0,
times: {
user: 0,
nice: 0,
sys: 0,
idle: 0,
irq: 0
}
})
let old = performance.now()
await m.reply('_Testing speed..._')
let neww = performance.now()
let speed = neww - old
// Fetch external IP and related info
let ipInfo = await axios.get('https://ipinfo.io/json').then(res => res.data).catch(() => ({}))
// Get network interfaces
let networkInterfaces = os.networkInterfaces()
let macAddresses = Object.values(networkInterfaces).flat().map(iface => iface.mac).filter(mac => mac !== '00:00:00:00:00:00')
// Get disk information
let diskInfo = await si.diskLayout()
let diskUsage = await si.fsSize()
// Get process information
let processes = await si.processes()
// Get BIOS information
let biosInfo = await si.bios()
// Get battery information (if available)
let batteryInfo = await si.battery()
// Get GPU information
let graphicsInfo = await si.graphics()
m.reply(`
*Merespon dalam ${speed} millidetik*
\`STATUS :\`
- *${groupsIn.length}* Group Chats
- *${groupsIn.length}* Groups Joined
- *${groupsIn.length - groupsIn.length}* Groups Left
- *${chats.length - groupsIn.length}* Personal Chats
- *${chats.length}* Total Chats
\`PROVIDER INFO :\`
*IP:* ${ipInfo.ip || 'N/A'}
*REGION:* ${ipInfo.region || 'N/A'}
*ISP:* ${ipInfo.org || 'N/A'}
\`SYSTEM INFO :\`
*HOSTNAME:* ${os.hostname()}
*PLATFORM:* ${os.platform()}
*OS:* ${os.type()} ${os.release()}
*ARCH:* ${os.arch()}
\`SERVER INFO :\`
*MAC:* ${macAddresses.join(', ')}
*SERVER TIME:*
${new Date().toLocaleString()}
*LAST BOOT:*
${new Date(Date.now() - os.uptime() * 1000).toLocaleString()}
*BATTERY INFO:* ${batteryInfo.hasBattery ? `${batteryInfo.percent}% (${batteryInfo.isCharging ? 'Charging' : 'Not Charging'})` : 'No Battery'}
\`SERVER VERSION :\`
*KERNEL:* ${os.version()}
*NODE.JS:* ${process.version}
*BIOS:* ${biosInfo.version}
\`RUNTIME INFO :\`
*OS:* ${formatUptime(os.uptime())}
*HOSTING:* ${formatUptime(process.uptime())}
\`PROCESS INFO :\`
Total: ${processes.all}
Running: ${processes.running}
Blocked: ${processes.blocked}
Sleeping: ${processes.sleeping}
Stopped: ${processes.stopped}
Unknown: ${processes.unknown}
\`STORAGE INFO :\`
*RAM:* ${format(os.totalmem() - os.freemem())} / ${format(os.totalmem())}
*DISK:* ${diskInfo.map(disk => `${disk.device} (${disk.type}) - ${disk.size} bytes`).join(', ')}
*GPU:* ${graphicsInfo.controllers.map(gpu => `${gpu.model} (${gpu.vram} MB)`).join(', ')}
\`STORAGE USAGE :\`
*DISK USAGE:*
${diskUsage.map(disk => `${disk.fs} - ${format(disk.used)} / ${format(disk.size)}`).join(', ')}
\`NODEJS MEMORY USAGE :\`
${'```' + Object.keys(used).map((key, _, arr) => `${key.padEnd(Math.max(...arr.map(v=>v.length)),' ')}: ${format(used[key])}`).join('\n') + '```'}
${cpus[0] ? `\`TOTAL CPU USAGE :\`
${cpus[0].model.trim()} (${cpu.speed} MHZ)\n${Object.keys(cpu.times).map(type => `- *${(type + '*').padEnd(6)}: ${(100 * cpu.times[type] / cpu.total).toFixed(2)}%`).join('\n')}
\`CPU CORE\'s USAGE (${cpus.length} CORE CPU\'s)\`
${cpus.map((cpu, i) => `${i + 1}. ${cpu.model.trim()} (${cpu.speed} MHZ)\n${Object.keys(cpu.times).map(type => `- *${(type + '*').padEnd(6)}: ${(100 * cpu.times[type] / cpu.total).toFixed(2)}%`).join('\n')}`).join('\n\n')}` : ''}
`.trim())
}
handler.help = ["ping"]
handler.tags = ["main"]
handler.command = /^(ping)$/i
module.exports = handler
Ramaikan min hehhe https://chat.whatsapp.com/KNYn5Y5bI2XDVDyWSzu0sE || https://chat.whatsapp.com/KjK5s0JFhiJJetpYulliC5