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
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));
|
|
}
|
|
}
|