From f4835695de2244aea136a37ac66f54c3f65acaea Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Tue, 17 Dec 2024 10:54:17 -0500 Subject: [PATCH] feat: add `filter:topics.hasThumbs` filter hook To be used by embed plugins to add thumbnails as necessary (e.g. giphy, etc.) --- src/topics/thumbs.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/topics/thumbs.js b/src/topics/thumbs.js index e29c7ae983..0e857c1578 100644 --- a/src/topics/thumbs.js +++ b/src/topics/thumbs.js @@ -28,10 +28,13 @@ Thumbs.load = async function (topicData) { let hashes = await posts.getPostsFields(mainPids, ['attachments']); const hasUploads = await db.exists(mainPids.map(pid => `post:${pid}:uploads`)); hashes = hashes.map(o => o.attachments); - const topicsWithThumbs = topicData.filter((t, idx) => t && + let hasThumbs = topicData.map((t, idx) => t && (parseInt(t.numThumbs, 10) > 0 || - (hashes[idx] && hashes[idx].length) || + !!(hashes[idx] && hashes[idx].length) || hasUploads[idx])); + ({ hasThumbs } = await plugins.hooks.fire('filter:topics.hasThumbs', { topicData, hasThumbs })); + + const topicsWithThumbs = topicData.filter((tid, idx) => hasThumbs[idx]); const tidsWithThumbs = topicsWithThumbs.map(t => t.tid); const thumbs = await Thumbs.get(tidsWithThumbs); const tidToThumbs = _.zipObject(tidsWithThumbs, thumbs);