diff options
| author | Fuwn <[email protected]> | 2023-12-15 05:42:27 -0800 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2023-12-15 05:42:27 -0800 |
| commit | 2effd861c716bb90343e055d62c5ec737436cd40 (patch) | |
| tree | 6855d528a845a4e870e1abf79d6016e57282358b /src/lib | |
| parent | feat(media): use outbound mal id when available (diff) | |
| download | due.moe-2effd861c716bb90343e055d62c5ec737436cd40.tar.xz due.moe-2effd861c716bb90343e055d62c5ec737436cd40.zip | |
feat(media): #dueinclude
Diffstat (limited to 'src/lib')
| -rw-r--r-- | src/lib/AniList/media.ts | 20 |
1 files changed, 13 insertions, 7 deletions
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) => |