From eb362be8a6b8483c6a9e8f3e29fd21dc3061f468 Mon Sep 17 00:00:00 2001 From: Darren Gallagher Date: Mon, 3 Feb 2014 16:40:47 +0000 Subject: [PATCH] Add node to allow Pushover notification --- social/pushover/57-pushover.html | 57 ++++++++++++++++++++++++ social/pushover/57-pushover.js | 69 +++++++++++++++++++++++++++++ social/pushover/icons/pushover.png | Bin 0 -> 1075 bytes 3 files changed, 126 insertions(+) create mode 100644 social/pushover/57-pushover.html create mode 100644 social/pushover/57-pushover.js create mode 100644 social/pushover/icons/pushover.png diff --git a/social/pushover/57-pushover.html b/social/pushover/57-pushover.html new file mode 100644 index 00000000..33e28db7 --- /dev/null +++ b/social/pushover/57-pushover.html @@ -0,0 +1,57 @@ + + + + + + + diff --git a/social/pushover/57-pushover.js b/social/pushover/57-pushover.js new file mode 100644 index 00000000..51b62720 --- /dev/null +++ b/social/pushover/57-pushover.js @@ -0,0 +1,69 @@ +/** + * Copyright 2013 IBM Corp. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + **/ + +var RED = require(process.env.NODE_RED_HOME+"/red/red"); +var PushOver = require('pushover-notifications'); +var util = require('util'); + + +try { + var pushovercredentials = RED.settings.pushover || require(process.env.NODE_RED_HOME+"/../pushovercredentials.js"); +} +catch(err) { + util.log("[57-pushover.js] Error: Failed to load Pushover credentials"); +} + +if (pushovercredentials) { + var pusher = new PushOver( { + user: pushovercredentials.userkey, + token: pushovercredentials.token, + }); +} + +function PushoverNode(n) { + RED.nodes.createNode(this,n); + this.title = n.title; + var node = this; + this.on("input",function(msg) { + var titl = this.title||msg.topic||"Node-RED"; + if (typeof(msg.payload) == 'object') { + msg.payload = JSON.stringify(msg.payload); + } + if (pushovercredentials) { + var pomsg = { + message: msg.payload, + title: titl, + sound: 'magic', + priority: 1 + }; + try { + //pusher.note(deviceId, titl, msg.payload, function(err, response) { + pusher.send( pomsg, function(err, response) { + if (err) node.error(err); + console.log(response); + }); + } + catch (err) { + node.error(err); + } + } + else { + node.warn("Pushover credentials not set/found. See node info."); + } + }); +} + +RED.nodes.registerType("pushover",PushoverNode); diff --git a/social/pushover/icons/pushover.png b/social/pushover/icons/pushover.png new file mode 100644 index 0000000000000000000000000000000000000000..3cf11b3f86c822c535da593bf142c7fb892dd533 GIT binary patch literal 1075 zcmV-31kC%1P)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2i*o3 z7C8+N2LVI?00Xm0L_t(o!|hnRjub}}J*RqR8GBdOY5`#k4)6oXNDx4dgpmWwvVXv- zGbBEPfWQ%f|G}AK%f^TwK*$+#=H(&8V~v1acFu9Iw{~lKdWL3dabj*V-96R!aqhjR zZZ+^u{v%=Eg|>&bj{rDF@&bU5Z6}g{*}hKlw(YwqrAoNstEtoarjw)b821`~twi$~FXmH2|M= zRd;H&Q@&pXFxm%ZTmkT5L_fi1gRVX%c?iIJwN`BpNxmOC$DL58lmx)>!isIUDDegI z3joYSA}N)HmdgB+Z1&zGYKsei0K5u?&VfxBCdnY4H2^0f*qWdbft<0uLeiZ(R)#^+ zMM)2XfwucnE(L~<&?a?5f7#~{3AO~gA$6SkFg=U@iK!W`XwlD_~L)Bo4 z^`J|ZEw#&Bx!K=_w9y-M?89$ooNb}Uj()yC@+aF%wZ&x{B%cGgMDmXqht-Zakrc@f z0GupdL}h_JC3zt3HFppIFedpY$*s!b0?8!+O`n-70cdP5zsX5sR!(id${R(e;ew{} z@Ag#bFLpfIRozLMY$cQAW~Je>mo<+vcb~;IYoIP<6~N({PeAv=gN#Rb%K9$%SVb* zna8MNk{rcpad|FfhDRF!HjC3^Ik1hRO0!erAewQ@p@w9p-X{Pa&;7t=JJ~)!@;d521*k-x19h0002ovPDHLkV1j^}