capes.js 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  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 URL Path"
  14. });
  15. return;
  16. }
  17. if (!helpers.id_valid(userId)) {
  18. callback({
  19. status: -2,
  20. body: "Invalid UserID"
  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. logging.error(rid, err);
  30. if (err.code === "ENOENT") {
  31. // no such file
  32. cache.remove_hash(rid, userId);
  33. }
  34. }
  35. callback({
  36. status: status,
  37. body: image,
  38. type: image ? "image/png" : undefined,
  39. redirect: image ? undefined : def,
  40. hash: hash,
  41. err: err
  42. });
  43. });
  44. } catch(e) {
  45. callback({
  46. status: -1,
  47. err: e
  48. });
  49. }
  50. };