From 7bad43014c0d2be99ed9bf8137d3c45ad0c3b391 Mon Sep 17 00:00:00 2001 From: KAGEYAM4 <75798544+KAGEYAM4@users.noreply.github.com> Date: Sat, 13 Jul 2024 23:22:36 +0530 Subject: [PATCH 1/2] feat: add category tag for Wallhaven. --- src/sites/WallHaven/model.ts | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/sites/WallHaven/model.ts b/src/sites/WallHaven/model.ts index 72ab5ae47..df0470a2c 100644 --- a/src/sites/WallHaven/model.ts +++ b/src/sites/WallHaven/model.ts @@ -1,6 +1,7 @@ -function parseSearch(search: string): { query: string, purity: string, order: string, sort: string, ratios: string[] } { +function parseSearch(search: string): { query: string, purity: string, category: string, order: string, sort: string, ratios: string[] } { let query: string = ""; let purity: string = "111"; + let category: string = "111"; let order: string = "date_added"; let sort: string = "desc"; const ratios: string[] = []; @@ -11,6 +12,9 @@ function parseSearch(search: string): { query: string, purity: string, order: st } else if (tag.indexOf("-rating:") === 0) { const val = tag.substr(8); purity = val === "s" || val === "safe" ? "011" : (val === "e" || val === "explicit" ? "110" : "101"); + } else if (tag.indexOf("category_wallhaven:") === 0) { + const val = tag.substr(19); + category = val === "anime" ? "010" : (val === "people" ? "001" : "100"); } else if (tag.indexOf("order:") === 0) { const val = tag.substr(6); if (val.substr(-5) === "_desc") { @@ -29,12 +33,12 @@ function parseSearch(search: string): { query: string, purity: string, order: st query += (query ? " " : "") + tag; } } - return { query, purity, order, sort, ratios } + return { query, purity, category, order, sort, ratios } } export const source: ISource = { name: "WallHaven", - modifiers: ["rating:s", "rating:safe", "rating:q", "rating:questionable", "rating:e", "rating:explicit", "order:relevance", "order:random", "order:date_added", "order:views", "order:favorites", "order:toplist", "order:hot"], + modifiers: ["rating:s", "rating:safe", "rating:q", "rating:questionable", "rating:e", "rating:explicit", "order:relevance", "order:random", "order:date_added", "order:views", "order:favorites", "order:toplist", "order:hot", "category_wallhaven:general", "category_wallhaven:anime", "category_wallhaven:people"], forcedTokens: ["tags"], auth: { url: { @@ -58,6 +62,7 @@ export const source: ISource = { const params: Record = { q: search.query, purity: search.purity, + categories: search.category, page: query.page, sorting: search.order, order: search.sort, From 2aa23b290b6577d8abe2a53327290d317881d608 Mon Sep 17 00:00:00 2001 From: Bionus Date: Sat, 11 Jan 2025 02:00:04 +0100 Subject: [PATCH 2/2] Rename to "category:" and add support for "-category:" --- src/sites/WallHaven/model.ts | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/sites/WallHaven/model.ts b/src/sites/WallHaven/model.ts index df0470a2c..eb7d046d0 100644 --- a/src/sites/WallHaven/model.ts +++ b/src/sites/WallHaven/model.ts @@ -12,9 +12,12 @@ function parseSearch(search: string): { query: string, purity: string, category: } else if (tag.indexOf("-rating:") === 0) { const val = tag.substr(8); purity = val === "s" || val === "safe" ? "011" : (val === "e" || val === "explicit" ? "110" : "101"); - } else if (tag.indexOf("category_wallhaven:") === 0) { - const val = tag.substr(19); + } else if (tag.indexOf("category:") === 0) { + const val = tag.substr(9); category = val === "anime" ? "010" : (val === "people" ? "001" : "100"); + } else if (tag.indexOf("-category:") === 0) { + const val = tag.substr(10); + category = val === "anime" ? "101" : (val === "people" ? "110" : "011"); } else if (tag.indexOf("order:") === 0) { const val = tag.substr(6); if (val.substr(-5) === "_desc") { @@ -38,7 +41,7 @@ function parseSearch(search: string): { query: string, purity: string, category: export const source: ISource = { name: "WallHaven", - modifiers: ["rating:s", "rating:safe", "rating:q", "rating:questionable", "rating:e", "rating:explicit", "order:relevance", "order:random", "order:date_added", "order:views", "order:favorites", "order:toplist", "order:hot", "category_wallhaven:general", "category_wallhaven:anime", "category_wallhaven:people"], + modifiers: ["rating:s", "rating:safe", "rating:q", "rating:questionable", "rating:e", "rating:explicit", "order:relevance", "order:random", "order:date_added", "order:views", "order:favorites", "order:toplist", "order:hot", "category:general", "category:anime", "category:people"], forcedTokens: ["tags"], auth: { url: {