diff options
| author | Fuwn <[email protected]> | 2024-08-23 15:05:46 -0700 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2024-08-23 15:05:46 -0700 |
| commit | 074f541dc00ca9811ca42b4e71f2e132b4c929cd (patch) | |
| tree | 351380f3e7e63994db166c99317288fcc072ecc7 | |
| parent | feat(SequelCatcher): show current progress (diff) | |
| download | due.moe-074f541dc00ca9811ca42b4e71f2e132b4c929cd.tar.xz due.moe-074f541dc00ca9811ca42b4e71f2e132b4c929cd.zip | |
feat(SequelCatcher): side stories toggle
| -rw-r--r-- | src/lib/Data/AniList/media.ts | 5 | ||||
| -rw-r--r-- | src/lib/Tools/SequelCatcher/List.svelte | 6 |
2 files changed, 8 insertions, 3 deletions
diff --git a/src/lib/Data/AniList/media.ts b/src/lib/Data/AniList/media.ts index e99c6dff..d3b38005 100644 --- a/src/lib/Data/AniList/media.ts +++ b/src/lib/Data/AniList/media.ts @@ -476,13 +476,14 @@ export interface UnwatchedRelationMap { unwatchedRelations: PrequelRelation[]; } -export const filterRelations = (media: Media[]) => { +export const filterRelations = (media: Media[], includeSideStories = false) => { const unwatchedRelationsMap: UnwatchedRelationMap[] = []; for (const mediaItem of media) { const sequels = mediaItem.relations.edges.filter( (relation: PrequelRelation) => - relation.relationType === 'SEQUEL' && + (relation.relationType === 'SEQUEL' || + (relation.relationType === 'SIDE_STORY' && includeSideStories)) && !media.some((mediaItem) => mediaItem.id === relation.node.id) && (relation.node.mediaListEntry ? relation.node.mediaListEntry.status !== 'COMPLETED' diff --git a/src/lib/Tools/SequelCatcher/List.svelte b/src/lib/Tools/SequelCatcher/List.svelte index 71513e76..8205b8c7 100644 --- a/src/lib/Tools/SequelCatcher/List.svelte +++ b/src/lib/Tools/SequelCatcher/List.svelte @@ -7,6 +7,7 @@ export let mediaListUnchecked: Media[]; let includeCurrent = false; + let includeSideStories = false; const matchCheck = (media: Media | undefined, swap = false) => (media && @@ -25,11 +26,14 @@ <input type="checkbox" bind:checked={includeCurrent} /> Include current (watching, rewatching, paused) +<br /> +<input type="checkbox" bind:checked={includeSideStories} /> Include side stories (e.g., OVAs, +specials, etc.) <p /> <ol class="media-list"> - {#each filterRelations(mediaListUnchecked.filter((media) => media.mediaListEntry?.status === 'COMPLETED')) as { media, unwatchedRelations }} + {#each filterRelations( mediaListUnchecked.filter((media) => media.mediaListEntry?.status === 'COMPLETED'), includeSideStories ) as { media, unwatchedRelations }} {#if unwatchedRelations.filter( (relation) => matchCheck(mediaListUnchecked.find((media) => media.id === relation.node.id)) ).length !== 0 || includeCurrent} <li> <a href={outboundLink(media, 'anime', $settings.displayOutboundLinksTo)} target="_blank"> |