var _ = require('underscore')._; var pages = function(dbot) { var polls = dbot.db.polls; var pages = { // Shows the results of a poll '/polls/:key': function(req, res) { var key = req.params.key.toLowerCase(); if(_.has(dbot.db.polls, key)) { var totalVotes = _.reduce(dbot.db.polls[key].votes, function(memo, option) { return memo += option; }, 0); res.render('polls', { 'name': dbot.config.name, 'description': dbot.db.polls[key].description, 'votees': Object.keys(dbot.db.polls[key].votees), 'options': dbot.db.polls[key].votes, locals: { 'totalVotes': totalVotes, 'url_regex': RegExp.prototype.url_regex() } }); } else { res.render('error', { 'name': dbot.config.name, 'message': 'No polls under that key.' }); } }, // Lists all of the polls '/poll': function(req, res) { res.render('polllist', { 'name': dbot.config.name, 'polllist': Object.keys(dbot.db.polls) }); } }; return pages; }; exports.fetch = function(dbot) { return pages(dbot); };