UNPKG

@kotori-bot/kotori-plugin-status

Version:

status plugin

96 lines (95 loc) 3.02 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.main = exports.config = exports.lang = void 0; /* * @Author: hotaru biyuehuya@gmail.com * @Blog: https://hotaru.icu * @Date: 2023-07-11 14:18:27 * @LastEditors: Hotaru biyuehuya@gmail.com * @LastEditTime: 2024-02-15 17:21:28 */ const kotori_bot_1 = require("kotori-bot"); const os_1 = __importDefault(require("os")); function dealTime() { const seconds = Math.floor(os_1.default.uptime()); let day = Math.floor(seconds / (3600 * 24)); let hours = Math.floor((seconds - day * 3600 * 24) / 3600); let minutes = Math.floor((seconds - day * 3600 * 24 - hours * 3600) / 60); let second = seconds % 60; if (day < 10) { day = `0${day}`; } if (hours < 10) { hours = `0${hours}`; } if (minutes < 10) { minutes = `0${minutes}`; } if (second < 10) { second = `0${second}`; } return [day, hours, minutes, second].join(':'); } function dealRam() { const total = os_1.default.totalmem() / 1024 / 1024 / 1024; const unused = os_1.default.freemem() / 1024 / 1024 / 1024; const used = total - unused; const rate = (used / total) * 100; return { total, unused, used, rate }; } function dealCpu() { const cpuData = os_1.default.cpus(); let rate = 0; const ratearr = []; cpuData.forEach((key) => { const { times } = key; const usage = (1 - times.idle / (times.idle + times.user + times.nice + times.sys + times.irq)) * 100; ratearr.push(usage); rate += usage; }); return { model: cpuData[0].model, speed: cpuData[0].speed / 1024, num: cpuData.length, rate, ratearr }; } exports.lang = [__dirname, '../locales']; exports.config = kotori_bot_1.Tsu.Object({ template: kotori_bot_1.Tsu.String().default('status.msg.status') }); function main(ctx, config) { ctx.command('status - status.descr.status').action(() => { const { model, speed, num, rate: cpuRate } = dealCpu(); const { total, used, rate: ramRate } = dealRam(); return [ config.template, { type: os_1.default.type(), platform: os_1.default.platform(), arch: os_1.default.arch(), model, speed: speed.toFixed(2), num, cpu_rate: cpuRate.toFixed(2), total: total.toFixed(2), used: used.toFixed(2), ram_rate: ramRate.toFixed(2), network: Object.keys(os_1.default.networkInterfaces()).length, time: dealTime(), hostname: os_1.default.hostname(), homedir: os_1.default.homedir() } ]; }); } exports.main = main;