From 81e5cf0cf31c52ef60c65488bb4d5aa71a56e7b4 Mon Sep 17 00:00:00 2001 From: Baris Soner Usakli Date: Sat, 23 Nov 2013 17:56:03 -0500 Subject: [PATCH] fixed posts not appearing immediately --- public/src/forum/topic.js | 2 +- src/imgur.js | 29 +++++++++++++++++------------ src/posts.js | 18 ++++++------------ 3 files changed, 24 insertions(+), 25 deletions(-) diff --git a/public/src/forum/topic.js b/public/src/forum/topic.js index 06fd9aca66..2d982fb95a 100644 --- a/public/src/forum/topic.js +++ b/public/src/forum/topic.js @@ -462,7 +462,7 @@ define(function() { adjust_rep(-1, data.pid, data.uid); }); - socket.on('event:new_post', app.createNewPosts); + socket.on('event:new_post', createNewPosts); socket.on('event:topic_deleted', function(data) { if (data.tid === tid && data.status === 'ok') { diff --git a/src/imgur.js b/src/imgur.js index 7d4542be3c..389a3e3b37 100644 --- a/src/imgur.js +++ b/src/imgur.js @@ -1,12 +1,11 @@ -var request = require('request'); +var request = require('request'), + winston = require('winston'); (function (imgur) { "use strict"; - var clientID = ''; - - imgur.upload = function (image, type, callback) { + imgur.upload = function (clientID, image, type, callback) { var options = { url: 'https://api.imgur.com/3/upload.json', headers: { @@ -15,21 +14,27 @@ var request = require('request'); }; var post = request.post(options, function (err, req, body) { + if(err) { + return callback(err, null); + } + try { - callback(err, JSON.parse(body)); - } catch (e) { - callback(err, body); + var response = JSON.parse(body); + if(response.success) { + callback(null, response.data); + } else { + callback(new Error(response.data.error.message), null); + } + } catch(e) { + winston.error('Unable to parse Imgur json response. [' + body +']'); + callback(e, null); } }); - var upload = post.form({ + post.form({ type: type, image: image }); }; - imgur.setClientID = function (id) { - clientID = id; - }; - }(exports)); \ No newline at end of file diff --git a/src/posts.js b/src/posts.js index d4417657f4..57ec413360 100644 --- a/src/posts.js +++ b/src/posts.js @@ -450,24 +450,18 @@ var RDB = require('./redis.js'), } Posts.uploadPostImage = function(image, callback) { - var imgur = require('./imgur'); - imgur.setClientID(meta.config.imgurClientID); if(!image) return callback('invalid image', null); - imgur.upload(image.data, 'base64', function(err, data) { + require('./imgur').upload(meta.config.imgurClientID, image.data, 'base64', function(err, data) { if(err) { - callback('Can\'t upload image!', null); + callback(err.message, null); } else { - if(data.success) { - var img= {url:data.data.link, name:image.name}; - - callback(null, img); - } else { - winston.error('Can\'t upload image, did you set imgurClientID?'); - callback("upload error", null); - } + callback(null, { + url: data.link, + name: image.name + }); } }); }