capes.js 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. var logging = require("../logging");
  2. var helpers = require("../helpers");
  3. var cache = require("../cache");
  4. // GET cape request
  5. module.exports = function(req, callback) {
  6. var userId = (req.url.path_list[1] || "").split(".")[0];
  7. var def = req.url.query.default;
  8. var rid = req.id;
  9. // check for extra paths
  10. if (req.url.path_list.length > 2) {
  11. callback({
  12. status: -2,
  13. body: "Invalid Path",
  14. code: 404
  15. });
  16. return;
  17. }
  18. if (!helpers.id_valid(userId)) {
  19. callback({
  20. status: -2,
  21. body: "Invalid UserID"
  22. });
  23. return;
  24. }
  25. // strip dashes
  26. userId = userId.replace(/-/g, "");
  27. try {
  28. helpers.get_cape(rid, userId, function(err, hash, status, image) {
  29. if (err) {
  30. logging.error(rid, err);
  31. if (err.code === "ENOENT") {
  32. // no such file
  33. cache.remove_hash(rid, userId);
  34. }
  35. }
  36. callback({
  37. status: status,
  38. body: image,
  39. type: image ? "image/png" : undefined,
  40. redirect: image ? undefined : def,
  41. hash: hash,
  42. err: err
  43. });
  44. });
  45. } catch(e) {
  46. callback({
  47. status: -1,
  48. err: e
  49. });
  50. }
  51. };