From bc174c33257009cae257ccd303135ca2ebb54fbf Mon Sep 17 00:00:00 2001 From: Clemens Wolff Date: Mon, 2 May 2022 11:00:14 -0400 Subject: [PATCH 1/4] Extract child process args into variable --- server/notification-providers/apprise.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/server/notification-providers/apprise.js b/server/notification-providers/apprise.js index 2d795d4e..5e73a47c 100644 --- a/server/notification-providers/apprise.js +++ b/server/notification-providers/apprise.js @@ -6,7 +6,8 @@ class Apprise extends NotificationProvider { name = "apprise"; async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { - let s = childProcess.spawnSync("apprise", [ "-vv", "-b", msg, notification.appriseURL ]); + let args = [ "-vv", "-b", msg, notification.appriseURL ]; + let s = childProcess.spawnSync("apprise", args); let output = (s.stdout) ? s.stdout.toString() : "ERROR: maybe apprise not found"; From f9004bcbed4c8fe4d4ce17dd3c6dd0677bf3b49b Mon Sep 17 00:00:00 2001 From: Clemens Wolff Date: Mon, 2 May 2022 11:00:31 -0400 Subject: [PATCH 2/4] Add optional title to apprise notification --- server/notification-providers/apprise.js | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/server/notification-providers/apprise.js b/server/notification-providers/apprise.js index 5e73a47c..76e1e3c2 100644 --- a/server/notification-providers/apprise.js +++ b/server/notification-providers/apprise.js @@ -1,12 +1,23 @@ const NotificationProvider = require("./notification-provider"); const childProcess = require("child_process"); +/** + * If you use an apprise backend that requires the notification title to + * be set (such as for example messaging a Zulip Stream), you can use this + * environment variable to configure the title. + */ +const { APPRISE_NOTIFICATION_TITLE } = process.env; + class Apprise extends NotificationProvider { name = "apprise"; async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { let args = [ "-vv", "-b", msg, notification.appriseURL ]; + if (APPRISE_NOTIFICATION_TITLE) { + args.push("-t"); + args.push(APPRISE_NOTIFICATION_TITLE); + } let s = childProcess.spawnSync("apprise", args); let output = (s.stdout) ? s.stdout.toString() : "ERROR: maybe apprise not found"; From 4b9dc2890d078f46dc89860a61700d74674e7068 Mon Sep 17 00:00:00 2001 From: Clemens Wolff Date: Mon, 2 May 2022 11:16:08 -0400 Subject: [PATCH 3/4] Convert let to const --- server/notification-providers/apprise.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/server/notification-providers/apprise.js b/server/notification-providers/apprise.js index 76e1e3c2..acbc0567 100644 --- a/server/notification-providers/apprise.js +++ b/server/notification-providers/apprise.js @@ -13,14 +13,14 @@ class Apprise extends NotificationProvider { name = "apprise"; async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { - let args = [ "-vv", "-b", msg, notification.appriseURL ]; + const args = [ "-vv", "-b", msg, notification.appriseURL ]; if (APPRISE_NOTIFICATION_TITLE) { args.push("-t"); args.push(APPRISE_NOTIFICATION_TITLE); } - let s = childProcess.spawnSync("apprise", args); + const s = childProcess.spawnSync("apprise", args); - let output = (s.stdout) ? s.stdout.toString() : "ERROR: maybe apprise not found"; + const output = (s.stdout) ? s.stdout.toString() : "ERROR: maybe apprise not found"; if (output) { From b6803717462963104648fc61da62e7717a95090d Mon Sep 17 00:00:00 2001 From: Clemens Wolff Date: Sat, 7 May 2022 11:00:57 -0400 Subject: [PATCH 4/4] Make apprise notification title configurable in UI --- server/notification-providers/apprise.js | 11 ++--------- src/components/notifications/Apprise.vue | 3 +++ 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/server/notification-providers/apprise.js b/server/notification-providers/apprise.js index acbc0567..887afbf5 100644 --- a/server/notification-providers/apprise.js +++ b/server/notification-providers/apprise.js @@ -1,22 +1,15 @@ const NotificationProvider = require("./notification-provider"); const childProcess = require("child_process"); -/** - * If you use an apprise backend that requires the notification title to - * be set (such as for example messaging a Zulip Stream), you can use this - * environment variable to configure the title. - */ -const { APPRISE_NOTIFICATION_TITLE } = process.env; - class Apprise extends NotificationProvider { name = "apprise"; async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { const args = [ "-vv", "-b", msg, notification.appriseURL ]; - if (APPRISE_NOTIFICATION_TITLE) { + if (notification.title) { args.push("-t"); - args.push(APPRISE_NOTIFICATION_TITLE); + args.push(notification.title); } const s = childProcess.spawnSync("apprise", args); diff --git a/src/components/notifications/Apprise.vue b/src/components/notifications/Apprise.vue index c10e23cf..7432554c 100644 --- a/src/components/notifications/Apprise.vue +++ b/src/components/notifications/Apprise.vue @@ -8,6 +8,9 @@ https://github.com/caronc/apprise/wiki#notification-services + + +