From fe3fbb71970eca5dd97c8a24c2546ed7bf7fc1a2 Mon Sep 17 00:00:00 2001 From: Timothy Fike Date: Thu, 7 Jul 2016 17:17:17 -0400 Subject: [PATCH 1/2] filter:topics.updateRecent https://community.nodebb.org/topic/9165/prevent-specific-category-from-showing-in-recent --- src/topics/recent.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/topics/recent.js b/src/topics/recent.js index 7139f58991..f2961f9b22 100644 --- a/src/topics/recent.js +++ b/src/topics/recent.js @@ -4,6 +4,7 @@ var async = require('async'); var db = require('../database'); +var plugins = require('../plugins'); module.exports = function(Topics) { var terms = { @@ -63,6 +64,10 @@ module.exports = function(Topics) { Topics.updateRecent = function(tid, timestamp, callback) { callback = callback || function() {}; - db.sortedSetAdd('topics:recent', timestamp, tid, callback); + if (plugins.hasListeners('filter:topics.updateRecent')) { + plugins.fireHook('filter:topics.updateRecent', {tid: tid, timestamp: timestamp}, callback); + } else { + db.sortedSetAdd('topics:recent', timestamp, tid, callback); + } }; }; From 9fdd1b6b7070ec34776a639a3a6bf49dbc0e054a Mon Sep 17 00:00:00 2001 From: Timothy Fike Date: Thu, 7 Jul 2016 18:08:53 -0400 Subject: [PATCH 2/2] Don't return data for Topics.updateRecent Update database if filter passes data back. --- src/topics/recent.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/topics/recent.js b/src/topics/recent.js index f2961f9b22..8440b3e4a6 100644 --- a/src/topics/recent.js +++ b/src/topics/recent.js @@ -65,7 +65,10 @@ module.exports = function(Topics) { Topics.updateRecent = function(tid, timestamp, callback) { callback = callback || function() {}; if (plugins.hasListeners('filter:topics.updateRecent')) { - plugins.fireHook('filter:topics.updateRecent', {tid: tid, timestamp: timestamp}, callback); + plugins.fireHook('filter:topics.updateRecent', {tid: tid, timestamp: timestamp}, function(err, data) { + if (data && data.tid && data.timestamp) db.sortedSetAdd('topics:recent', data.timestamp, data.tid); + callback(err); + }); } else { db.sortedSetAdd('topics:recent', timestamp, tid, callback); }