freifunk-bot

Modular parser for the hackerspace door status with handlers for multiple services
git clone git://archive.git.mtrnord.blog/MTRNord/freifunk-bot.git
Log | Files | Refs | README | LICENSE

commit 9fd2b8f149ba591293a9e067b1fcc2e0b6dde55c
parent 8a151fd00add2134b2cb3301d098ef4036f03e00
Author: Marcel Radzio <marcel@radzio-sh.de>
Date:   Sat, 12 Dec 2015 20:47:37 +0100

add Autoupdater

Diffstat:
Mhandlers/irc.js | 3+++
Mmain.js | 11+++++++++++
Mpackage.json | 4+++-
3 files changed, 17 insertions(+), 1 deletion(-)

diff --git a/handlers/irc.js b/handlers/irc.js @@ -9,6 +9,9 @@ var bot = new irc.Client('irc.lugfl.de', 'NordlabBot', { var request = require('request'); var command_config = require("../commands.json"); module.exports = { + ircEndCustom: function (meassage){ + bot.disconnect(meassage); + }, ircPreload: function (){ bot.addListener('error', function(message) { setTimeout(function() { diff --git a/main.js b/main.js @@ -1,4 +1,6 @@ var request = require('request'); +var git = require('simple-git'); +var schedule = require('node-schedule'); //LOAD MODULES DOWN HERE var pushbullet = require('./handlers/pushbullet.js'); var irc = require('./handlers/irc.js'); @@ -61,4 +63,13 @@ request.get('http://www.nordlab-ev.de/doorstate/status.txt', function (error, re }).setMaxListeners(0); } irc.ircBotCommands(); +var j = schedule.scheduleJob('* 2 * * *', function(){ + console.log('Start Update!'); + bot.ircEndCustom('Start Update! Coming back in a few Senconds!'); + git.pull(function(err, update) { + if(update && update.summary.changes) { + require('child_process').exec('npm restart'); + } + }); +}); setTimeout(function() { MakePush(); }, 20000); \ No newline at end of file diff --git a/package.json b/package.json @@ -22,7 +22,9 @@ "dependencies": { "request": "*", "curlrequest": "*", - "irc": "0.4.0" + "irc": "0.4.0", + "simple-git": "*", + "node-schedule": "*" }, "preferGlobal": false, "private": true,