3
0
mirror of https://github.com/reality/dbot.git synced 2024-11-27 22:39:26 +01:00
dbot/modules/web/web.js

51 lines
1.4 KiB
JavaScript
Raw Normal View History

2012-12-24 06:47:47 +01:00
var express = require('express'),
2013-01-13 16:51:54 +01:00
_ = require('underscore')._,
2012-12-24 06:47:47 +01:00
fs = require('fs');
var webInterface = function(dbot) {
var pub = 'public';
var app = express();
app.use(express.static(pub));
app.set('view engine', 'jade');
app.get('/', function(req, res) {
res.render('index', { 'name': dbot.config.name });
});
var server = app.listen(dbot.config.web.webPort);
2012-12-24 06:47:47 +01:00
var reloadPages = function(pages) {
for(var p in pages) {
2013-01-13 16:51:54 +01:00
if(_.has(pages, p)) {
2012-12-24 06:47:47 +01:00
var func = pages[p];
var mod = func.module;
app.get(p, (function(req, resp) {
// Crazy shim to seperate module views.
var shim = Object.create(resp);
shim.render = (function(view, one, two) {
// Render with express.js
resp.render(this.module.name + '/' + view, one, two);
}).bind(this);
shim.render_core = resp.render;
this.call(this.module, req, shim);
}).bind(func));
}
}
2012-12-24 06:47:47 +01:00
};
return {
'name': 'web',
'ignorable': false,
2012-12-24 06:47:47 +01:00
'reloadPages': reloadPages,
'onDestroy': function() {
server.close();
}
};
};
exports.fetch = function(dbot) {
return webInterface(dbot);
};