Add SpugPush notification provider (#5813)

Co-authored-by: Frank Elsinga <frank@elsinga.de>
This commit is contained in:
vapao
2025-05-02 14:58:16 +08:00
committed by GitHub
parent b22969a3e6
commit 6a5011ad34
6 changed files with 62 additions and 0 deletions

View File

@@ -0,0 +1,37 @@
const NotificationProvider = require("./notification-provider");
const axios = require("axios");
const { DOWN, UP } = require("../../src/util");
class SpugPush extends NotificationProvider {
name = "SpugPush";
/**
* @inheritdoc
*/
async send(notification, msg, monitorJSON = null, heartbeatJSON = null) {
let okMsg = "Sent Successfully.";
try {
let formData = {
msg
};
const apiUrl = `https://push.spug.cc/send/${notification.templateKey}`;
if (heartbeatJSON == null) {
formData.title = "Uptime Kuma Message";
} else if (heartbeatJSON["status"] === UP) {
formData.title = `UptimeKuma 「${monitorJSON["name"]}」 is Up`;
formData.msg = `[✅ Up] ${heartbeatJSON["msg"]}`;
} else if (heartbeatJSON["status"] === DOWN) {
formData.title = `UptimeKuma 「${monitorJSON["name"]}」 is Down`;
formData.msg = `[🔴 Down] ${heartbeatJSON["msg"]}`;
}
await axios.post(apiUrl, formData);
return okMsg;
} catch (error) {
this.throwGeneralAxiosError(error);
}
}
}
module.exports = SpugPush;