/** * Module Name: Project * Description: Web page which shows git status and other various stats about * the dbot. */ _ = require('underscore'), exec = require('child_process').exec; var project = function(dbot) { this.api = { 'configList' : function(callback){ var list = []; if(_.has(dbot.modules,'dent')){ list.push(dbot.t("dent-account", { "username": dbot.config.modules.dent.username })); if(_.has(dbot.config.modules.dent.dentQuotes)) { list.push(dbot.t("dent-push")); } } if(_.has(dbot.modules,'link')){ if(dbot.config.modules.link.autoTitle){ list.push(dbot.t("link-autotitle")); } } if(_.has(dbot.modules,'quotes')){ list.push(dbot.t("quote-rmlimit", { "limit": dbot.config.modules.quotes.rmLimit })); } if(_.has(dbot.modules,'report')){ if(dbot.config.modules.report.notifyVoice){ list.push(dbot.t("report-notifyvoice")); } } if(_.has(dbot.modules,'web')){ list.push(dbot.t("web-port", { "port": dbot.config.modules.web.webPort })); } return list; }, 'translationProgress' : function(callback){ var translation = [] ; var str = _.filter(dbot.strings, function(strings, key) { return _.include(this.config.string_exceptions, key) != true; }, this); str = _.values(str); for (var i = 0; i < str.length; i++){ var cur = _.keys(str[i]); for (var j = 0; j < cur.length; j++) { translation = translation.concat(cur[j]); } } var t = {}; for (var k = 0; k < translation.length; k++) { var curr = translation[k]; if (t[curr]) { t[curr]["count"] += 1; } else { t[curr] = {}; t[curr]["iso"] = curr; t[curr]["count"] = 1; t[curr]["own"] = dbot.strings[curr][curr]; t[curr]["local"] = dbot.t(curr); t[curr]["english"] = dbot.strings[curr]["en"]; } } console.log(t); return t; } }; this.api['translationProgress'].external = true; }; exports.fetch = function(dbot){ return new project(dbot); };