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.

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