You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
61 lines
2.0 KiB
JavaScript
61 lines
2.0 KiB
JavaScript
const systeminformation = require('systeminformation');
|
|
const { size } = require('./misc');
|
|
|
|
const cache = {};
|
|
|
|
async function get() {
|
|
const [Cpu, Memory, OsInfo, CurrentLoad, CpuFlags, CpuTemp, Battery] = await Promise.all([
|
|
systeminformation.cpu(),
|
|
systeminformation.mem(),
|
|
systeminformation.osInfo(),
|
|
systeminformation.currentLoad(),
|
|
systeminformation.cpuFlags(),
|
|
systeminformation.cpuTemperature(),
|
|
systeminformation.battery(),
|
|
]);
|
|
const cpu = `${Cpu.manufacturer} ${Cpu.brand}`;
|
|
const memory = `${size(Memory.active)}/${size(Memory.total)}`;
|
|
const osinfo = `${OsInfo.distro} ${OsInfo.release} ${OsInfo.codename} ${OsInfo.kernel} ${OsInfo.arch}`;
|
|
const load = `${CurrentLoad.avgload}`;
|
|
const flags = CpuFlags;
|
|
let battery;
|
|
if (!Battery.hasbattery) battery = 'No battery';
|
|
else battery = `${Battery.type} ${Battery.model} ${Battery.percent}%${Battery.ischarging ? ' Charging' : ''}`;
|
|
const mid = OsInfo.serial;
|
|
cache.cpu = cpu;
|
|
cache.osinfo = osinfo;
|
|
cache.flags = flags;
|
|
cache.mid = mid;
|
|
return {
|
|
mid, cpu, memory, osinfo, load, flags, CpuTemp, battery,
|
|
};
|
|
}
|
|
|
|
async function update() {
|
|
const [Memory, CurrentLoad, CpuTemp, Battery] = await Promise.all([
|
|
systeminformation.mem(),
|
|
systeminformation.currentLoad(),
|
|
systeminformation.cpuTemperature(),
|
|
systeminformation.battery(),
|
|
]);
|
|
const {
|
|
mid, cpu, osinfo, flags,
|
|
} = cache;
|
|
const memory = `${size(Memory.active)}/${size(Memory.total)}`;
|
|
const load = `${CurrentLoad.avgload}`;
|
|
let battery;
|
|
if (!Battery.hasbattery) battery = 'No battery';
|
|
else battery = `${Battery.type} ${Battery.model} ${Battery.percent}%${Battery.ischarging ? ' Charging' : ''}`;
|
|
return [
|
|
mid,
|
|
{
|
|
memory, load, battery, CpuTemp,
|
|
},
|
|
{
|
|
mid, cpu, memory, osinfo, load, flags, battery, CpuTemp,
|
|
},
|
|
];
|
|
}
|
|
|
|
global.Hydro.lib.sysinfo = module.exports = { get, update };
|