diff options
| author | Adam Soltys <[email protected]> | 2015-11-11 13:25:35 -0800 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2015-11-11 13:25:35 -0800 |
| commit | c1cd55151fdea2bd80e27a6a9dfc905a243dd379 (patch) | |
| tree | ce8f86cf2f247582b133c26d0f728a102d235dd3 | |
| parent | 59528d7c0a301c805b03bf77492e489c0e723e79 (diff) | |
| download | coinos-server-c1cd55151fdea2bd80e27a6a9dfc905a243dd379.tar.gz coinos-server-c1cd55151fdea2bd80e27a6a9dfc905a243dd379.zip | |
Fetch remote image files and store locally
| -rw-r--r-- | .gitignore | 2 | ||||
| -rw-r--r-- | public/assets/img/logos/yummyyards.png | bin | 0 -> 22968 bytes | |||
| -rw-r--r-- | public/js/calculator.coffee | 4 | ||||
| -rw-r--r-- | routes/users.js | 17 | ||||
| -rw-r--r-- | src/routes/users.coffee | 10 |
5 files changed, 29 insertions, 4 deletions
@@ -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 Binary files differnew file mode 100644 index 00000000..e8f59c9f --- /dev/null +++ b/public/assets/img/logos/yummyyards.png 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("<a href='/#{g.user.username}/edit'>#{g.user.title}</a>").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 |
