Don't store helm image when user has no helm, fix #16

This commit is contained in:
jomo 2014-11-24 23:20:25 +01:00
parent 0734060d96
commit 040aeb1c0c
2 changed files with 33 additions and 21 deletions

View File

@ -3,6 +3,7 @@ var logging = require('./logging');
var config = require('./config'); var config = require('./config');
var cache = require('./cache'); var cache = require('./cache');
var skins = require('./skins'); var skins = require('./skins');
var fs = require('fs');
// 0098cb60-fa8e-427c-b299-793cbd302c9a // 0098cb60-fa8e-427c-b299-793cbd302c9a
var valid_uuid = /^([0-9a-f-]{32,36}|[a-zA-Z0-9_]{1,16})$/; // uuid|username var valid_uuid = /^([0-9a-f-]{32,36}|[a-zA-Z0-9_]{1,16})$/; // uuid|username
@ -106,7 +107,12 @@ exp.get_avatar = function(uuid, helm, size, callback) {
logging.log("\nrequest: " + uuid); logging.log("\nrequest: " + uuid);
exp.get_image_hash(uuid, function(err, status, hash) { exp.get_image_hash(uuid, function(err, status, hash) {
if (hash) { if (hash) {
var filepath = __dirname + '/../' + (helm ? config.helms_dir : config.faces_dir) + hash + ".png"; var facepath = __dirname + '/../' + config.faces_dir + hash + ".png";
var helmpath = __dirname + '/../' + config.helms_dir + hash + ".png";
var filepath = facepath;
if (helm && fs.existsSync(helmpath)) {
filepath = helmpath;
}
skins.resize_img(filepath, size, function(img_err, result) { skins.resize_img(filepath, size, function(img_err, result) {
if (img_err) { if (img_err) {
callback(img_err, -1, null); callback(img_err, -1, null);

View File

@ -1,4 +1,6 @@
var logging = require('./logging');
var lwip = require('lwip'); var lwip = require('lwip');
var fs = require('fs');
var exp = {}; var exp = {};
@ -28,7 +30,7 @@ exp.extract_face = function(buffer, outname, callback) {
// result is saved to a file called +outname+ // result is saved to a file called +outname+
// +callback+ contains error // +callback+ contains error
exp.extract_helm = function(facefile, buffer, outname, callback) { exp.extract_helm = function(facefile, buffer, outname, callback) {
lwip.open(buffer, "png", function(err, skin) { lwip.open(buffer, "png", function(err, skin_img) {
if (err) { if (err) {
callback(err); callback(err);
} else { } else {
@ -36,25 +38,29 @@ exp.extract_helm = function(facefile, buffer, outname, callback) {
if (err) { if (err) {
callback(err); callback(err);
} else { } else {
skin.crop(40, 8, 47, 15, function(err, helm_img) { face_img.toBuffer("png", {compression: "none"}, function(err, face_buffer) {
if (err) { skin_img.crop(40, 8, 47, 15, function(err, helm_img) {
callback(err); if (err) {
} else { callback(err);
face_img.paste(0, 0, helm_img, function(err, face_helm_img) { } else {
if (err) { face_img.paste(0, 0, helm_img, function(err, face_helm_img) {
callback(err); if (err) {
} else { callback(err);
face_helm_img.writeFile(outname, function(err) { } else {
if (err) { face_helm_img.toBuffer("png", {compression: "none"}, function(err, face_helm_buffer) {
callback(err); if (face_helm_buffer.toString() !== face_buffer.toString()) {
} else { face_helm_img.writeFile(outname, function(err) {
callback(null); callback(err);
// JavaScript callback hell <3 });
} } else {
}); logging.log("Helm image is the same as face image, not storing!");
} callback(null);
}); }
} });
}
});
}
});
}); });
} }
}); });