capes.js 1008 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  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.pathname.split("/")[2] || "").split(".")[0];
  7. var def = req.url.query.default;
  8. var rid = req.id;
  9. if (!helpers.id_valid(userId)) {
  10. callback({
  11. status: -2,
  12. body: "Invalid userid"
  13. });
  14. return;
  15. }
  16. // strip dashes
  17. userId = userId.replace(/-/g, "");
  18. try {
  19. helpers.get_cape(rid, userId, function(err, hash, status, image) {
  20. if (err) {
  21. logging.error(rid, err);
  22. if (err.code === "ENOENT") {
  23. // no such file
  24. cache.remove_hash(rid, userId);
  25. }
  26. }
  27. callback({
  28. status: status,
  29. body: image,
  30. type: image ? "image/png" : undefined,
  31. redirect: image ? undefined : def,
  32. hash: hash,
  33. err: err
  34. });
  35. });
  36. } catch(e) {
  37. callback({
  38. status: -1,
  39. err: e
  40. });
  41. }
  42. };