const io = require('socket.io-client'); const push = require('pushover-notifications'); const util = require('util'); const fs = require('fs'); const configjson = require('./config.json'); const ts_notify = configjson["ts-notify"]; var p = new push({ user: configjson.pushover.user, token: configjson.pushover.token }); var address = "http://" + ts_notify.address + ":" + ts_notify.port; var socket = io(address); socket.on('connect', function() { util.log("Connected to " + address); socket.emit('apiaccess', ts_notify.apikey); }); socket.on('event', function(evt) { var friends = []; if(configjson.follow_file != undefined || fs.existsSync(configjson.follow_file)) { try { var follow_file = fs.readFileSync(configjson.follow_file, {encoding: "UTF-8"}); friends = follow_file.trim().split('\n'); } catch(e) { util.log("Error while reading friends file: " + err.message); return; } } if(friends.indexOf(evt.uid) != -1) { util.log(evt.name + " " + evt.status); var message = evt.name + " " + evt.status; if (ts_notify.friendly_name != undefined || ts_notify.friendly_name != "") { if (evt.status == "connected") { message += " to "; } else if (evt.status == "disconnected") { message += " from "; } else { message += " at "; } message += ts_notify.friendly_name; } p.send({ message: message }, function(err, result) { if(err) { util.log("Error while sending push: " + err.message); } }); } }); function htmlEntities(str) { return String(str).replace(/&/g, '&').replace(//g, '>').replace(new RegExp('"', 'g'), '"'); }