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.

55 lines
1.4 KiB

8 years ago
8 years ago
8 years ago
8 years ago
  1. module.exports = function(set, app, data, scriptMethods) {
  2. var keys = Object.keys(set.generators);
  3. var cache = {};
  4. var defaultKey = null;
  5. var setJson = JSON.stringify(set.export());
  6. for(var i = 0; i < keys.length; ++i) {
  7. var bindObj = {key: keys[i]}
  8. var func = (function (req, res) {
  9. var key = this.key;
  10. var gen = set.generators[key];
  11. if(!cache.hasOwnProperty(key)) {
  12. data.generators[key].catId = key.split('/')[0];
  13. cache[key] = JSON.stringify(data.generators[key]);
  14. }
  15. res.header("Content-Type", "application/json; charset=utf-8");
  16. res.end(cache[key]);
  17. }).bind(bindObj);
  18. app.get('/d/' + keys[i], func);
  19. if(i === 0) {
  20. app.get('/d/default', func);
  21. defaultKey = keys[i];
  22. }
  23. }
  24. app.get('/d/set', function(req, res) {
  25. res.header("Content-Type", "application/json; charset=utf-8");
  26. res.end(setJson);
  27. });
  28. scriptMethods.getDefaultDataKey = function() {
  29. return defaultKey;
  30. }
  31. scriptMethods.getInitDataFromCookie = function(cookies) {
  32. var key;
  33. if(Object.prototype.hasOwnProperty.call(cookies, 'last_generator')) {
  34. key = cookies['last_generator'];
  35. } else {
  36. key = defaultKey;
  37. }
  38. if(!cache.hasOwnProperty(key)) {
  39. data.generators[key].catId = key.split('/')[0];
  40. cache[key] = JSON.stringify(data.generators[key]);
  41. }
  42. return cache[key];
  43. }
  44. }