use getPostsFromSet for recent replies

v1.18.x
barisusakli 10 years ago
parent 04afe7dc4b
commit 21459fff84

@ -13,21 +13,12 @@ var async = require('async'),
module.exports = function(Categories) {
Categories.getRecentReplies = function(cid, uid, count, callback) {
if(!parseInt(count, 10)) {
if (!parseInt(count, 10)) {
return callback(null, []);
}
db.getSortedSetRevRange('cid:' + cid + ':pids', 0, count - 1, function(err, pids) {
if (err || !Array.isArray(pids) || !pids.length) {
return callback(err, []);
}
async.waterfall([
async.apply(privileges.posts.filter, 'read', pids, uid),
function(pids, next) {
posts.getPostSummaryByPids(pids, uid, {stripTags: true}, next);
}
], callback);
posts.getPostsFromSet('cid:' + cid + ':pids', uid, 0, count - 1, function(err, data) {
callback(err, data ? data.posts : []);
});
};

@ -8,6 +8,7 @@ var async = require('async'),
user = require('./user'),
topics = require('./topics'),
postTools = require('./postTools'),
privileges = require('./privileges'),
plugins = require('./plugins');
(function(Posts) {
@ -85,6 +86,23 @@ var async = require('async'),
});
};
Posts.getPostsFromSet = function(set, uid, start, end, callback) {
async.waterfall([
function(next) {
db.getSortedSetRevRange(set, start, end, next);
},
function(pids, next) {
privileges.posts.filter('read', pids, uid, next);
},
function(pids, next) {
Posts.getPostSummaryByPids(pids, uid, {stripTags: false}, next);
},
function(posts, next) {
next(null, {posts: posts, nextStart: end + 1});
}
], callback);
};
Posts.getPostData = function(pid, callback) {
db.getObject('post:' + pid, function(err, data) {
if(err) {

@ -8,8 +8,7 @@ var async = require('async'),
meta = require('../meta'),
websockets = require('../socket.io'),
postTools = require('../postTools'),
plugins = require('../plugins'),
privileges = require('../privileges');
plugins = require('../plugins')
module.exports = function(Posts) {
@ -105,21 +104,4 @@ module.exports = function(Posts) {
user.isModerator(uid, cids, callback);
});
};
Posts.getPostsFromSet = function(set, uid, start, end, callback) {
async.waterfall([
function(next) {
db.getSortedSetRevRange(set, start, end, next);
},
function(pids, next) {
privileges.posts.filter('read', pids, uid, next);
},
function(pids, next) {
Posts.getPostSummaryByPids(pids, uid, {stripTags: false}, next);
},
function(posts, next) {
next(null, {posts: posts, nextStart: end + 1});
}
], callback);
};
};

@ -178,7 +178,7 @@ var async = require('async'),
if (err) {
return callback(err);
}
plugins.fireHook('action:user.set', {field: field, value: value, type: 'decrement'});
plugins.fireHook('action:user.set', {field: field, value: value, type: 'decrement'});
callback(null, value);
});

Loading…
Cancel
Save