mirror of
https://github.com/azures04/crafatar.git
synced 2026-03-21 23:41:18 +01:00
Add support for userIds as defaults, ccloses #115
This commit is contained in:
parent
f1fd92f1cf
commit
8c39d0c017
@ -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") {
|
||||
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);
|
||||
}
|
||||
|
||||
@ -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") {
|
||||
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) {
|
||||
|
||||
@ -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") {
|
||||
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) {
|
||||
|
||||
92
test/test.js
92
test/test.js
@ -342,17 +342,17 @@ describe("Crafatar", function() {
|
||||
etag: '"a846b82963"',
|
||||
crc32: 1623808067
|
||||
},
|
||||
"avatar with not existing username": {
|
||||
"avatar with non-existent username": {
|
||||
url: "http://localhost:3000/avatars/0?size=16",
|
||||
etag: '"steve"',
|
||||
crc32: [2416827277, 1243826040]
|
||||
},
|
||||
"avatar with not existing username defaulting to alex": {
|
||||
"avatar with non-existent username defaulting to alex": {
|
||||
url: "http://localhost:3000/avatars/0?size=16&default=alex",
|
||||
etag: '"alex"',
|
||||
crc32: [862751081, 809395677]
|
||||
},
|
||||
"avatar with not existing username defaulting to url": {
|
||||
"avatar with non-existent username defaulting to url": {
|
||||
url: "http://localhost:3000/avatars/0?size=16&default=http://example.com",
|
||||
crc32: 0,
|
||||
redirect: "http://example.com"
|
||||
@ -362,17 +362,17 @@ describe("Crafatar", function() {
|
||||
etag: '"a846b82963"',
|
||||
crc32: 646871998
|
||||
},
|
||||
"helm avatar with not existing username": {
|
||||
"helm avatar with non-existent username": {
|
||||
url: "http://localhost:3000/avatars/0?size=16&helm",
|
||||
etag: '"steve"',
|
||||
crc32: [2416827277, 1243826040]
|
||||
},
|
||||
"helm avatar with not existing username defaulting to alex": {
|
||||
"helm avatar with non-existent username defaulting to alex": {
|
||||
url: "http://localhost:3000/avatars/0?size=16&helm&default=alex",
|
||||
etag: '"alex"',
|
||||
crc32: [862751081, 809395677]
|
||||
},
|
||||
"helm avatar with not existing username defaulting to url": {
|
||||
"helm avatar with non-existent username defaulting to url": {
|
||||
url: "http://localhost:3000/avatars/0?size=16&helm&default=http://example.com",
|
||||
crc32: 0,
|
||||
redirect: "http://example.com"
|
||||
@ -382,17 +382,17 @@ describe("Crafatar", function() {
|
||||
etag: '"a846b82963"',
|
||||
crc32: 1623808067
|
||||
},
|
||||
"avatar with not existing uuid": {
|
||||
"avatar with non-existent uuid": {
|
||||
url: "http://localhost:3000/avatars/00000000000000000000000000000000?size=16",
|
||||
etag: '"steve"',
|
||||
crc32: [2416827277, 1243826040]
|
||||
},
|
||||
"avatar with not existing uuid defaulting to alex": {
|
||||
"avatar with non-existent uuid defaulting to alex": {
|
||||
url: "http://localhost:3000/avatars/00000000000000000000000000000000?size=16&default=alex",
|
||||
etag: '"alex"',
|
||||
crc32: [862751081, 809395677]
|
||||
},
|
||||
"avatar with not existing uuid defaulting to url": {
|
||||
"avatar with non-existent uuid defaulting to url": {
|
||||
url: "http://localhost:3000/avatars/00000000000000000000000000000000?size=16&default=http://example.com",
|
||||
crc32: 0,
|
||||
redirect: "http://example.com"
|
||||
@ -402,17 +402,17 @@ describe("Crafatar", function() {
|
||||
etag: '"a846b82963"',
|
||||
crc32: 646871998
|
||||
},
|
||||
"helm avatar with not existing uuid": {
|
||||
"helm avatar with non-existent uuid": {
|
||||
url: "http://localhost:3000/avatars/00000000000000000000000000000000?size=16&helm",
|
||||
etag: '"steve"',
|
||||
crc32: [2416827277, 1243826040]
|
||||
},
|
||||
"helm avatar with not existing uuid defaulting to alex": {
|
||||
"helm avatar with non-existent uuid defaulting to alex": {
|
||||
url: "http://localhost:3000/avatars/00000000000000000000000000000000?size=16&helm&default=alex",
|
||||
etag: '"alex"',
|
||||
crc32: [862751081, 809395677]
|
||||
},
|
||||
"helm avatar with not existing uuid defaulting to url": {
|
||||
"helm avatar with non-existent uuid defaulting to url": {
|
||||
url: "http://localhost:3000/avatars/00000000000000000000000000000000?size=16&helm&default=http://example.com",
|
||||
crc32: 0,
|
||||
redirect: "http://example.com"
|
||||
@ -422,11 +422,11 @@ describe("Crafatar", function() {
|
||||
etag: '"3f688e0e69"',
|
||||
crc32: [989800403, 1901140141]
|
||||
},
|
||||
"cape with not existing username": {
|
||||
"cape with non-existent username": {
|
||||
url: "http://localhost:3000/capes/0",
|
||||
crc32: 0
|
||||
},
|
||||
"cape with not existing username defaulting to url": {
|
||||
"cape with non-existent username defaulting to url": {
|
||||
url: "http://localhost:3000/capes/0?default=http://example.com",
|
||||
crc32: 0,
|
||||
redirect: "http://example.com"
|
||||
@ -436,11 +436,11 @@ describe("Crafatar", function() {
|
||||
etag: '"3f688e0e69"',
|
||||
crc32: [989800403, 1901140141]
|
||||
},
|
||||
"cape with not existing uuid": {
|
||||
"cape with non-existent uuid": {
|
||||
url: "http://localhost:3000/capes/00000000000000000000000000000000",
|
||||
crc32: 0
|
||||
},
|
||||
"cape with not existing uuid defaulting to url": {
|
||||
"cape with non-existent uuid defaulting to url": {
|
||||
url: "http://localhost:3000/capes/00000000000000000000000000000000?default=http://example.com",
|
||||
crc32: 0,
|
||||
redirect: "http://example.com"
|
||||
@ -450,17 +450,17 @@ describe("Crafatar", function() {
|
||||
etag: '"a846b82963"',
|
||||
crc32: 26500336
|
||||
},
|
||||
"skin with not existing username": {
|
||||
"skin with non-existent username": {
|
||||
url: "http://localhost:3000/skins/0",
|
||||
etag: '"steve"',
|
||||
crc32: 981937087
|
||||
},
|
||||
"skin with not existing username defaulting to alex": {
|
||||
"skin with non-existent username defaulting to alex": {
|
||||
url: "http://localhost:3000/skins/0?default=alex",
|
||||
etag: '"alex"',
|
||||
crc32: 2298915739
|
||||
},
|
||||
"skin with not existing username defaulting to url": {
|
||||
"skin with non-existent username defaulting to url": {
|
||||
url: "http://localhost:3000/skins/0?default=http://example.com",
|
||||
crc32: 0,
|
||||
redirect: "http://example.com"
|
||||
@ -470,17 +470,17 @@ describe("Crafatar", function() {
|
||||
etag: '"a846b82963"',
|
||||
crc32: 26500336
|
||||
},
|
||||
"skin with not existing uuid": {
|
||||
"skin with non-existent uuid": {
|
||||
url: "http://localhost:3000/skins/00000000000000000000000000000000",
|
||||
etag: '"steve"',
|
||||
crc32: 981937087
|
||||
},
|
||||
"skin with not existing uuid defaulting to alex": {
|
||||
"skin with non-existent uuid defaulting to alex": {
|
||||
url: "http://localhost:3000/skins/00000000000000000000000000000000?default=alex",
|
||||
etag: '"alex"',
|
||||
crc32: 2298915739
|
||||
},
|
||||
"skin with not existing uuid defaulting to url": {
|
||||
"skin with non-existent uuid defaulting to url": {
|
||||
url: "http://localhost:3000/skins/00000000000000000000000000000000?default=http://example.com",
|
||||
crc32: 0,
|
||||
redirect: "http://example.com"
|
||||
@ -490,17 +490,17 @@ describe("Crafatar", function() {
|
||||
etag: '"a846b82963"',
|
||||
crc32: [353633671, 370672768]
|
||||
},
|
||||
"head render with not existing username": {
|
||||
"head render with non-existent username": {
|
||||
url: "http://localhost:3000/renders/head/0?scale=2",
|
||||
etag: '"steve"',
|
||||
crc32: [883439147, 433083528]
|
||||
},
|
||||
"head render with not existing username defaulting to alex": {
|
||||
"head render with non-existent username defaulting to alex": {
|
||||
url: "http://localhost:3000/renders/head/0?scale=2&default=alex",
|
||||
etag: '"alex"',
|
||||
crc32: [1240086237, 1108800327]
|
||||
},
|
||||
"head render with not existing username defaulting to url": {
|
||||
"head render with non-existent username defaulting to url": {
|
||||
url: "http://localhost:3000/renders/head/0?scale=2&default=http://example.com",
|
||||
crc32: 0,
|
||||
redirect: "http://example.com"
|
||||
@ -510,17 +510,17 @@ describe("Crafatar", function() {
|
||||
etag: '"a846b82963"',
|
||||
crc32: [3456497067, 3490318764]
|
||||
},
|
||||
"helm head render with not existing username": {
|
||||
"helm head render with non-existent username": {
|
||||
url: "http://localhost:3000/renders/head/0?scale=2&helm",
|
||||
etag: '"steve"',
|
||||
crc32: [1858563554, 2647471936]
|
||||
},
|
||||
"helm head render with not existing username defaulting to alex": {
|
||||
"helm head render with non-existent username defaulting to alex": {
|
||||
url: "http://localhost:3000/renders/head/0?scale=2&helm&default=alex",
|
||||
etag: '"alex"',
|
||||
crc32: [2963161105, 1769904825]
|
||||
},
|
||||
"helm head render with not existing username defaulting to url": {
|
||||
"helm head render with non-existent username defaulting to url": {
|
||||
url: "http://localhost:3000/renders/head/0?scale=2&helm&default=http://example.com",
|
||||
crc32: 0,
|
||||
redirect: "http://example.com"
|
||||
@ -530,17 +530,17 @@ describe("Crafatar", function() {
|
||||
etag: '"a846b82963"',
|
||||
crc32: [353633671, 370672768]
|
||||
},
|
||||
"head render with not existing uuid": {
|
||||
"head render with non-existent uuid": {
|
||||
url: "http://localhost:3000/renders/head/00000000000000000000000000000000?scale=2",
|
||||
etag: '"steve"',
|
||||
crc32: [883439147, 433083528]
|
||||
},
|
||||
"head render with not existing uuid defaulting to alex": {
|
||||
"head render with non-existent uuid defaulting to alex": {
|
||||
url: "http://localhost:3000/renders/head/00000000000000000000000000000000?scale=2&default=alex",
|
||||
etag: '"alex"',
|
||||
crc32: [1240086237, 1108800327]
|
||||
},
|
||||
"head render with not existing uuid defaulting to url": {
|
||||
"head render with non-existent uuid defaulting to url": {
|
||||
url: "http://localhost:3000/renders/head/00000000000000000000000000000000?scale=2&default=http://example.com",
|
||||
crc32: 0,
|
||||
redirect: "http://example.com"
|
||||
@ -550,17 +550,17 @@ describe("Crafatar", function() {
|
||||
etag: '"a846b82963"',
|
||||
crc32: [3456497067, 3490318764]
|
||||
},
|
||||
"helm head render with not existing uuid": {
|
||||
"helm head render with non-existent uuid": {
|
||||
url: "http://localhost:3000/renders/head/00000000000000000000000000000000?scale=2&helm",
|
||||
etag: '"steve"',
|
||||
crc32: [1858563554, 2647471936]
|
||||
},
|
||||
"helm head render with not existing uuid defaulting to alex": {
|
||||
"helm head render with non-existent uuid defaulting to alex": {
|
||||
url: "http://localhost:3000/renders/head/00000000000000000000000000000000?scale=2&helm&default=alex",
|
||||
etag: '"alex"',
|
||||
crc32: [2963161105, 1769904825]
|
||||
},
|
||||
"helm head render with not existing uuid defaulting to url": {
|
||||
"helm head render with non-existent uuid defaulting to url": {
|
||||
url: "http://localhost:3000/renders/head/00000000000000000000000000000000?scale=2&helm&default=http://example.com",
|
||||
crc32: 0,
|
||||
redirect: "http://example.com"
|
||||
@ -570,17 +570,17 @@ describe("Crafatar", function() {
|
||||
etag: '"a846b82963"',
|
||||
crc32: [1291941229, 2628108474]
|
||||
},
|
||||
"body render with not existing username": {
|
||||
"body render with non-existent username": {
|
||||
url: "http://localhost:3000/renders/body/0?scale=2",
|
||||
etag: '"steve"',
|
||||
crc32: [2652947188, 2115706574]
|
||||
},
|
||||
"body render with not existing username defaulting to alex": {
|
||||
"body render with non-existent username defaulting to alex": {
|
||||
url: "http://localhost:3000/renders/body/0?scale=2&default=alex",
|
||||
etag: '"alex"',
|
||||
crc32: [407932087, 2516216042]
|
||||
},
|
||||
"body render with not existing username defaulting to url": {
|
||||
"body render with non-existent username defaulting to url": {
|
||||
url: "http://localhost:3000/renders/body/0?scale=2&default=http://example.com",
|
||||
crc32: 0,
|
||||
redirect: "http://example.com"
|
||||
@ -590,17 +590,17 @@ describe("Crafatar", function() {
|
||||
etag: '"a846b82963"',
|
||||
crc32: [3556188297, 4269754007]
|
||||
},
|
||||
"helm body render with not existing username": {
|
||||
"helm body render with non-existent username": {
|
||||
url: "http://localhost:3000/renders/body/0?scale=2&helm",
|
||||
etag: '"steve"',
|
||||
crc32: [272191039, 542896675]
|
||||
},
|
||||
"helm body render with not existing username defaulting to alex": {
|
||||
"helm body render with non-existent username defaulting to alex": {
|
||||
url: "http://localhost:3000/renders/body/0?scale=2&helm&default=alex",
|
||||
etag: '"alex"',
|
||||
crc32: [737759773, 66512449]
|
||||
},
|
||||
"helm body render with not existing username defaulting to url": {
|
||||
"helm body render with non-existent username defaulting to url": {
|
||||
url: "http://localhost:3000/renders/body/0?scale=2&helm&default=http://example.com",
|
||||
crc32: 0,
|
||||
redirect: "http://example.com"
|
||||
@ -610,17 +610,17 @@ describe("Crafatar", function() {
|
||||
etag: '"a846b82963"',
|
||||
crc32: [1291941229, 2628108474]
|
||||
},
|
||||
"body render with not existing uuid": {
|
||||
"body render with non-existent uuid": {
|
||||
url: "http://localhost:3000/renders/body/00000000000000000000000000000000?scale=2",
|
||||
etag: '"steve"',
|
||||
crc32: [2652947188, 2115706574]
|
||||
},
|
||||
"body render with not existing uuid defaulting to alex": {
|
||||
"body render with non-existent uuid defaulting to alex": {
|
||||
url: "http://localhost:3000/renders/body/00000000000000000000000000000000?scale=2&default=alex",
|
||||
etag: '"alex"',
|
||||
crc32: [407932087, 2516216042]
|
||||
},
|
||||
"body render with not existing uuid defaulting to url": {
|
||||
"body render with non-existent uuid defaulting to url": {
|
||||
url: "http://localhost:3000/renders/body/00000000000000000000000000000000?scale=2&default=http://example.com",
|
||||
crc32: 0,
|
||||
redirect: "http://example.com"
|
||||
@ -630,17 +630,17 @@ describe("Crafatar", function() {
|
||||
etag: '"a846b82963"',
|
||||
crc32: [3556188297, 4269754007]
|
||||
},
|
||||
"helm body render with not existing uuid": {
|
||||
"helm body render with non-existent uuid": {
|
||||
url: "http://localhost:3000/renders/body/00000000000000000000000000000000?scale=2&helm",
|
||||
etag: '"steve"',
|
||||
crc32: [272191039, 542896675]
|
||||
},
|
||||
"helm body render with not existing uuid defaulting to alex": {
|
||||
"helm body render with non-existent uuid defaulting to alex": {
|
||||
url: "http://localhost:3000/renders/body/00000000000000000000000000000000?scale=2&helm&default=alex",
|
||||
etag: '"alex"',
|
||||
crc32: [737759773, 66512449]
|
||||
},
|
||||
"helm body render with not existing uuid defaulting to url": {
|
||||
"helm body render with non-existent uuid defaulting to url": {
|
||||
url: "http://localhost:3000/renders/body/00000000000000000000000000000000?scale=2&helm&default=http://example.com",
|
||||
crc32: 0,
|
||||
redirect: "http://example.com"
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user