mirror of
https://github.com/gnmyt/myspeed.git
synced 2026-01-15 09:29:33 -06:00
47 lines
1.8 KiB
JavaScript
47 lines
1.8 KiB
JavaScript
const axios = require("axios");
|
|
const {replaceVariables} = require("../util/helpers");
|
|
|
|
const BASE_URL = "https://api.pushover.net/1";
|
|
|
|
const defaults = {
|
|
finished: "A speedtest is finished:\nPing: %ping% ms\nUpload: %upload% Mbps\nDownload: %download% Mbps",
|
|
failed: "A speedtest has failed. Reason: %error%"
|
|
}
|
|
|
|
module.exports = (registerEvent) => {
|
|
registerEvent('testFinished', async (integration, data, triggerActivity) => {
|
|
if (!integration.data.send_finished) return;
|
|
|
|
const message = replaceVariables(integration.data.finished_message || defaults.finished, data);
|
|
|
|
axios.post(`${BASE_URL}/messages.json`, {
|
|
token: integration.data.token,
|
|
user: integration.data.user_key, message
|
|
}).then(() => triggerActivity())
|
|
.catch(() => triggerActivity(true));
|
|
});
|
|
|
|
registerEvent('testFailed', async (integration, error, triggerActivity) => {
|
|
if (!integration.data.send_failed) return;
|
|
|
|
const message = replaceVariables(integration.data.error_message || defaults.failed, {error});
|
|
|
|
axios.post(`${BASE_URL}/messages.json`, {
|
|
token: integration.data.token,
|
|
user: integration.data.user_key, message
|
|
}).then(() => triggerActivity())
|
|
.catch(() => triggerActivity(true));
|
|
});
|
|
|
|
return {
|
|
icon: "fa-solid fa-pushover",
|
|
fields: [
|
|
{name: "token", type: "text", required: true, regex: /^[a-z0-9]{30}$/},
|
|
{name: "user_key", type: "text", required: true, regex: /^[a-z0-9]{30}$/},
|
|
{name: "send_finished", type: "boolean", required: false},
|
|
{name: "finished_message", type: "textarea", required: false},
|
|
{name: "send_failed", type: "boolean", required: false},
|
|
{name: "error_message", type: "textarea", required: false}
|
|
]
|
|
};
|
|
} |