uptime-kuma/server/util-server.js

73 lines
1.6 KiB
JavaScript
Raw Normal View History

2021-07-01 06:03:06 +00:00
const tcpp = require('tcp-ping');
2021-07-01 09:00:23 +00:00
const Ping = require("./ping-lite");
2021-07-09 06:14:03 +00:00
const {R} = require("redbean-node");
2021-07-01 06:03:06 +00:00
exports.tcping = function (hostname, port) {
return new Promise((resolve, reject) => {
tcpp.ping({
address: hostname,
port: port,
attempts: 1,
}, function(err, data) {
if (err) {
reject(err);
}
if (data.results.length >= 1 && data.results[0].err) {
reject(data.results[0].err);
}
resolve(Math.round(data.max));
});
});
}
2021-07-01 09:00:23 +00:00
exports.ping = function (hostname) {
return new Promise((resolve, reject) => {
const ping = new Ping(hostname);
ping.send(function(err, ms) {
if (err) {
reject(err)
} else if (ms === null) {
reject(new Error("timeout"))
} else {
resolve(Math.round(ms))
}
});
});
}
2021-07-09 06:14:03 +00:00
exports.setting = async function (key) {
return await R.getCell("SELECT `value` FROM setting WHERE `key` = ? ", [
key
])
}
2021-07-21 18:02:35 +00:00
exports.setSetting = async function (key, value) {
let bean = await R.findOne("setting", " `key` = ? ", [
key
])
if (! bean) {
bean = R.dispense("setting")
bean.key = key;
}
bean.value = value;
await R.store(bean)
}
2021-07-09 06:14:03 +00:00
exports.getSettings = async function (type) {
let list = await R.getAll("SELECT * FROM setting WHERE `type` = ? ", [
type
])
let result = {};
for (let row of list) {
result[row.key] = row.value;
}
return result;
}