index.js (2035B)
1 var app = require('express')(); 2 var http = require('http').Server(app); 3 var io = require('socket.io')(http); 4 var request = require('request'); 5 var jsonfile = require('jsonfile') 6 var findRemoveSync = require('find-remove'); 7 var fs = require('fs'); 8 var _ = require('lodash') 9 var port = process.env.PORT || 3000; 10 11 app.get('/', function(req, res){ 12 res.send('<h1>Hello world</h1>'); 13 }); 14 15 io.on('connection', function(socket){ 16 console.log('a user connected'); 17 18 socket.on('RupdateStatus', function(msg){ 19 console.log("got msg") 20 //TODO ADD LOGIC 21 //get /repos/MTRNord/ls-vertretungsplan-desktop/releases/latest 22 console.log("aquire file"); 23 var options = { 24 url: 'https://api.github.com/repos/MTRNord/ls-vertretungsplan-desktop/releases/latest', 25 headers: { 26 'User-Agent': 'ls-vertretungsplan' 27 } 28 }; 29 request(options, function (error, response, body) { 30 if (!error && response.statusCode == 200) { 31 jsonfile.writeFile("cache.json", body) 32 var release = JSON.parse(body); 33 var version = release["tag_name"] 34 var assets = release["assets"] 35 console.log("request made"); 36 console.log("Länge" + assets.length); 37 _.find(assets, function (key) { 38 if (key["name"] == 'local') { 39 var local_asset = key["name"] 40 var release_body = release["body"] 41 console.log("local"); 42 io.emit('AupdateStatus', {'status': 'local', 'body': release_body}); 43 }else { 44 if (_.findIndex(assets, key) == assets.length-1) { 45 console.log("not local"); 46 io.emit('AupdateStatus', {'status': 'NOTlocal'}); 47 } 48 // }else { 49 // io.emit('AupdateStatus', 'bug'); 50 // } 51 console.log("Länge X " + _.findIndex(assets, key)); 52 } 53 }) 54 }else { 55 console.log(response); 56 console.error(error); 57 } 58 }) 59 }); 60 }); 61 62 http.listen(port, function(){ 63 console.log('listening on *:' + port); 64 });