From 75d60bfaf2be2bd8539052d9ecfdd3b5d3920458 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Mon, 17 May 2021 12:12:16 -0400 Subject: [PATCH] feat: add filter:user.getWatchedCategories --- src/search.js | 2 +- src/user/categories.js | 15 +++++++++++++-- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/src/search.js b/src/search.js index 043a69f12d..5d32ee816e 100644 --- a/src/search.js +++ b/src/search.js @@ -282,7 +282,7 @@ async function getWatchedCids(data) { if (!data.categories.includes('watched')) { return []; } - return await user.getCategoriesByStates(data.uid, [categories.watchStates.watching]); + return await user.getWatchedCategories(data.uid); } async function getChildrenCids(data) { diff --git a/src/user/categories.js b/src/user/categories.js index eea9d6983a..fcfeb1c95d 100644 --- a/src/user/categories.js +++ b/src/user/categories.js @@ -4,6 +4,7 @@ const _ = require('lodash'); const db = require('../database'); const categories = require('../categories'); +const plugins = require('../plugins'); module.exports = function (User) { User.setCategoryWatchState = async function (uid, cids, state) { @@ -36,14 +37,24 @@ module.exports = function (User) { if (!(parseInt(uid, 10) > 0)) { return []; } - return await User.getCategoriesByStates(uid, [categories.watchStates.ignoring]); + const cids = await User.getCategoriesByStates(uid, [categories.watchStates.ignoring]); + const result = await plugins.hooks.fire('filter:user.getIgnoredCategories', { + uid: uid, + cids: cids, + }); + return result.cids; }; User.getWatchedCategories = async function (uid) { if (!(parseInt(uid, 10) > 0)) { return []; } - return await User.getCategoriesByStates(uid, [categories.watchStates.watching]); + const cids = await User.getCategoriesByStates(uid, [categories.watchStates.watching]); + const result = await plugins.hooks.fire('filter:user.getWatchedCategories', { + uid: uid, + cids: cids, + }); + return result.cids; }; User.getCategoriesByStates = async function (uid, states) {