From 2effd861c716bb90343e055d62c5ec737436cd40 Mon Sep 17 00:00:00 2001 From: Fuwn Date: Fri, 15 Dec 2023 05:42:27 -0800 Subject: feat(media): #dueinclude --- src/lib/AniList/media.ts | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) (limited to 'src/lib/AniList') diff --git a/src/lib/AniList/media.ts b/src/lib/AniList/media.ts index d0635b6c..dcbefdaa 100644 --- a/src/lib/AniList/media.ts +++ b/src/lib/AniList/media.ts @@ -67,18 +67,24 @@ export const flattenLists = (lists: { name: string; entries: { media: Media }[] const flattenedList: Media[] = []; const ignoredMediaIds: number[] = []; + const processedList = (list: Media[]) => + list + .filter((media) => !ignoredMediaIds.includes(media.id)) + .filter( + (item, index, self) => + self.findIndex((itemToCompare) => itemToCompare.id === item.id) === index + ); + + for (const list of lists) { + if (list.name.toLowerCase().includes('#dueinclude')) + return processedList(list.entries.map((entry) => entry.media)); - for (const list of lists) if (list.name.toLowerCase().includes('#dueignore')) ignoredMediaIds.push(...list.entries.map((entry) => entry.media.id)); else flattenedList.push(...list.entries.map((entry) => entry.media)); + } - return flattenedList - .filter((media) => !ignoredMediaIds.includes(media.id)) - .filter( - (item, index, self) => - self.findIndex((itemToCompare) => itemToCompare.id === item.id) === index - ); + return processedList(flattenedList); }; const collectionQueryTemplate = (type: Type, userId: number, includeCompleted: boolean) => -- cgit v1.2.3