From 75477202d3fca2b22b64b8a08329fd180a28cbcc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Sat, 21 Feb 2026 13:49:46 -0500 Subject: [PATCH] fix: category search shoudn't return results that match in the cid part --- src/categories/search.js | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/categories/search.js b/src/categories/search.js index 722ecb01d9..2cb81aca9e 100644 --- a/src/categories/search.js +++ b/src/categories/search.js @@ -77,17 +77,19 @@ module.exports = function (Categories) { if (!query || String(query).length < 2) { return []; } + const searchQuery = String(query).toLowerCase(); const data = await db.getSortedSetScan({ key: 'categories:name', - match: `*${String(query).toLowerCase()}*`, + match: `*${searchQuery}*`, limit: hardCap || 500, }); - return data.map((data) => { - const split = data.split(':'); - split.shift(); - const cid = split.join(':'); - return cid; - }); + return data.reduce((acc, match) => { + const [name, ...cidParts] = match.split(':'); + if (name.includes(searchQuery)) { + acc.push(cidParts.join(':')); + } + return acc; + }, []); } async function getChildrenCids(cids, uid) {