dbot/modules/web.js

45 lines
1.2 KiB
JavaScript
Raw Normal View History

2011-09-13 22:23:46 +02:00
var express = require('express');
var webInterface = function(dbot) {
var dbot = dbot;
2011-11-08 19:59:29 +01:00
var pub = 'public';
2011-09-13 22:55:20 +02:00
var app = express.createServer();
app.use(express.compiler({ src: pub, enable: ['sass'] }));
app.use(express.static(pub));
app.set('view engine', 'jade');
2011-09-13 22:23:46 +02:00
app.get('/', function(req, res) {
2011-11-08 16:36:18 +01:00
res.redirect('/quotes');
//res.render('index', { });
});
app.get('/quotes', function(req, res) {
// Lists the quote categories
res.render('quotelist', { 'quotelist': Object.keys(dbot.db.quoteArrs) });
2011-09-13 22:23:46 +02:00
});
2011-09-15 13:30:52 +02:00
app.get('/quotes/:key', function(req, res) {
2011-11-08 16:36:18 +01:00
// Lists the quotes in a category
2011-09-15 13:34:01 +02:00
var key = req.params.key.toLowerCase();
if(dbot.db.quoteArrs.hasOwnProperty(key)) {
res.render('quotes', { 'quotes': dbot.db.quoteArrs[key], locals: {url_regex: RegExp.prototype.url_regex()}});
2011-09-15 13:30:52 +02:00
} else {
res.render('error', { 'message': 'No quotes under that key.' });
}
});
2011-11-08 16:36:18 +01:00
app.listen(9443);
2011-09-14 18:24:32 +02:00
return {
'onDestroy': function() {
2011-09-14 18:46:59 +02:00
app.close();
2011-09-14 18:24:32 +02:00
}
};
2011-09-13 22:23:46 +02:00
};
exports.fetch = function(dbot) {
return webInterface(dbot);
};