remove expressjs from avatars

This commit is contained in:
jomo 2015-01-02 21:55:38 +01:00
parent 3ac98c88cf
commit 958b1ea907
2 changed files with 31 additions and 29 deletions

View File

@ -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;
};

View File

@ -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);
}
}