UNPKG

anthtrigger

Version:

Trigger events via http service

82 lines (67 loc) 1.76 kB
os = require 'os' Package = require '../package.json' https = require 'https' compareVersion = require 'compare-version' nonAuthList = [ '/assets/css/bootstrap.css' '/components/jquery/dist/jquery.min.js' '/favicon.ico' '/checkUpdate' '/page/login.html' '/login' ] getVersionFromGithub = (callback)-> options = { hostname: 'api.github.com', path: '/repos/ijse/anthTrigger/releases', method: 'GET', headers: { 'User-Agent': 'node.js, anthTrigger' } } https.request options, (resp)-> result = '' resp.on 'data', (data)-> result += data resp.on 'end', -> callback(null, result) .on 'error', (e)-> callback(e) .end() exports.attach = (app)-> app.get '/ping', (req, res)-> res.send('pong!') app.get '/whereAmI', (req, res)-> res.json { ip: req.socket.localAddress hostname: os.hostname() version: Package.version } app.get '/checkUpdate', (req, res)-> result = {} getVersionFromGithub (err, data)-> try latestRelease = JSON.parse(data)[0] localVer = "v#{Package.version}" curVer = latestRelease.tag_name result.hasNew = compareVersion(curVer, localVer) > 0 result.curRelease = latestRelease catch e result.hasNew = false res.json result app.get '*', (req, res, next)-> return next() if req.session.user or nonAuthList.indexOf(req.url) isnt -1 if req.xhr res.json { success: false error: 'Not login' } return else res.redirect('/page/login.html') return require('./users').route(app) require('./script').route(app) require('./scriptLogs').route(app) require('./events').route(app) require('./dashboard').route(app) require('./settings').route(app)