From c1cd55151fdea2bd80e27a6a9dfc905a243dd379 Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Wed, 11 Nov 2015 13:25:35 -0800 Subject: Fetch remote image files and store locally --- .gitignore | 2 +- public/assets/img/logos/yummyyards.png | Bin 0 -> 22968 bytes public/js/calculator.coffee | 4 +++- routes/users.js | 17 +++++++++++++++-- src/routes/users.coffee | 10 ++++++++++ 5 files changed, 29 insertions(+), 4 deletions(-) create mode 100644 public/assets/img/logos/yummyyards.png diff --git a/.gitignore b/.gitignore index 2391f700..ca800b2e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,3 @@ -public/bitcoins.pdf node_modules builtAssets database.json @@ -9,3 +8,4 @@ src/config.coffee config.js passenger* tmp +public/img/assets/logos diff --git a/public/assets/img/logos/yummyyards.png b/public/assets/img/logos/yummyyards.png new file mode 100644 index 00000000..e8f59c9f Binary files /dev/null and b/public/assets/img/logos/yummyyards.png differ diff --git a/public/js/calculator.coffee b/public/js/calculator.coffee index cc2dcece..cc45cae5 100644 --- a/public/js/calculator.coffee +++ b/public/js/calculator.coffee @@ -59,7 +59,9 @@ setup = -> $('#title').html("#{g.user.title}").show() if g.user.logo - $('#logo').attr('src', g.user.logo).show() + ext = g.user.logo.substr(g.user.logo.length - 3) + src = "/assets/img/logos/#{g.user.username}.#{ext}" + $('#logo').attr('src', src).show() getAddress() diff --git a/routes/users.js b/routes/users.js index c5e0f0ee..28b89797 100644 --- a/routes/users.js +++ b/routes/users.js @@ -1,5 +1,5 @@ (function() { - var bcrypt, config, db; + var bcrypt, config, db, fs, request; db = require("../redis"); @@ -7,6 +7,10 @@ bcrypt = require('bcrypt'); + fs = require('fs'); + + request = require('request'); + module.exports = function(sessions) { return { exists: function(req, res) { @@ -34,7 +38,7 @@ }, show: function(req, res) { return db.hgetall("user:" + req.params.user, function(err, obj) { - var options; + var ext, options, path; if (obj) { options = { user: req.params.user, @@ -50,6 +54,15 @@ if (req.query.verified != null) { options.verified = true; } + if (obj.logo.length > 3) { + ext = obj.logo.substr(obj.logo.length - 3); + path = "public/assets/img/logos/" + obj.username + "." + ext; + fs.lstat(path, function(err, stats) { + if ((ext === 'jpg' || ext === 'png' || ext === 'gif') && (err || !stats.isFile())) { + return request("" + obj.logo).pipe(fs.createWriteStream(path)); + } + }); + } res.render('users/show', options); return delete req.session.verified; } else { diff --git a/src/routes/users.coffee b/src/routes/users.coffee index d3ecabaf..b1e4fd9a 100644 --- a/src/routes/users.coffee +++ b/src/routes/users.coffee @@ -1,6 +1,8 @@ db = require("../redis") config = require("../config") bcrypt = require('bcrypt') +fs = require('fs') +request = require('request') module.exports = (sessions) -> exists: (req, res) -> @@ -33,6 +35,14 @@ module.exports = (sessions) -> if req.query.verified? options.verified = true + if obj.logo.length > 3 + ext = obj.logo.substr(obj.logo.length - 3) + path = "public/assets/img/logos/#{obj.username}.#{ext}" + fs.lstat(path, (err, stats) -> + if ext in ['jpg', 'png', 'gif'] and (err or not stats.isFile()) + request("#{obj.logo}").pipe(fs.createWriteStream(path)) + ) + res.render('users/show', options) delete req.session.verified else -- cgit v1.2.3