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.

48 lines
1.2 KiB

9 years ago
  1. var fs = require('fs');
  2. var path = require('path');
  3. var IMGDIR = dir = path.join(__dirname, '/../www-root/img/');
  4. function existsSync(filename) {
  5. try {
  6. fs.accessSync(filename);
  7. return true;
  8. } catch(ex) {
  9. return false;
  10. }
  11. }
  12. module.exports = function(set, app, data) {
  13. var keys = Object.keys(set.generators);
  14. var cache = {};
  15. for(var i = 0; i < keys.length; ++i) {
  16. var fileName = "bg_" + keys[i].split('/').join('_') + ".png";
  17. if(existsSync(IMGDIR + fileName)) {
  18. fileName = "/img/" + fileName;
  19. } else {
  20. fileName = "bg_" + keys[i].split('/')[0] + ".png";
  21. if(existsSync(IMGDIR + fileName)) {
  22. fileName = "/img/" + fileName;
  23. } else {
  24. fileName = null;
  25. }
  26. }
  27. var binding = {'json': JSON.stringify(fileName), 'fileName': fileName};
  28. app.get('/b/' + keys[i], (function (req, res) {
  29. var agent = req.headers['user-agent'];
  30. res.header("Content-Type", "application/json; charset=utf-8");
  31. if(agent.indexOf('curl/') != -1) {
  32. res.end(this.fileName);
  33. } else {
  34. res.end(this.json);
  35. }
  36. }).bind(binding));
  37. console.log('[INFO] bg for "'+keys[i]+'" = "'+fileName+'"');
  38. }
  39. }