capes.js 1.1 KB

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