Commit
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
var fs = require('fs');
|
||||
var path = require('path');
|
||||
|
||||
var IMGDIR = dir = path.join(__dirname, '/../www-root/img/');
|
||||
|
||||
function existsSync(filename) {
|
||||
try {
|
||||
fs.accessSync(filename);
|
||||
return true;
|
||||
} catch(ex) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = function(set, app, data) {
|
||||
var keys = Object.keys(set.generators);
|
||||
var cache = {};
|
||||
|
||||
for(var i = 0; i < keys.length; ++i) {
|
||||
var fileName = "bg_" + keys[i].split('/').join('_') + ".png";
|
||||
|
||||
if(existsSync(IMGDIR + fileName)) {
|
||||
fileName = "/img/" + fileName;
|
||||
} else {
|
||||
fileName = "bg_" + keys[i].split('/')[0] + ".png";
|
||||
|
||||
if(existsSync(IMGDIR + fileName)) {
|
||||
fileName = "/img/" + fileName;
|
||||
} else {
|
||||
fileName = null;
|
||||
}
|
||||
}
|
||||
|
||||
var binding = {'json': JSON.stringify(fileName), 'fileName': fileName};
|
||||
app.get('/b/' + keys[i], (function (req, res) {
|
||||
var agent = req.headers['user-agent'];
|
||||
|
||||
res.header("Content-Type", "application/json; charset=utf-8");
|
||||
if(agent.indexOf('curl/') != -1) {
|
||||
res.end(this.fileName);
|
||||
} else {
|
||||
res.end(this.json);
|
||||
}
|
||||
}).bind(binding));
|
||||
|
||||
console.log('[INFO] bg for "'+keys[i]+'" = "'+fileName+'"');
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
module.exports = function(set, app, data) {
|
||||
var keys = Object.keys(set.generators);
|
||||
var cache = {};
|
||||
|
||||
for(var i = 0; i < keys.length; ++i) {
|
||||
var bindObj = {key: keys[i]}
|
||||
|
||||
var func = (function (req, res) {
|
||||
var key = this.key;
|
||||
var gen = set.generators[key];
|
||||
|
||||
if(!cache.hasOwnProperty(key)) {
|
||||
data.generators[key].catId = key.split('/')[0];
|
||||
cache[key] = JSON.stringify(data.generators[key]);
|
||||
}
|
||||
|
||||
res.header("Content-Type", "application/json; charset=utf-8");
|
||||
res.end(cache[key]);
|
||||
}).bind(bindObj);
|
||||
|
||||
app.get('/d/' + keys[i], func);
|
||||
|
||||
if(i === 0) {
|
||||
app.get('/d/default', func);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,81 @@
|
||||
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);
|
||||
});
|
||||
}
|
||||
@@ -0,0 +1,52 @@
|
||||
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));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
module.exports = function(set, app) {
|
||||
var setHeader = {
|
||||
categories: set.categoryNames,
|
||||
generators: {}
|
||||
};
|
||||
|
||||
var genKeys = Object.keys(set.generators);
|
||||
var catKeys = Object.keys(set.categoryNames);
|
||||
for(var i = 0; i < genKeys.length; ++i) {
|
||||
setHeader.generators[genKeys[i]] = set.generators[genKeys[i]].name;
|
||||
}
|
||||
|
||||
app.get('/l/generators', function (req, res) {
|
||||
res.header("Content-Type", "application/json; charset=utf-8");
|
||||
res.end(JSON.stringify(setHeader));
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user