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.
48 lines
1.2 KiB
48 lines
1.2 KiB
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+'"');
|
|
}
|
|
}
|