diff --git a/.eslintrc.js b/.eslintrc.js index 41ad54b81..dcd4215c5 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -62,9 +62,6 @@ module.exports = { exceptAfterSingleLine: true, }], "no-unneeded-ternary": "error", - "no-else-return": ["error", { - "allowElseIf": false, - }], "array-bracket-newline": ["error", "consistent"], "eol-last": ["error", "always"], //'prefer-template': 'error', diff --git a/server/notification.js b/server/notification.js index f53b681a1..05dae8ad1 100644 --- a/server/notification.js +++ b/server/notification.js @@ -84,40 +84,78 @@ class Notification { } else if (notification.type === "discord") { try { + const discordDisplayName = notification.discordUsername || "Uptime Kuma"; + // If heartbeatJSON is null, assume we're testing. if (heartbeatJSON == null) { - let data = { - username: "Uptime-Kuma", + let discordtestdata = { + username: discordDisplayName, content: msg, } - await axios.post(notification.discordWebhookUrl, data) + await axios.post(notification.discordWebhookUrl, discordtestdata) return okMsg; } // If heartbeatJSON is not null, we go into the normal alerting loop. if (heartbeatJSON["status"] == 0) { - var alertColor = "16711680"; + let discorddowndata = { + username: discordDisplayName, + embeds: [{ + title: "❌ One of your services went down. ❌", + color: 16711680, + timestamp: heartbeatJSON["time"], + fields: [ + { + name: "Service Name", + value: monitorJSON["name"], + }, + { + name: "Service URL", + value: monitorJSON["url"], + }, + { + name: "Time (UTC)", + value: heartbeatJSON["time"], + }, + { + name: "Error", + value: heartbeatJSON["msg"], + }, + ], + }], + } + await axios.post(notification.discordWebhookUrl, discorddowndata) + return okMsg; + } else if (heartbeatJSON["status"] == 1) { - var alertColor = "65280"; + let discordupdata = { + username: discordDisplayName, + embeds: [{ + title: "✅ Your service " + monitorJSON["name"] + " is up! ✅", + color: 65280, + timestamp: heartbeatJSON["time"], + fields: [ + { + name: "Service Name", + value: monitorJSON["name"], + }, + { + name: "Service URL", + value: "[Visit Service](" + monitorJSON["url"] + ")", + }, + { + name: "Time (UTC)", + value: heartbeatJSON["time"], + }, + { + name: "Ping", + value: heartbeatJSON["ping"] + "ms", + }, + ], + }], + } + await axios.post(notification.discordWebhookUrl, discordupdata) + return okMsg; } - let data = { - username: "Uptime-Kuma", - embeds: [{ - title: "Uptime-Kuma Alert", - color: alertColor, - fields: [ - { - name: "Time (UTC)", - value: heartbeatJSON["time"], - }, - { - name: "Message", - value: msg, - }, - ], - }], - } - await axios.post(notification.discordWebhookUrl, data) - return okMsg; } catch (error) { throwGeneralAxiosError(error) } diff --git a/src/components/NotificationDialog.vue b/src/components/NotificationDialog.vue index 3fc326f47..4790ff9a0 100644 --- a/src/components/NotificationDialog.vue +++ b/src/components/NotificationDialog.vue @@ -143,6 +143,11 @@