diff --git a/package.nw/GridTracker.html b/package.nw/GridTracker.html index af6a1553..1fe5cf3b 100644 --- a/package.nw/GridTracker.html +++ b/package.nw/GridTracker.html @@ -2978,6 +2978,59 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +
+ + + + + + + + + + +
+ + +
SimplePush API Key
+ +
+
+
+ + + + + + + + + + + + + +
+ + +
Pushover Credentials
+ + +
+ + +
+

diff --git a/package.nw/i18n/de.json b/package.nw/i18n/de.json index 90123370..2feceb7e 100644 --- a/package.nw/i18n/de.json +++ b/package.nw/i18n/de.json @@ -166,6 +166,12 @@ "settings.Alerts.label": "Alarme", "settings.CallRoster.label": "Rufzeichenliste", "settings.OAMS.label": "OAMS", + "settings.OAMS.simplepush.enable.label": "Simplepush Nachrichtenweiterleitung ein/aus", + "settings.OAMS.simplepush.apikey.label": "Simplepush API Key", + "settings.OAMS.pushover.enable.label": "Pushover Nachrichtenweiterleitung ein/aus", + "settings.OAMS.pushover.credentials.label": "Pushover Zugangsdaten", + "settings.OAMS.pushover.username.label": "Benutzername", + "settings.OAMS.pushover.token.label": "Token", "settings.Logbook.label": "Logbook", "settings.Update.label": "Update", "settings.About.label": "Über", diff --git a/package.nw/lib/defaults.js b/package.nw/lib/defaults.js index 1e018b0e..fe08fa6f 100644 --- a/package.nw/lib/defaults.js +++ b/package.nw/lib/defaults.js @@ -193,7 +193,12 @@ var def_msgSettings = { msgFrequencySelect: 0, msgActionSelect: 1, msgAwaySelect: 0, - msgAwayText: "I am away from the shack at the moment" + msgAwayText: "I am away from the shack at the moment", + msgSimplepush: false, + msgSimplePushApiKey: "", + msgPushover: false, + msgPushoverUsername: "", + msgPushoverToken: "" }; var def_receptionSettings = { diff --git a/package.nw/lib/gt.js b/package.nw/lib/gt.js index 2533cc56..37483c96 100644 --- a/package.nw/lib/gt.js +++ b/package.nw/lib/gt.js @@ -10677,6 +10677,16 @@ function setOamsBandActivityNeighbors(checkbox) oamsBandActivityCheck(); } +function setOamsSimplepush(checkbox) +{ + GT.appSettings.msgSimplepush = checkbox.checked; +} + +function setOamsPushover(checkbox) +{ + GT.appSettings.msgPushover = checkbox.checked; +} + function setMsgEnable(checkbox) { GT.appSettings.gtMsgEnable = checkbox.checked; diff --git a/package.nw/lib/gtws.js b/package.nw/lib/gtws.js index ed4f4a4e..46c6d12e 100644 --- a/package.nw/lib/gtws.js +++ b/package.nw/lib/gtws.js @@ -567,6 +567,46 @@ function htmlEntities(str) .replace(/"/g, """); } +function sendSimplePushMessage(cid, jsmesg) +{ + const url = "https://api.simplepush.io/send"; + let data = { key: GT.msgSettings.msgSimplePushApiKey, title: "GridTracker Chat Message", msg: jsmesg.call + ": " + jsmesg.msg }; + getPostBuffer( + url, + null, // callback, + null, + "https", + 443, + data, + 500, // timeoutMs, + null, // timeoutCallback, + "simplepush" + ); +} + +function sendPushOverMessage(cid, jsmesg) +{ + const url = "https://api.pushover.net/1/messages.json"; + let data = { + user: GT.msgSettings.msgPushoverUsername, + token: GT.msgSettings.msgPushoverToken, + title: + "GridTracker Chat Message", + message: jsmesg.call + ": " + jsmesg.msg + }; + getPostBuffer( + url, + null, // callback, + null, + "https", + 443, + data, + 500, // timeoutMs, + null, // timeoutCallback, + "pushover" + ); +} + function gtChatMessage(jsmesg) { if (GT.appSettings.gtMsgEnable == true) @@ -580,7 +620,7 @@ function gtChatMessage(jsmesg) } catch (e) { - jsmesg.msg = "Corrupt message recieved"; + jsmesg.msg = "Corrupt message received"; } if (jsmesg.call != null && jsmesg.call != "" && jsmesg.call != "NOCALL") @@ -589,6 +629,16 @@ function gtChatMessage(jsmesg) GT.gtUnread[cid] = true; GT.gtCurrentMessageCount++; + if (GT.msgSettings.msgSimplepush && GT.msgSettings.msgSimplePushApiKey != null) + { + sendSimplePushMessage(cid, jsmesg); + } + if (GT.msgSettings.msgPushover && GT.msgSettings.pushoverUsername != null && + GT.msgSettings.pushoverToken != null) + { + sendPushOverMessage(cid, jsmesg); + } + if (newChatMessage(cid, jsmesg) == false) alertChatMessage(); if (GT.msgSettings.msgAwaySelect == 1 && !(cid in GT.gtSentAwayToCid))