From efef0af6fa2d7ff5840076b8d95863516330414d Mon Sep 17 00:00:00 2001 From: barisusakli Date: Tue, 27 Oct 2015 15:04:46 -0400 Subject: [PATCH] tag fix --- src/topics/tags.js | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/src/topics/tags.js b/src/topics/tags.js index ef4fb04290..7fcda9dfff 100644 --- a/src/topics/tags.js +++ b/src/topics/tags.js @@ -25,22 +25,23 @@ module.exports = function(Topics) { function (data, next) { tags = data.tags.slice(0, meta.config.maximumTagsPerTopic || 5); - async.each(tags, function(tag, next) { - tag = Topics.cleanUpTag(tag); - if (tag.length < (meta.config.minimumTagLength || 3)) { - return next(); - } + tags = tags.map(Topics.cleanUpTag).filter(function(tag) { + return tag && tag.length >= (meta.config.minimumTagLength || 3); + }); - async.parallel([ - async.apply(db.setAdd, 'topic:' + tid + ':tags', tag), - async.apply(db.sortedSetAdd, 'tag:' + tag + ':topics', timestamp, tid) - ], function(err) { - if (err) { - return next(err); - } - updateTagCount(tag, next); - }); - }, next); + var keys = tags.map(function(tag) { + return 'tag:' + tag + ':topics'; + }); + + async.parallel([ + async.apply(db.setAdd, 'topic:' + tid + ':tags', tags), + async.apply(db.sortedSetsAdd, keys, timestamp, tid) + ], function(err) { + if (err) { + return next(err); + } + async.each(tags, updateTagCount, next); + }); } ], callback); };