Skip to content
Snippets Groups Projects
Commit 8219e8e4 authored by Kasalehlia's avatar Kasalehlia
Browse files

hardened brand module

parent 152b136a
No related branches found
No related tags found
No related merge requests found
......@@ -2,18 +2,29 @@ var httpreq = require('httpreq');
var Mustache = require('mustache');
var URL = 'https://status.stratum0.org/status.json';
var TEMPLATE = '';
var TEMPLATES = '';
require('fs').readFile('modules/brand/template.mustache', 'utf-8', function (err, data) {
TEMPLATE = data;
TEMPLATES.template = data;
});
require('fs').readFile('modules/brand/status.mustache', 'utf-8', function (err, data) {
TEMPLATES.status = data;
});
var status = {};
function renderStatus () {
return Mustache.render(TEMPLATE, status);
function renderStatus(sock, everything) {
var sendInner = function () {
sock.emit('brand.status', Mustache.render(TEMPLATES.status, status));
}
if (everything) {
sock.emit('brand', Mustache.render(TEMPLATES.template, status));
setTimeout(sendInner, 3000);
} else {
sendInner();
}
}
function fetchStatus (cb) {
function fetchStatus(cb) {
httpreq.get(URL, function (err, res) {
var state = JSON.parse(res.body).state;
cb(state);
......@@ -22,19 +33,24 @@ function fetchStatus (cb) {
module.exports = function (io) {
function update() {
var firstTime = true;
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());
renderStatus();
}
if (firstTime && status) {
io.on('connection', function (sock) {
renderStatus(sock, true);
});
renderStatus(io, true);
firstTime = false;
}
});
}
io.on('connection', function (sock) {
sock.emit('brand', renderStatus());
});
setInterval(update, 2*60*1000); //every 2 minutes
update();
}
Space is {{#open}}<span class="open">open</span> on <span class="person">{{trigger_person}}</span>{{/open}}
{{^open}}<span class="closed">closed</span>{{/open}}
<br>since {{since}}
<img src="/modules/brand/stratum0_logo.svg"><br>
<h3>Space is
{{#open}}<span class="open">open</span> on <span class="person">{{trigger_person}}</span>{{/open}}
{{^open}}<span class="closed">closed</span>{{/open}}
<br>since {{since}}
</h3>
<h3 data-infodisplay-outlet="status"></h3>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment