commit bc32c7e24f01beffd5073b66d22b66d67d741039
parent 87aca3ac54f1e8519f41b95b04c925dbcf512358
Author: Marcel Radzio <marcel@radzio-sh.de>
Date: Thu, 10 Dec 2015 22:13:01 +0100
restructering
Diffstat:
7 files changed, 122 insertions(+), 49 deletions(-)
diff --git a/INSTALL.md b/INSTALL.md
@@ -1,4 +1,19 @@
+Main
+====
+!!!IMPORTANT!!! RUN HANDLER INSTALL BEFORE SCRIPT START!!!
+
1. npm install request
-2. npm install curlrequest
-3. add your own pushbullet API key
-4. node feedGen.js
+2. node main.js
+
+Pushbullet Handler
+==================
+1. npm install curlrequest
+2. Add ``var pushbullet = require('./handlers/pushbullet.js');`` to main.js at the Load section in the Top
+3. Add ``pushbullet.pushbulletSend(door_status);`` to main.js at the Runtime section in the middle
+4. add your own pushbullet API key in "handler/pushbullet.js"
+
+IRC Handler
+===========
+1. npm install irc
+2. Add ``var irc = require('./handlers/irc.js');`` to main.js at the Load section in the Top
+3. Add ``irc.ircSend(door_status);`` to main.js at the Runtime section in the middle
diff --git a/README.md b/README.md
@@ -1,2 +1,2 @@
-# nordlab-pushbulletDoor
-RSS-Feed Generator for pushing Door Status to Pushbullet Channel
+# nordlab-hackerspace-door
+Modular parser for the hackerspace door status with handlers for multiple services
diff --git a/feedGen.js b/feedGen.js
@@ -1,44 +0,0 @@
-var request = require('request');
-var curl = require('curlrequest');
-
-function sleep(milliseconds) {
- var start = new Date().getTime();
- for (var i = 0; i < 1e7; i++) {
- if ((new Date().getTime() - start) > milliseconds){
- break;
- }
- }
-}
-var door_status2 = "1";
-function MakePush(){
-request.get('http://www.nordlab-ev.de/doorstate/status.txt', function (error, response, body) {
- if (!error && response.statusCode == 200) {
- var door_status = body;
- //console.log(body);
- }else{
- var door_status = error;
- //console.log(error);
- }
- console.log("Current Real State:" + door_status + "\n");
- console.log("Current Last State:" + door_status2 + "\n");
- console.log("Next Check!");
- if (door_status2 !== door_status){
- door_status2 = door_status;
- if (door_status == "geschlossen"){
- door_status = "closed";
- }else{
- door_status = "open";
- }
-
- curl.request({ url: 'https://api.pushbullet.com/v2/pushes', method: 'POST', headers: { "Access-Token": 'Access-Token', "Content-Type": 'application/json' }, data: '{"channel_tag": "space-door", "body":"'+ door_status + '","title":"Door Status","type":"note"}'}, function (err, stdout, meta) {
- console.log(err);
- console.log('\n STDOUT: \n');
- console.log(stdout);
- });
- }
- console.log("WAIT!");
- sleep(9*1000);
- MakePush();
-});
-}
-MakePush();
diff --git a/handlers/irc.js b/handlers/irc.js
@@ -0,0 +1,14 @@
+var irc = require('irc');
+module.exports = {
+ ircSend: function (door_status){
+ var config = {
+ channels: ["#hackerspace"],
+ server: "irc.lugfl.de",
+ botName: "DoorBot"
+ };
+ var bot = new irc.Client(config.server, config.botName, {
+ channels: config.channels
+ });
+ bot.say('#hackerspace', "Door Staus changed to: " + door_status);
+ }
+};
+\ No newline at end of file
diff --git a/handlers/pushbullet.js b/handlers/pushbullet.js
@@ -0,0 +1,10 @@
+var curl = require('curlrequest');
+module.exports = {
+ pushbulletSend: function (door_status){
+ curl.request({ url: 'https://api.pushbullet.com/v2/pushes', method: 'POST', headers: { "Access-Token": 'Access-Token', "Content-Type": 'application/json' }, data: '{"channel_tag": "space-door", "body":"'+ door_status + '","title":"Door Status","type":"note"}'}, function (err, stdout, meta) {
+ console.log(err);
+ console.log('\n STDOUT: \n');
+ console.log(stdout);
+ });
+ }
+};
+\ No newline at end of file
diff --git a/main.js b/main.js
@@ -0,0 +1,44 @@
+var request = require('request');
+//LOAD MODULES DOWN HERE
+var pushbullet = require('./handlers/pushbullet.js');
+var irc = require('./handlers/irc.js');
+
+
+function sleep(milliseconds) {
+ var start = new Date().getTime();
+ for (var i = 0; i < 1e7; i++) {
+ if ((new Date().getTime() - start) > milliseconds){
+ break;
+ }
+ }
+}
+var door_status2 = "1";
+function MakePush(){
+request.get('http://www.nordlab-ev.de/doorstate/status.txt', function (error, response, body) {
+ if (!error && response.statusCode == 200) {
+ var door_status = body;
+ //console.log(body);
+ }else{
+ var door_status = error;
+ //console.log(error);
+ }
+ console.log("Current Real State:" + door_status + "\n");
+ console.log("Current Last State:" + door_status2 + "\n");
+ console.log("Next Check!");
+ if (door_status2 !== door_status){
+ door_status2 = door_status;
+ if (door_status == "geschlossen"){
+ door_status = "closed";
+ }else{
+ door_status = "open";
+ }
+ //ADD MODULE RUNTIMES DOWN HERE
+ pushbullet.pushbulletSend(door_status);
+ //irc.ircSend(door_status);
+ }
+ console.log("WAIT!");
+ sleep(9*1000);
+ MakePush();
+});
+}
+MakePush();
diff --git a/package.json b/package.json
@@ -0,0 +1,31 @@
+{
+ "name": "nordlab-hackerspace-door",
+ "version": "0.0.1",
+ "description": "Modular parser for the hackerspace door status with handlers for multiple services",
+ "author": "Marcel Radzio <info@nordgedanken.de>",
+ "scripts": {
+ "start": "node main.js"
+ },
+ "main": "main.js",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/MTRNord/nordlab-nordlab-hackerspace-door"
+ },
+ "bugs": {
+ "url": "https://github.com/MTRNord/nordlab-nordlab-hackerspace-door/issues"
+ },
+ "keywords": [
+ "door",
+ "services",
+ "notification"
+ ],
+ "dependencies": {
+ "request": "*",
+ "curlrequest": "*",
+ "irc": "*",
+ },
+ "preferGlobal": false,
+ "private": true,
+ "license": "MIT"
+}
+
+\ No newline at end of file