Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
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();
}