Add support for userIds as defaults, ccloses #115

This commit is contained in:
Jake
2015-06-24 01:23:22 -05:00
parent f1fd92f1cf
commit 8c39d0c017
4 changed files with 118 additions and 74 deletions

View File

@@ -4,16 +4,32 @@ var config = require("../config");
var skins = require("../skins");
var cache = require("../cache");
var path = require("path");
var url = require("url");
function handle_default(img_status, userId, size, def, err, callback) {
if (def && def !== "steve" && def !== "alex") {
callback({
status: img_status,
redirect: def,
err: err
});
function handle_default(img_status, userId, size, def, req, err, callback) {
def = def || skins.default_skin(userId);
if (def !== "steve" && def !== "alex") {
if (helpers.id_valid(def)) {
// clean up the old URL to match new image
var parsed = req.url;
delete parsed.query["default"];
delete parsed.search;
parsed.pathname = parsed.pathname.replace(userId, def);
var newUrl = url.format(parsed);
callback({
status: img_status,
redirect: newUrl,
err: err
});
} else {
callback({
status: img_status,
redirect: def,
err: err
});
}
} else {
def = def || skins.default_skin(userId);
// handle steve and alex
skins.resize_img(path.join(__dirname, "..", "public", "images", def + ".png"), size, function(resize_err, image) {
callback({
status: img_status,
@@ -80,10 +96,10 @@ module.exports = function(req, callback) {
hash: hash
});
} else {
handle_default(status, userId, size, def, err, callback);
handle_default(status, userId, size, def, req, err, callback);
}
});
} catch(e) {
} catch (e) {
logging.error(req.id, "error:", e.stack);
handle_default(-1, userId, size, def, e, callback);
}

View File

@@ -11,17 +11,30 @@ var fs = require("fs");
// helmet is query param
// TODO: The Type logic should be two separate GET functions once response methods are extracted
// default alex/steve images can be rendered, but
// custom images will not be
function handle_default(rid, scale, helm, body, img_status, userId, size, def, err, callback) {
if (def && def !== "steve" && def !== "alex") {
callback({
status: img_status,
redirect: def,
err: err
});
function handle_default(img_status, userId, size, def, req, err, callback) {
def = def || skins.default_skin(userId);
if (def !== "steve" && def !== "alex") {
if (helpers.id_valid(def)) {
// clean up the old URL to match new image
var parsed = req.url;
delete parsed.query["default"];
delete parsed.search;
parsed.pathname = parsed.pathname.replace(userId, def);
var newUrl = url.format(parsed);
callback({
status: img_status,
redirect: newUrl,
err: err
});
} else {
callback({
status: img_status,
redirect: def,
err: err
});
}
} else {
def = def || skins.default_skin(userId);
// handle steve and alex
fs.readFile(path.join(__dirname, "..", "public", "images", def + "_skin.png"), function (fs_err, buf) {
// we render the default skins, but not custom images
renders.draw_model(rid, buf, scale, helm, body, function(render_err, def_img) {

View File

@@ -4,15 +4,30 @@ var skins = require("../skins");
var path = require("path");
var lwip = require("lwip");
function handle_default(img_status, userId, def, err, callback) {
if (def && def !== "steve" && def !== "alex") {
callback({
status: img_status,
redirect: def,
err: err
});
function handle_default(img_status, userId, size, def, req, err, callback) {
def = def || skins.default_skin(userId);
if (def !== "steve" && def !== "alex") {
if (helpers.id_valid(def)) {
// clean up the old URL to match new image
var parsed = req.url;
delete parsed.query["default"];
delete parsed.search;
parsed.pathname = parsed.pathname.replace(userId, def);
var newUrl = url.format(parsed);
callback({
status: img_status,
redirect: newUrl,
err: err
});
} else {
callback({
status: img_status,
redirect: def,
err: err
});
}
} else {
def = def || skins.default_skin(userId);
// handle steve and alex
lwip.open(path.join(__dirname, "..", "public", "images", def + "_skin.png"), function(lwip_err, image) {
if (image) {
image.toBuffer("png", function(buf_err, buffer) {