From 958b1ea907478f3843d02edbeaea2a33ba3293ca Mon Sep 17 00:00:00 2001 From: jomo Date: Fri, 2 Jan 2015 21:55:38 +0100 Subject: [PATCH] remove expressjs from avatars --- routes/avatars.js | 29 ++++++++++++++--------------- server.js | 31 +++++++++++++++++-------------- 2 files changed, 31 insertions(+), 29 deletions(-) diff --git a/routes/avatars.js b/routes/avatars.js index 3d50b32..74e2a08 100644 --- a/routes/avatars.js +++ b/routes/avatars.js @@ -1,4 +1,3 @@ -var router = require("express").Router(); var networking = require("../modules/networking"); var logging = require("../modules/logging"); var helpers = require("../modules/helpers"); @@ -13,12 +12,13 @@ var human_status = { "-1": "error" }; -/* GET avatar request. */ -router.get("/:uuid.:ext?", function(req, res) { - var uuid = (req.params.uuid || ""); - var size = parseInt(req.query.size) || config.default_size; - var def = req.query.default; - var helm = req.query.hasOwnProperty("helm"); +// GET avatar request +module.exports = function(req, res) { + logging.debug(req.url.pathname); + var uuid = (req.url.pathname.split("/")[2] || ""); + var size = parseInt(req.url.query.size) || config.default_size; + var def = req.url.query.default; + var helm = req.url.query.hasOwnProperty("helm"); var start = new Date(); var etag = null; @@ -26,10 +26,12 @@ router.get("/:uuid.:ext?", function(req, res) { if (size < config.min_size || size > config.max_size) { // "Unprocessable Entity", valid request, but semantically erroneous: // https://tools.ietf.org/html/rfc4918#page-78 - res.status(422).send("422 Invalid size"); + res.writeHead(422); + res.end("Invalid size"); return; } else if (!helpers.uuid_valid(uuid)) { - res.status(422).send("422 Invalid UUID"); + res.writeHead(422); + res.end("Invalid UUID"); return; } @@ -43,7 +45,7 @@ router.get("/:uuid.:ext?", function(req, res) { logging.error(uuid + " " + err); } etag = hash && hash.substr(0, 32) || "none"; - var matches = req.get("If-None-Match") == '"' + etag + '"'; + var matches = req.headers["if-none-match"] == '"' + etag + '"'; if (image) { var http_status = 200; if (matches) { @@ -51,7 +53,7 @@ router.get("/:uuid.:ext?", function(req, res) { } else if (err) { http_status = 503; } - logging.debug("Etag: " + req.get("If-None-Match")); + logging.debug("Etag: " + req.headers["if-none-match"]); logging.debug("matches: " + matches); logging.log("status: " + http_status); sendimage(http_status, status, image); @@ -94,7 +96,4 @@ router.get("/:uuid.:ext?", function(req, res) { }); res.end(http_status == 304 ? null : image); } -}); - - -module.exports = router; \ No newline at end of file +}; \ No newline at end of file diff --git a/server.js b/server.js index 6dc6ccc..d9653a8 100644 --- a/server.js +++ b/server.js @@ -15,7 +15,7 @@ var routes = { }; function asset_request(req, res) { - var filename = __dirname + "/public/" + req.pathname; + var filename = __dirname + "/public/" + req.url.pathname; fs.exists(filename, function(exists) { if (exists) { fs.readFile(filename, function(err, contents) { @@ -41,27 +41,30 @@ function asset_request(req, res) { function requestHandler(req, res) { var querystring = url.parse(req.url).query; + var request = req; // we need to use url.parse and give the result to url.parse because nodejs - var prequest = url.parse(req.url, querystring); + request.url = url.parse(req.url, querystring); + request.url.query = request.url.query || {}; - console.log("Request: " + prequest.pathname); - console.log("Params: " + JSON.stringify(prequest.query)); + var local_path = request.url.pathname.split("/")[1]; + console.log("Request: " + request.url.pathname + " (" + local_path + ")"); + console.log(request.headers); - switch (prequest.pathname) { - case "/": - routes.index(prequest, res); + switch (local_path) { + case "": + routes.index(request, res); break; - case "/avatars": - routes.avatars(prequest, res); + case "avatars": + routes.avatars(request, res); break; - case "/skins": - routes.skins(prequest, res); + case "skins": + routes.skins(request, res); break; - case "/renders": - routes.renders(prequest, res); + case "renders": + routes.renders(request, res); break; default: - asset_request(prequest, res); + asset_request(request, res); } }