| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 | 
							- var request = require('request');
 
- var config = require('./config');
 
- var skins = require('./skins');
 
- var session_url = "https://sessionserver.mojang.com/session/minecraft/profile/";
 
- var exp = {};
 
- // download the Mojang profile for +uuid+
 
- // callback contains error, profile object
 
- exp.get_profile = function(uuid, callback) {
 
-   request.get({
 
-     url: session_url + uuid,
 
-     timeout: config.http_timeout // ms
 
-   }, function (error, response, body) {
 
-     if (!error && response.statusCode == 200) {
 
-       // profile downloaded successfully
 
-       console.log(uuid + " profile downloaded");
 
-       callback(null, JSON.parse(body));
 
-     } else if (error) {
 
-       callback(error, null);
 
-     } else if (response.statusCode == 204 || response.statusCode == 404) {
 
-       // we get 204 No Content when UUID doesn't exist (including 404 in case they change that)
 
-       console.log(uuid + " uuid does not exist");
 
-       callback(0, null);
 
-     } else if (response.statusCode == 429) {
 
-       // Too Many Requests
 
-       console.warn(uuid + " Too many requests");
 
-       console.warn(body);
 
-       callback(null, null);
 
-     } else {
 
-       console.error(uuid + " Unknown error:");
 
-       console.error(response);
 
-       console.error(body);
 
-       callback(null, null);
 
-     }
 
-   });
 
- };
 
- // downloads skin file from +url+
 
- // stores face image as +facename+
 
- // stores helm image as +helmname+
 
- // callback is forwarded from skins/extract_face or skins/extract_helm
 
- exp.skin_file = function(url, facename, helmname, callback) {
 
-   request.get({
 
-     url: url,
 
-     encoding: null, // encoding must be null so we get a buffer
 
-     timeout: config.http_timeout // ms
 
-   }, function (error, response, body) {
 
-     if (!error && response.statusCode == 200) {
 
-       // skin downloaded successfully
 
-       console.log(url + " skin downloaded");
 
-       skins.extract_face(body, facename, function(err) {
 
-         if (err) {
 
-           callback(err);
 
-         } else {
 
-           console.log(facename + " face extracted");
 
-           skins.extract_helm(facename, body, helmname, function(err) {
 
-             console.log(helmname + " helm extracted.");
 
-             callback(err);
 
-           });
 
-         }
 
-       });
 
-     } else {
 
-       if (error) {
 
-         console.error("Error downloading '" + url + "': " + error);
 
-       } else if (response.statusCode == 404) {
 
-         console.warn(url + " texture not found");
 
-       } else if (response.statusCode == 429) {
 
-         // Too Many Requests
 
-         // Never got this, seems like textures aren't limited
 
-         console.warn(url + " too many requests");
 
-         console.warn(body);
 
-       } else {
 
-         console.error(url + " unknown error:");
 
-         console.error(response);
 
-         console.error(body);
 
-       }
 
-       callback(error);
 
-     }
 
-   });
 
- };
 
- module.exports = exp;
 
 
  |