owobot/plugins/commands/serverinfo.js

88 lines
3.4 KiB
JavaScript
Raw Normal View History

2024-07-06 11:02:11 -04:00
const os = require('os')
const cp = require('child_process')
const settings = require('../../settings.json')
const timeformat = require('../../util/timeformat.js')
2024-07-22 12:34:31 -04:00
const version = require("../../version.json")
const getMessage = require('../../util/lang.js')
2024-07-06 11:02:11 -04:00
const fs=require("fs")
const gr = function (l, text, value, color) {
2024-07-06 11:02:11 -04:00
if (!color) color = 'white'
2024-07-22 18:13:45 -04:00
return {
2024-07-06 11:02:11 -04:00
translate: '%s: %s',
with: [
{
text,
color
},
{
text: value,
color
}
],
hoverEvent: {
action: 'show_text',
contents: {
text: getMessage(l,"copyText")
2024-07-06 11:02:11 -04:00
}
},
clickEvent: {
action: 'copy_to_clipboard',
value
}
2024-07-22 18:13:45 -04:00
}
2024-07-06 11:02:11 -04:00
}
const os2 = function (o2,l) {
2024-07-06 11:02:11 -04:00
switch (o2) {
case 'win32':
return os.version()
break
case 'android':
return getMessage(l,"command.serverinfo.os.android")
2024-07-06 11:02:11 -04:00
break
case 'linux':
return getMessage(l,"command.serverinfo.os.linux",[os.release()])
2024-07-06 11:02:11 -04:00
break
default:
return o2
}
}
module.exports = {
execute: function (c) {
c.reply(gr(c.lang,getMessage(c.lang,"command.serverinfo.os"), os2(process.platform,c.lang)))
if(os.cpus()[0]) c.reply(gr(c.lang,getMessage(c.lang,"command.serverinfo.processor"), os.cpus()[0].model))
c.reply(gr(c.lang,getMessage(c.lang,"command.serverinfo.arch"), os.machine()))
c.reply(gr(c.lang,getMessage(c.lang,"command.serverinfo.osUsername"), os.userInfo().username))
2024-07-24 01:14:04 -04:00
c.reply(gr(c.lang,getMessage(c.lang,"command.serverinfo.hostName"), os.hostname()))
c.reply(gr(c.lang,getMessage(c.lang,"command.serverinfo.runTime"), timeformat(process.uptime() * 1000)))
c.reply(gr(c.lang,getMessage(c.lang,"command.serverinfo.upTime"), timeformat(os.uptime() * 1000)))
c.reply(gr(c.lang,getMessage(c.lang,"command.serverinfo.nodeVersion"), process.version))
2024-07-06 11:02:11 -04:00
if (process.platform == 'linux' || process.platform == 'freebsd') {
try{
const osrelease = fs.readFileSync("/etc/os-release").toString("UTF-8").split("\n");
let osrelease2={};
for(const i in osrelease){
if(!osrelease[i].includes("=")) continue;
let osr_value=osrelease[i].split("=")[1];
if(osr_value.startsWith("\"") && osr_value.endsWith("\"")){osr_value=osr_value.slice(1,osr_value.length-1)};
osrelease2[osrelease[i].split("=")[0]]=osr_value;
}
2024-07-06 11:02:11 -04:00
if(osrelease2.PRETTY_NAME){
c.reply(gr(c.lang,getMessage(c.lang,"command.serverinfo.osRelease"), osrelease2.PRETTY_NAME, 'dark_green'))
}
} catch(e){
c.reply({text:getMessage(c.lang,"command.serverinfo.osRelease.missing")})
2024-07-06 11:02:11 -04:00
}
} else if (process.platform == 'android') {
const android_version = cp.execSync('getprop ro.build.version.release').toString('UTF-8').split('\n')[0]
c.reply(gr(c.lang,getMessage(c.lang,"command.serverinfo.os.android.version"), android_version, 'green'))
const dModel=cp.execSync('getprop ro.product.model').toString('UTF-8').split('\n')[0];
const dBrand=cp.execSync('getprop ro.product.brand').toString('UTF-8').split('\n')[0];
2024-07-23 18:31:26 -04:00
c.reply(gr(c.lang,getMessage(c.lang,"command.serverinfo.os.android.model"), dBrand+" "+dModel, 'green'))
2024-07-06 11:02:11 -04:00
}
c.reply(gr(c.lang,getMessage(c.lang,"command.serverinfo.botName"), settings.name, 'yellow'))
c.reply(gr(c.lang,getMessage(c.lang,"command.serverinfo.botVer"), version.bot, 'yellow'))
}
2024-07-06 11:02:11 -04:00
}