81 lines
2.1 KiB
81 lines
2.1 KiB
var MAX_COUNT = 64;
|
|
|
|
function generateName(req, res, set, cat, id, format, gender, count)
|
|
{
|
|
var key = this.key;
|
|
var agent = req.headers['user-agent'];
|
|
|
|
if(typeof(cat) != 'undefined') {
|
|
id = cat + '/' + id;
|
|
}
|
|
var gen = set.getGenerator(req.params.id);
|
|
|
|
if(typeof(gender) === 'undefined' && gen != null)
|
|
{
|
|
gender = gen.genders[0];
|
|
}
|
|
|
|
if(typeof(count) === 'undefined')
|
|
{
|
|
count = 1;
|
|
}
|
|
|
|
if(count > MAX_COUNT) {
|
|
count = MAX_COUNT;
|
|
}
|
|
|
|
if(agent.indexOf('curl/') != -1 || req.query.hasOwnProperty('t')) {
|
|
if(gen != null)
|
|
{
|
|
var results = "";
|
|
|
|
for(var i = 0; i < count; ++i) {
|
|
results += gen.generate(format, gender) + '\n';
|
|
}
|
|
|
|
res.header("Content-Type", "text/plain; charset=utf-8");
|
|
res.end(results);
|
|
} else {
|
|
res.header("Content-Type", "text/plain; charset=utf-8");
|
|
res.end("ERROR: GENERATOR NOT FOUND");
|
|
}
|
|
} else {
|
|
if(gen != null) {
|
|
var results = [];
|
|
for(var i = 0; i < count; ++i) {
|
|
results.push(gen.generate(format, gender));
|
|
}
|
|
|
|
res.header("Content-Type", "application/json; charset=utf-8");
|
|
res.end(JSON.stringify(results));
|
|
} else {
|
|
res.header("Content-Type", "application/json; charset=utf-8");
|
|
res.end(JSON.stringify(null));
|
|
}
|
|
}
|
|
}
|
|
|
|
module.exports = function(set, app) {
|
|
var min = 1;
|
|
var max = 32;
|
|
|
|
app.get('/g/:id', function (req, res) {
|
|
generateName(req, res, set, undefined, req.params.id);
|
|
});
|
|
|
|
app.get('/g/:cat/:id', function (req, res) {
|
|
generateName(req, res, set, req.params.cat, req.params.id);
|
|
});
|
|
|
|
app.get('/g/:cat/:id/:format', function (req, res) {
|
|
generateName(req, res, set, req.params.cat, req.params.id, req.params.format);
|
|
});
|
|
|
|
app.get('/g/:cat/:id/:format/:gender', function (req, res) {
|
|
generateName(req, res, set, req.params.cat, req.params.id, req.params.format, req.params.gender);
|
|
});
|
|
|
|
app.get('/g/:cat/:id/:format/:gender/:count', function (req, res) {
|
|
generateName(req, res, set, req.params.cat, req.params.id, req.params.format, req.params.gender, req.params.count);
|
|
});
|
|
}
|