From eff98bb8d221069274968a2bfe924c80ac1d5537 Mon Sep 17 00:00:00 2001 From: Hirzi <64255651+HirziDevs@users.noreply.github.com> Date: Thu, 30 Jun 2022 11:25:02 +0700 Subject: [PATCH] Fix if nodes is down the stats not updated --- handlers/checkStatus.js | 10 +++++++++- handlers/postStatus.js | 11 ++++++----- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/handlers/checkStatus.js b/handlers/checkStatus.js index 03b15c0..0222e34 100644 --- a/handlers/checkStatus.js +++ b/handlers/checkStatus.js @@ -104,6 +104,7 @@ module.exports = function checkStatus(client) { } const stats = new Promise((statsResolve, statsReject) => { + let done = false axios(node.attributes.scheme + '://' + node.attributes.fqdn + ':' + node.attributes.daemon_listen + '/api/servers', { method: 'GET', headers: { @@ -112,15 +113,21 @@ module.exports = function checkStatus(client) { Authorization: 'Bearer ' + data.data.token } }).then((status) => { + done = true statsResolve() }).catch((err) => { body.status = false + done = true statsResolve() }) + setTimeout(() => { + if (!done) body.status = false + statsResolve() + }, 1000) }) stats.then(() => { nodes.push(body) - if (i + 1 === res.data.data.length) resolve() + if (nodes.length === res.data.data.length) resolve() }) }).catch((err) => { resolve() @@ -133,6 +140,7 @@ module.exports = function checkStatus(client) { panelStats.then(() => { nodeStats.then(() => { + nodes.sort(function (a, b) { return a.id - b.id }) postStatus(client, panel, nodes) }) }) diff --git a/handlers/postStatus.js b/handlers/postStatus.js index 79fd8bc..87a8a51 100644 --- a/handlers/postStatus.js +++ b/handlers/postStatus.js @@ -27,6 +27,12 @@ module.exports = async function postStatus(client, panel, nodes) { let desc = '' let blacklist = 0 + let content = null + const files = [] + + if (client.config.message.content) content = client.config.message.content + if (client.config.message.image) files.push(new MessageAttachment(client.config.message.image)) + if (client.config.embed.title) embed.setTitle(client.config.embed.title) if (client.config.embed.description) desc = client.config.embed.description + '\n' if (client.config.embed.color) embed.setColor(client.config.embed.color) @@ -155,11 +161,6 @@ module.exports = async function postStatus(client, panel, nodes) { } row.push(button) } - let content = null - const files = [] - - if (client.config.message.content) content = client.config.message.content - if (client.config.message.image) files.push(new MessageAttachment(client.config.message.image)) if (!messages) channel.send({ content: content, embeds: [embed], components: row, files: files }) else messages.edit({ content: content, embeds: [embed], components: row, files: files })