Old ngn4 website
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

52 lines
1.4 KiB

module.exports = function(set, app) {
var keys = Object.keys(set.generators);
for(var i = 0; i < keys.length; ++i) {
var bindObj = {key: keys[i]}
app.get('/i/' + keys[i], (function (req, res) {
var key = this.key;
var gen = set.generators[key];
var agent = req.headers['user-agent'];
var results = {
genders: gen.genders,
formats: {}
};
var formatKeys = Object.keys(gen.formats);
for(var j = 0; j < formatKeys.length; ++j) {
var format = gen.formats[formatKeys[j]];
results.formats[formatKeys[j]] = format.name;
}
if(agent.indexOf('curl/') != -1 || req.query.hasOwnProperty('t')) {
var str = '';
for(var i = 0; i < results.genders.length; ++i) {
if(i > 0) {
str += '\n';
}
str += 'Gender: ' + results.genders[i];
}
var lastFormat = "";
for(var j = 0; j < formatKeys.length; ++j) {
var formatKey = formatKeys[j].split('.')[0];
if(formatKey != lastFormat) {
str += '\nFormat: ' + formatKey + ' ' + results.formats[formatKeys[j]];
}
lastFormat = formatKey;
}
res.header("Content-Type", "text/plain; charset=utf-8");
res.end(str);
} else {
res.header("Content-Type", "application/json; charset=utf-8");
res.end(JSON.stringify(results));
}
}).bind(bindObj));
}
}