var exec = require('child_process').exec,
    request = require('request');

var pages = function(dbot) {
    var quoteCat = dbot.db.quoteArrs[dbot.config.name],
        rev, diff;

    exec("git rev-list --all | wc -l", function(a, b, c) {
        rev = b
    });
    exec("git log -1", function(a, b, c) {
        diff = b
    });
    
    /* TODO: merge back into github module */
    var milestones;
    request("https://api.github.com/repos/" + dbot.config.github.defaultrepo + "/milestones?state=open", function(e, r, b){
        milestones = JSON.parse(b);
    });


    return {
        '/project': function(req, res) {
            var quote = dbot.config.name;
            if(quoteCat) {
                quote = quoteCat[Math.floor(Math.random()*quoteCat.length)];
            }

            res.render('project', {
                "name": dbot.config.name,
                "intro": dbot.t("dbotintro", {
                    "botname": dbot.config.name
                }),
                "curr839": dbot.config.language,
                "currver": dbot.config.version,
                "currlang": dbot.t("dbotspeaks",{
                    "lang839": dbot.config.language,
                    "langen": dbot.strings[dbot.config.language]["en"],
                    "lang": dbot.t(dbot.config.language),
                    "name": dbot.config.name
                }),
                "projectstatus": dbot.t("projectstatus"),
                "revnum": dbot.t("revnum",{
                    "name": dbot.config.name,
                    "rev": rev,
                    "ver": "abcdef" // TODO, obviously
                }),
                "modules": dbot.config.moduleNames,
                "loadmod": dbot.t("loadedmodules"),
                "debugmode": dbot.t("debugmode-" + dbot.config.debugMode),
                "milestones": milestones,
                "milestoneprog": dbot.t("milestoneprog"),
                "config": dbot.t("configoptions"),
                "milestonename": dbot.t("milestonename"),
                "openmilestone": dbot.t("openmilestone"),
                "closedmilestone": dbot.t("closedmilestone"),
                "development": dbot.t("development"),
                "dquote": quote,
                "diff": diff,
                "pagetitle": dbot.t("pagetitle", {
                    "botname": dbot.config.name
                })
           });
        },
    };
};

exports.fetch = function(dbot) {
    return pages(dbot);
};