From 103519637f43ffbfa74cf9f6b0ae849917267645 Mon Sep 17 00:00:00 2001 From: Jake Date: Mon, 2 Feb 2015 17:47:22 -0600 Subject: [PATCH] Rename hash vars to something that makes more sense in the specific context --- modules/cache.js | 20 ++++----- modules/helpers.js | 96 +++++++++++++++++++++---------------------- modules/networking.js | 9 ++-- 3 files changed, 62 insertions(+), 63 deletions(-) diff --git a/modules/cache.js b/modules/cache.js index 8d0bb42..9cd7d77 100644 --- a/modules/cache.js +++ b/modules/cache.js @@ -35,11 +35,11 @@ function connect_redis() { }); } -// sets the date of the face file belonging to +hash+ to now +// sets the date of the face file belonging to +skin_hash+ to now // the helms file is ignored because we only need 1 file to read/write from -function update_file_date(rid, hash) { - if (hash) { - var path = config.faces_dir + hash + ".png"; +function update_file_date(rid, skin_hash) { + if (skin_hash) { + var path = config.faces_dir + skin_hash + ".png"; fs.exists(path, function(exists) { if (exists) { var date = new Date(); @@ -102,17 +102,17 @@ exp.update_timestamp = function(rid, userId, hash) { update_file_date(rid, hash); }; -// create the key +userId+, store +skin+ hash, +cape+ hash and time -exp.save_hash = function(rid, userId, skin, cape) { +// create the key +userId+, store +skin_hash+ hash, +cape_hash+ hash and time +exp.save_hash = function(rid, userId, skin_hash, cape_hash) { logging.log(rid + "cache: saving hash"); - logging.log(rid + "skin:" + skin + " cape:" + cape); + logging.log(rid + "skin:" + skin_hash + " cape:" + cape_hash); var time = new Date().getTime(); // store shorter null byte instead of "null" - skin = skin || "."; - cape = cape || "."; + skin_hash = skin_hash || "."; + cape_hash = cape_hash || "."; // store userId in lower case if not null userId = userId && userId.toLowerCase(); - redis.hmset(userId, "s", skin, "c", cape, "t", time); + redis.hmset(userId, "s", skin_hash, "c", cape_hash, "t", time); }; exp.remove_hash = function(rid, userId) { diff --git a/modules/helpers.js b/modules/helpers.js index 322a878..31482b9 100644 --- a/modules/helpers.js +++ b/modules/helpers.js @@ -18,18 +18,18 @@ function get_hash(url) { function store_skin(rid, userId, profile, details, callback) { networking.get_skin_url(rid, userId, profile, function(url) { if (url) { - var hash = get_hash(url); - if (details && details.skin === hash) { - cache.update_timestamp(rid, userId, hash); - callback(null, hash); + var skin_hash = get_hash(url); + if (details && details.skin === skin_hash) { + cache.update_timestamp(rid, userId, skin_hash); + callback(null, skin_hash); } else { - logging.log(rid + "new skin hash: " + hash); - var facepath = __dirname + "/../" + config.faces_dir + hash + ".png"; - var helmpath = __dirname + "/../" + config.helms_dir + hash + ".png"; + logging.log(rid + "new skin hash: " + skin_hash); + var facepath = __dirname + "/../" + config.faces_dir + skin_hash + ".png"; + var helmpath = __dirname + "/../" + config.helms_dir + skin_hash + ".png"; fs.exists(facepath, function(exists) { if (exists) { logging.log(rid + "skin already exists, not downloading"); - callback(null, hash); + callback(null, skin_hash); } else { networking.get_from(rid, url, function(img, response, err) { if (err || !img) { @@ -44,7 +44,7 @@ function store_skin(rid, userId, profile, details, callback) { skins.extract_helm(rid, facepath, img, helmpath, function(err) { logging.log(rid + "helm extracted"); logging.debug(rid + helmpath); - callback(err, hash); + callback(err, skin_hash); }); } }); @@ -62,17 +62,17 @@ function store_skin(rid, userId, profile, details, callback) { function store_cape(rid, userId, profile, details, callback) { networking.get_cape_url(rid, userId, profile, function(url) { if (url) { - var hash = get_hash(url); - if (details && details.cape === hash) { - cache.update_timestamp(rid, userId, hash); - callback(null, hash); + var cape_hash = get_hash(url); + if (details && details.cape === cape_hash) { + cache.update_timestamp(rid, userId, cape_hash); + callback(null, cape_hash); } else { - logging.log(rid + "new cape hash: " + hash); - var capepath = __dirname + "/../" + config.capes_dir + hash + ".png"; + logging.log(rid + "new cape hash: " + cape_hash); + var capepath = __dirname + "/../" + config.capes_dir + cape_hash + ".png"; fs.exists(capepath, function(exists) { if (exists) { logging.log(rid + "cape already exists, not downloading"); - callback(null, hash); + callback(null, cape_hash); } else { networking.get_from(rid, url, function(img, response, err) { if (err || !img) { @@ -81,7 +81,7 @@ function store_cape(rid, userId, profile, details, callback) { } else { skins.save_image(img, capepath, function(err) { logging.log(rid + "cape saved"); - callback(err, hash); + callback(err, cape_hash); }); } }); @@ -212,14 +212,14 @@ exp.get_image_hash = function(rid, userId, type, callback) { // handles requests for +userId+ avatars with +size+ -// callback contains error, status, image buffer, hash +// callback contains error, status, image buffer, skin hash // image is the user's face+helm when helm is true, or the face otherwise // for status, see get_image_hash exp.get_avatar = function(rid, userId, helm, size, callback) { - exp.get_image_hash(rid, userId, "skin", function(err, status, hash) { - if (hash) { - var facepath = __dirname + "/../" + config.faces_dir + hash + ".png"; - var helmpath = __dirname + "/../" + config.helms_dir + hash + ".png"; + exp.get_image_hash(rid, userId, "skin", function(err, status, skin_hash) { + if (skin_hash) { + var facepath = __dirname + "/../" + config.faces_dir + skin_hash + ".png"; + var helmpath = __dirname + "/../" + config.helms_dir + skin_hash + ".png"; var filepath = facepath; fs.exists(helmpath, function(exists) { if (helm && exists) { @@ -227,11 +227,11 @@ exp.get_avatar = function(rid, userId, helm, size, callback) { } skins.resize_img(filepath, size, function(img_err, result) { if (img_err) { - callback(img_err, -1, null, hash); + callback(img_err, -1, null, skin_hash); } else { // we might have a hash although an error occured // (e.g. Mojang servers not reachable, using outdated hash) - callback(err, (err ? -1 : status), result, hash); + callback(err, (err ? -1 : status), result, skin_hash); } }); }); @@ -243,20 +243,20 @@ exp.get_avatar = function(rid, userId, helm, size, callback) { }; // handles requests for +userId+ skins -// callback contains error, hash, image buffer +// callback contains error, skin hash, image buffer exp.get_skin = function(rid, userId, callback) { logging.log(rid + "skin request"); - exp.get_image_hash(rid, userId, "skin", function(err, status, hash) { - var skinpath = __dirname + "/../" + config.skins_dir + hash + ".png"; + exp.get_image_hash(rid, userId, "skin", function(err, status, skin_hash) { + var skinpath = __dirname + "/../" + config.skins_dir + skin_hash + ".png"; fs.exists(skinpath, function(exists) { if (exists) { logging.log(rid + "skin already exists, not downloading"); skins.open_skin(rid, skinpath, function(err, img) { - callback(err, hash, img); + callback(err, skin_hash, img); }); } else { - networking.save_texture(rid, hash, skinpath, function(err, response, img) { - callback(err, hash, img); + networking.save_texture(rid, skin_hash, skinpath, function(err, response, img) { + callback(err, skin_hash, img); }); } }); @@ -269,36 +269,36 @@ function get_type(helm, body) { } // handles creations of skin renders -// callback contanis error, hash, image buffer +// callback contains error, skin hash, image buffer exp.get_render = function(rid, userId, scale, helm, body, callback) { - exp.get_skin(rid, userId, function(err, hash, img) { - if (!hash) { - callback(err, -1, hash, null); + exp.get_skin(rid, userId, function(err, skin_hash, img) { + if (!skin_hash) { + callback(err, -1, skin_hash, null); return; } - var renderpath = __dirname + "/../" + config.renders_dir + hash + "-" + scale + "-" + get_type(helm, body) + ".png"; + var renderpath = __dirname + "/../" + config.renders_dir + skin_hash + "-" + scale + "-" + get_type(helm, body) + ".png"; fs.exists(renderpath, function(exists) { if (exists) { renders.open_render(rid, renderpath, function(err, img) { - callback(err, 1, hash, img); + callback(err, 1, skin_hash, img); }); return; } else { if (!img) { - callback(err, 0, hash, null); + callback(err, 0, skin_hash, null); return; } renders.draw_model(rid, img, scale, helm, body, function(err, img) { if (err) { - callback(err, -1, hash, null); + callback(err, -1, skin_hash, null); } else if (!img) { - callback(null, 0, hash, null); + callback(null, 0, skin_hash, null); } else { fs.writeFile(renderpath, img, "binary", function(err) { if (err) { logging.log(rid + err.stack); } - callback(null, 2, hash, img); + callback(null, 2, skin_hash, img); }); } }); @@ -308,27 +308,27 @@ exp.get_render = function(rid, userId, scale, helm, body, callback) { }; // handles requests for +userId+ capes -// callback contains error, hash, image buffer +// callback contains error, cape hash, image buffer exp.get_cape = function(rid, userId, callback) { logging.log(rid + "cape request"); - exp.get_image_hash(rid, userId, "cape", function(err, status, hash) { - if (!hash) { + exp.get_image_hash(rid, userId, "cape", function(err, status, cape_hash) { + if (!cape_hash) { callback(err, null, null); return; } - var capepath = __dirname + "/../" + config.capes_path + hash + ".png"; + var capepath = __dirname + "/../" + config.capes_path + cape_hash + ".png"; fs.exists(capepath, function(exists) { if (exists) { logging.log(rid + "cape already exists, not downloading"); skins.open_skin(rid, capepath, function(err, img) { - callback(err, hash, img); + callback(err, cape_hash, img); }); } else { - networking.save_texture(rid, hash, capepath, function(err, response, img) { + networking.save_texture(rid, cape_hash, capepath, function(err, response, img) { if (response && response.statusCode === 404) { - callback(err, hash, null); + callback(err, cape_hash, null); } else { - callback(err, hash, img); + callback(err, cape_hash, img); } }); } diff --git a/modules/networking.js b/modules/networking.js index 7037b1d..b7ffb15 100644 --- a/modules/networking.js +++ b/modules/networking.js @@ -6,6 +6,7 @@ var fs = require("fs"); var session_url = "https://sessionserver.mojang.com/session/minecraft/profile/"; var skins_url = "https://skins.minecraft.net/MinecraftSkins/"; var capes_url = "https://skins.minecraft.net/MinecraftCloaks/"; +var textures_url = "http://textures.minecraft.net/texture/"; var mojang_urls = [skins_url, capes_url]; var exp = {}; @@ -50,7 +51,6 @@ exp.get_from_options = function(rid, url, options, callback) { timeout: (options.timeout || config.http_timeout), encoding: (options.encoding || null), followRedirect: (options.folow_redirect || false), - maxAttempts: (options.max_attempts || 2) }, function(error, response, body) { // 200 or 301 depending on content type if (!error && (response.statusCode === 200 || response.statusCode === 301)) { @@ -86,7 +86,6 @@ exp.get_from = function(rid, url, callback) { // the skin url is taken from the HTTP redirect // type reference is above exp.get_username_url = function(rid, name, type, callback) { - console.log(mojang_urls[type]) exp.get_from(rid, mojang_urls[type] + name + ".png", function(body, response, err) { if (!err) { callback(err, response ? (response.statusCode === 404 ? null : response.headers.location) : null); @@ -151,9 +150,9 @@ function get_url(rid, userId, profile, type, callback) { } } -exp.save_texture = function(rid, hash, outpath, callback) { - if (hash) { - var textureurl = "http://textures.minecraft.net/texture/" + hash; +exp.save_texture = function(rid, tex_hash, outpath, callback) { + if (tex_hash) { + var textureurl = textures_url + tex_hash; exp.get_from(rid, textureurl, function(img, response, err) { if (err) { logging.error(rid + "error while downloading texture");