Skip to content
Snippets Groups Projects
brand.js 1.08 KiB
Newer Older
Kasalehlia's avatar
Kasalehlia committed
var httpreq = require('httpreq');
var Mustache = require('mustache');

var URL = 'https://status.stratum0.org/status.json';
var TEMPLATE = '';
require('fs').readFile('modules/brand/template.mustache', 'utf-8', function (err, data) {
    TEMPLATE = data;
});

var status = {};

function renderStatus () {
    return Mustache.render(TEMPLATE, status);
}

function fetchStatus (cb) {
    httpreq.get(URL, function (err, res) {
        var state = JSON.parse(res.body).state;
        cb(state);
    });
}

module.exports = function (io) {
    function update() {
        fetchStatus(function (state) {
            if (status.lastchange != state.lastchange) {
                var d = new Date(state.lastchange*1000);
                state.since = DOW[d.getDay()]+', '+pad(d.getHours(),2)+':'
                    +pad(d.getMinutes(),2);
                status = state;
                io.emit('brand', renderStatus());
            }
        });
    }
    io.on('connection', function (sock) {
        sock.emit('brand', renderStatus());
    });
    setInterval(update, 2*60*1000); //every 2 minutes
    update();
}