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'); ...@@ -2,18 +2,29 @@ var httpreq = require('httpreq');
var Mustache = require('mustache'); var Mustache = require('mustache');
var URL = 'https://status.stratum0.org/status.json'; var URL = 'https://status.stratum0.org/status.json';
var TEMPLATE = ''; var TEMPLATES = '';
require('fs').readFile('modules/brand/template.mustache', 'utf-8', function (err, data) { 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 = {}; var status = {};
function renderStatus () { function renderStatus(sock, everything) {
return Mustache.render(TEMPLATE, status); 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) { httpreq.get(URL, function (err, res) {
var state = JSON.parse(res.body).state; var state = JSON.parse(res.body).state;
cb(state); cb(state);
...@@ -22,19 +33,24 @@ function fetchStatus (cb) { ...@@ -22,19 +33,24 @@ function fetchStatus (cb) {
module.exports = function (io) { module.exports = function (io) {
function update() { function update() {
var firstTime = true;
fetchStatus(function (state) { fetchStatus(function (state) {
if (status.lastchange != state.lastchange) { if (status.lastchange != state.lastchange) {
var d = new Date(state.lastchange*1000); var d = new Date(state.lastchange*1000);
state.since = DOW[d.getDay()]+', '+pad(d.getHours(),2)+':' state.since = DOW[d.getDay()]+', '+pad(d.getHours(),2)+':'
+pad(d.getMinutes(),2); +pad(d.getMinutes(),2);
status = state; 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 setInterval(update, 2*60*1000); //every 2 minutes
update(); 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> <img src="/modules/brand/stratum0_logo.svg"><br>
<h3>Space is <h3 data-infodisplay-outlet="status"></h3>
{{#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>
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