diff options
| author | Fuwn <[email protected]> | 2024-07-07 22:58:04 -0700 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2024-07-07 22:58:04 -0700 |
| commit | e4246eacbffa15242de69fe0331cac6f1869e410 (patch) | |
| tree | 47f2079ddb8cd1b53ca3c1b8bf6fab5641653a2b /src/lib/Data/AniList | |
| parent | feat(tools): sequel catcher (diff) | |
| download | due.moe-e4246eacbffa15242de69fe0331cac6f1869e410.tar.xz due.moe-e4246eacbffa15242de69fe0331cac6f1869e410.zip | |
refactor(SequelCatcher): tidy
Diffstat (limited to 'src/lib/Data/AniList')
| -rw-r--r-- | src/lib/Data/AniList/media.ts | 32 | ||||
| -rw-r--r-- | src/lib/Data/AniList/prequels.ts | 36 |
2 files changed, 28 insertions, 40 deletions
diff --git a/src/lib/Data/AniList/media.ts b/src/lib/Data/AniList/media.ts index 89d6e339..3eb26de7 100644 --- a/src/lib/Data/AniList/media.ts +++ b/src/lib/Data/AniList/media.ts @@ -5,7 +5,7 @@ import manga from '$stores/manga'; import settings from '$stores/settings'; import lastPruneTimes from '$stores/lastPruneTimes'; import { options as getOptions, type Options } from '$lib/Notification/options'; -import type { PrequelRelations } from './prequels'; +import type { PrequelRelation, PrequelRelations } from './prequels'; export enum Type { Anime, @@ -159,17 +159,9 @@ const collectionQueryTemplate = (type: Type, userId: number, options: Collection edges { relationType node { - id - status - title { - english - romaji - } - episodes - mediaListEntry { - status - progress - } + id status episodes + title { english romaji } + mediaListEntry { status progress } coverImage { extraLarge } } } @@ -479,7 +471,7 @@ export const mediaCover = async (id: number) => export interface UnwatchedRelationMap { media: Media; - unwatchedRelations: Media[]; + unwatchedRelations: PrequelRelation[]; } export const filterRelations = (media: Media[]) => { @@ -487,7 +479,7 @@ export const filterRelations = (media: Media[]) => { for (const mediaItem of media) { const sequels = mediaItem.relations.edges.filter( - (relation) => + (relation: PrequelRelation) => relation.relationType === 'SEQUEL' && !media.some((mediaItem) => mediaItem.id === relation.node.id) && (relation.node.mediaListEntry @@ -498,18 +490,10 @@ export const filterRelations = (media: Media[]) => { relation.node.status !== 'CANCELLED' ); - if (sequels) { - const unwatchedRelations: Media[] = []; - - unwatchedRelations.push(...sequels); - - if (unwatchedRelations.length === 0) { - continue; - } - + if (sequels.length > 0) { unwatchedRelationsMap.push({ media: mediaItem, - unwatchedRelations + unwatchedRelations: sequels }); } } diff --git a/src/lib/Data/AniList/prequels.ts b/src/lib/Data/AniList/prequels.ts index f92cde26..e372500b 100644 --- a/src/lib/Data/AniList/prequels.ts +++ b/src/lib/Data/AniList/prequels.ts @@ -20,23 +20,27 @@ export interface MediaPrequel { }; } +export interface PrequelRelationNode { + id: number; + title: MediaTitle; + episodes: number; + status: MediaStatus; + mediaListEntry: { + status: MediaListEntryStatus; + progress: number; + }; + coverImage: { + extraLarge: string; + }; +} + +export interface PrequelRelation { + relationType: string; + node: PrequelRelationNode; +} + export interface PrequelRelations { - edges: { - relationType: string; - node: { - id: number; - title: MediaTitle; - episodes: number; - status: MediaStatus; - mediaListEntry: { - status: MediaListEntryStatus; - progress: number; - }; - coverImage: { - extraLarge: string; - }; - }; - }[]; + edges: PrequelRelation[]; } interface PrequelsPage { |