@kotori-bot/kotori-plugin-status
Version:
status plugin
96 lines (95 loc) • 3.02 kB
JavaScript
;
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;