ls-manual-update

Checks for manual update of ls-vertretunsplan-desktop and tells outdated clients
git clone git://archive.git.mtrnord.blog/MTRNord/ls-manual-update.git
Log | Files | Refs | LICENSE

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 });