aboutsummaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorFuwn <[email protected]>2023-12-25 17:11:40 -0800
committerFuwn <[email protected]>2023-12-25 17:11:40 -0800
commit8d25ec1f0fc77926ee079daae0630f650ddca13d (patch)
treefe06904e646af9268350b0d8020a1d8c47ef8d60 /src/lib
parentfix(wrapped): null check all of genres tags (diff)
downloaddue.moe-8d25ec1f0fc77926ee079daae0630f650ddca13d.tar.xz
due.moe-8d25ec1f0fc77926ee079daae0630f650ddca13d.zip
feat(wrapped): exclude genre tag keywords
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/AniList/wrapped.ts22
-rw-r--r--src/lib/Tools/Wrapped.svelte6
2 files changed, 18 insertions, 10 deletions
diff --git a/src/lib/AniList/wrapped.ts b/src/lib/AniList/wrapped.ts
index 40a81957..89fbd6d7 100644
--- a/src/lib/AniList/wrapped.ts
+++ b/src/lib/AniList/wrapped.ts
@@ -158,7 +158,7 @@ export interface TopMedia {
topTagMedia: Media;
}
-export const tops = (media: Media[], amount: number): TopMedia => {
+export const tops = (media: Media[], amount: number, excludedKeywords: string[] = []): TopMedia => {
const genresMap: { [genre: string]: { totalScore: number; count: number } } = {};
const tagsMap: { [tag: string]: { totalScore: number; count: number } } = {};
@@ -194,14 +194,18 @@ export const tops = (media: Media[], amount: number): TopMedia => {
// return formatted.endsWith('00') ? Number(formatted).toString() : formatted;
// };
- let genres = Object.keys(genresMap).map((genre) => ({
- genre,
- averageScore: Math.round(genresMap[genre].totalScore / genresMap[genre].count)
- }));
- let tags = Object.keys(tagsMap).map((tag) => ({
- tag,
- averageScore: Math.round(tagsMap[tag].totalScore / tagsMap[tag].count)
- }));
+ let genres = Object.keys(genresMap)
+ .filter((genre) => !excludedKeywords.some((keyword) => genre.includes(keyword)))
+ .map((genre) => ({
+ genre,
+ averageScore: Math.round(genresMap[genre].totalScore / genresMap[genre].count)
+ }));
+ let tags = Object.keys(tagsMap)
+ .filter((genre) => !excludedKeywords.some((keyword) => genre.includes(keyword)))
+ .map((tag) => ({
+ tag,
+ averageScore: Math.round(tagsMap[tag].totalScore / tagsMap[tag].count)
+ }));
genres = genres.slice(0, amount);
tags = tags.slice(0, amount);
diff --git a/src/lib/Tools/Wrapped.svelte b/src/lib/Tools/Wrapped.svelte
index 9934aeb2..6ffd94bf 100644
--- a/src/lib/Tools/Wrapped.svelte
+++ b/src/lib/Tools/Wrapped.svelte
@@ -89,7 +89,11 @@
genreTagCount = genreTagCount;
if (animeList && mangaList)
- topMedia = tops([...(animeList || []), ...(mangaList || [])], genreTagCount);
+ topMedia = tops(
+ [...(animeList || []), ...(mangaList || [])],
+ genreTagCount,
+ excludedKeywords
+ );
// new Promise((resolve) => setTimeout(resolve, 1)).then(updateWidth);
}