|
|
var express = require('express'), https = require('https');
//---- Construct ----
function WEB(db, options) { var __self = this;
__self.db = db;
__self.port = options.port || 9000; __self.title = options.title; __self.slogan = options.slogan; __self.logo = options.logo; __self.twitter = options.twitter; __self.statdir = options.statdir; }
// ---- Methods ----
WEB.prototype.start = function () { var __self = this; __self.srv = express(); __self.srv.set('view engine', 'jade'); __self.srv.set('views', 'web/templates'); __self.srv.use(express.static('./web/public'));
// ---- Routes -----
__self.srv.get('/', function(req, res) { //lets get the top 5
sql = 'SELECT * FROM viewers ORDER BY points DESC LIMIT 10;'; __self.db.execute(sql, function(rows) { res.render('index', { title: __self.title, slogan: __self.slogan, logo: __self.logo, twitter: __self.twitter, rows: rows, }); }); }); __self.srv.get('/ladder', function(req, res) { //get the whole viewer list
sql = 'SELECT * FROM viewers ORDER BY points DESC;'; __self.db.execute(sql, function(rows) { res.render('ladder', { title: __self.title, slogan: __self.slogan, logo: __self.logo, twitter: __self.twitter, rows: rows, }); }); }); __self.srv.get('/stats', function(req, res) { //get the whole viewer list
res.render('stats', { title: __self.title, slogan: __self.slogan, logo: __self.logo, twitter: __self.twitter, statdir: __self.statdir, }); }); __self.srv.get('/api/test', function(req, res) { res.send("Hey, its Potatr. This data was pulled from the web."); }); __self.srv.all('/api/data', function(req, res) { sql = 'SELECT * FROM viewers ORDER BY points DESC;'; __self.db.execute(sql, function(rows) { ladder_data = new Object(); rows.forEach(function(element, index, array){ ladder_data[element.user] = element.points; }); res.send(ladder_data); }); });
__self.srv.listen(__self.port); console.log('Started website at '+__self.port);
};
module.exports = function (db, options) { return new WEB(db, options); };
|