jomo %!s(int64=10) %!d(string=hai) anos
pai
achega
adea3320bc
Modificáronse 4 ficheiros con 73 adicións e 69 borrados
  1. 2 2
      app.js
  2. BIN=BIN
      public/favicon.ico
  3. 4 0
      routes/avatars.js
  4. 67 67
      skins.js

+ 2 - 2
app.js

@@ -14,8 +14,7 @@ var app = express();
 app.set('views', path.join(__dirname, 'views'));
 app.set('views', path.join(__dirname, 'views'));
 app.set('view engine', 'jade');
 app.set('view engine', 'jade');
 
 
-// uncomment after placing your favicon in /public
-//app.use(favicon(__dirname + '/public/favicon.ico'));
+app.use(favicon(__dirname + '/public/favicon.ico'));
 app.use(logger('dev'));
 app.use(logger('dev'));
 app.use(bodyParser.json());
 app.use(bodyParser.json());
 app.use(bodyParser.urlencoded({ extended: false }));
 app.use(bodyParser.urlencoded({ extended: false }));
@@ -25,6 +24,7 @@ app.use(express.static(path.join(__dirname, 'public')));
 app.use('/', routes);
 app.use('/', routes);
 app.use('/avatars', avatars);
 app.use('/avatars', avatars);
 
 
+
 // catch 404 and forward to error handler
 // catch 404 and forward to error handler
 app.use(function(req, res, next) {
 app.use(function(req, res, next) {
   var err = new Error('Not Found');
   var err = new Error('Not Found');

BIN=BIN
public/favicon.ico


+ 4 - 0
routes/avatars.js

@@ -9,6 +9,10 @@ var valid_uuid = /^[0-9a-f]{32}$/;
 router.get('/:uuid/:size?', function(req, res) {
 router.get('/:uuid/:size?', function(req, res) {
   var uuid = req.param('uuid');
   var uuid = req.param('uuid');
   var size = req.param('size') || 180;
   var size = req.param('size') || 180;
+  // Add temporary restriction to prevent app from crashing
+  if (size <= 0) {
+    size = 180;
+  }
   console.log(uuid);
   console.log(uuid);
   if (valid_uuid.test(uuid)) {
   if (valid_uuid.test(uuid)) {
     var filename = uuid + ".png";
     var filename = uuid + ".png";

+ 67 - 67
skins.js

@@ -10,78 +10,78 @@ var lwip = require('lwip');
 */
 */
 
 
 function extract_face(inname, outname, callback) {
 function extract_face(inname, outname, callback) {
-	var outfile = fs.createWriteStream(outname);
-	lwip.open(inname, function(err, image) {
-		image.batch()
-		.crop(8, 8, 15, 15)
-		.writeFile(outname, function(err) {
-			callback();
-		});
-	});
+  var outfile = fs.createWriteStream(outname);
+  lwip.open(inname, function(err, image) {
+    image.batch()
+    .crop(8, 8, 15, 15)
+    .writeFile(outname, function(err) {
+      callback();
+    });
+  });
 }
 }
 
 
 module.exports = {
 module.exports = {
-	get_profile: function(uuid, callback) {
-		https.get("https://sessionserver.mojang.com/session/minecraft/profile/" + uuid, function(res) {
-			if (res.statusCode == "204") {
-				callback(null);
-				return null;
-			}
-			res.on('data', function(d) {
-				var profile = JSON.parse(d);
-				if (profile.error) {
-					console.error(profile.error);
-					callback(null);
-				} else {
-					callback(profile);
-				}
-			});
+  get_profile: function(uuid, callback) {
+    https.get("https://sessionserver.mojang.com/session/minecraft/profile/" + uuid, function(res) {
+      if (res.statusCode == "204") {
+        callback(null);
+        return null;
+      }
+      res.on('data', function(d) {
+        var profile = JSON.parse(d);
+        if (profile.error) {
+          console.error(profile.error);
+          callback(null);
+        } else {
+          callback(profile);
+        }
+      });
 
 
-		}).on('error', function(e) {
-			console.error(e);
-		});
-	},
+    }).on('error', function(e) {
+      console.error(e);
+    });
+  },
 
 
-	skin_url: function(profile) {
-		var url = null;
-		if (profile && profile.properties) {
-			profile.properties.forEach(function(prop) {
-				if (prop.name == 'textures') {
-					var json = Buffer(prop.value, 'base64').toString();
-					var props = JSON.parse(json);
-					url = props.textures.SKIN.url;
-				}
-			});
-		}
-		return url;
-	},
+  skin_url: function(profile) {
+    var url = null;
+    if (profile && profile.properties) {
+      profile.properties.forEach(function(prop) {
+        if (prop.name == 'textures') {
+          var json = Buffer(prop.value, 'base64').toString();
+          var props = JSON.parse(json);
+          url = props.textures.SKIN.url;
+        }
+      });
+    }
+    return url;
+  },
 
 
-	skin_file: function(url, filename, callback) {
-		var tmpname = "skins/tmp/" + filename;
-		var outname = "skins/" + filename;
-		var tmpfile = fs.createWriteStream(tmpname);
-		http.get(url, function(res) {
-			res.on('data', function(data) {
-				tmpfile.write(data);
-			}).on('end', function() {
-				tmpfile.end();
-				extract_face(tmpname, outname, function() {
-					fs.unlink(tmpname, function(err) { // unlink = delete
-						if (err) console.error(err);
-					});
-					callback(); // outside unlink callback cause we don't have to wait until it's deleted
-				});
-			});
-		});
-	},
+  skin_file: function(url, filename, callback) {
+    var tmpname = "skins/tmp/" + filename;
+    var outname = "skins/" + filename;
+    var tmpfile = fs.createWriteStream(tmpname);
+    http.get(url, function(res) {
+      res.on('data', function(data) {
+        tmpfile.write(data);
+      }).on('end', function() {
+        tmpfile.end();
+        extract_face(tmpname, outname, function() {
+          fs.unlink(tmpname, function(err) { // unlink = delete
+            if (err) console.error(err);
+          });
+          callback(); // outside unlink callback cause we don't have to wait until it's deleted
+        });
+      });
+    });
+  },
 
 
-	resize_img: function(inname, size, callback) {
-		lwip.open("skins/" + inname, function(err, image) {
-			image.batch()
-			.resize(size, size, "nearest-neighbor") // nearest-neighbor doesn't blur
-			.toBuffer('png', function(err, buffer) {
-				callback(buffer);
-			});
-		});
-	}
+  resize_img: function(inname, size, callback) {
+    lwip.open("skins/" + inname, function(err, image) {
+      image.batch()
+      .resize(size, size, "nearest-neighbor") // nearest-neighbor doesn't blur
+      .toBuffer('png', function(err, buffer) {
+        callback(buffer);
+      });
+    });
+  }
 };
 };