From c07d9121df575f0ae29d0509239b49cf06c27666 Mon Sep 17 00:00:00 2001 From: barisusakli Date: Tue, 12 Aug 2014 11:19:17 -0400 Subject: [PATCH] small optimizations user.isOnline works with an array of uids do not make 2 trips to db to get main post and first 10 posts --- src/posts.js | 48 +++++++++++++++++++++---------------------- src/socket.io/user.js | 22 +++++++++----------- src/topics.js | 25 ++++++++++++++++------ src/user.js | 33 +++++++++++++++++------------ 4 files changed, 73 insertions(+), 55 deletions(-) diff --git a/src/posts.js b/src/posts.js index 7c7d5ff849..1392ac0372 100644 --- a/src/posts.js +++ b/src/posts.js @@ -93,7 +93,7 @@ var async = require('async'), }; Posts.getPostsByTid = function(tid, set, start, end, reverse, callback) { - db[reverse ? 'getSortedSetRevRange' : 'getSortedSetRange'](set, start, end, function(err, pids) { + Posts.getPidsFromSet(set, start, end, reverse, function(err, pids) { if(err) { return callback(err); } @@ -102,31 +102,15 @@ var async = require('async'), return callback(null, []); } - Posts.getPostsByPids(pids, function(err, posts) { - if(err) { - return callback(err); - } - - if(!Array.isArray(posts) || !posts.length) { - return callback(null, []); - } - - plugins.fireHook('filter:post.getPosts', {tid: tid, posts: posts}, function(err, data) { - if(err) { - return callback(err); - } - - if(!data || !Array.isArray(data.posts)) { - return callback(null, []); - } - - callback(null, data.posts); - }); - }); + Posts.getPostsByPids(pids, tid, callback); }); }; - Posts.getPostsByPids = function(pids, callback) { + Posts.getPidsFromSet = function(set, start, end, reverse, callback) { + db[reverse ? 'getSortedSetRevRange' : 'getSortedSetRange'](set, start, end, callback); + }; + + Posts.getPostsByPids = function(pids, tid, callback) { var keys = []; for(var x=0, numPids=pids.length; x