aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorFuwn <[email protected]>2023-09-06 00:15:57 -0700
committerFuwn <[email protected]>2023-09-06 00:15:57 -0700
commit6cc6424d978efcf6c1765d388181e49e75255c02 (patch)
tree8c9df07e0435de1335af61699cff898da05a45e9 /src
parentfeat: show completed anime section (diff)
downloaddue.moe-6cc6424d978efcf6c1765d388181e49e75255c02.tar.xz
due.moe-6cc6424d978efcf6c1765d388181e49e75255c02.zip
feat(list): filter paused media
Diffstat (limited to 'src')
-rw-r--r--src/lib/AniList/media.ts3
-rw-r--r--src/lib/List/Due/AnimeList.svelte2
-rw-r--r--src/lib/List/Due/MangaList.svelte2
-rw-r--r--src/lib/List/WatchingAnimeList.svelte6
-rw-r--r--src/routes/settings/+page.svelte10
-rw-r--r--src/stores/settings.ts4
6 files changed, 23 insertions, 4 deletions
diff --git a/src/lib/AniList/media.ts b/src/lib/AniList/media.ts
index 7cc42827..f6f6a68e 100644
--- a/src/lib/AniList/media.ts
+++ b/src/lib/AniList/media.ts
@@ -27,6 +27,7 @@ export interface Media {
};
mediaListEntry?: {
progress: number;
+ status: string;
};
startDate: {
year: number;
@@ -114,7 +115,7 @@ export const mediaListCollection = async (
format
title { romaji english native }
nextAiringEpisode { episode timeUntilAiring }
- mediaListEntry { progress }
+ mediaListEntry { progress status }
startDate { year }
} } }
}
diff --git a/src/lib/List/Due/AnimeList.svelte b/src/lib/List/Due/AnimeList.svelte
index 224a3e49..5024f8c2 100644
--- a/src/lib/List/Due/AnimeList.svelte
+++ b/src/lib/List/Due/AnimeList.svelte
@@ -47,6 +47,8 @@
const releasingMedia = flattenedLists.filter(
(media: Media) =>
media.status == 'RELEASING' &&
+ (media.mediaListEntry || { status: 'DROPPED' }).status !=
+ ($settings.includePausedMedia ? '' : 'PAUSED') &&
(media.mediaListEntry || { progress: 0 }).progress >=
($settings.displayNotStarted === true ? 0 : 1)
);
diff --git a/src/lib/List/Due/MangaList.svelte b/src/lib/List/Due/MangaList.svelte
index 90b2f497..e7a1321f 100644
--- a/src/lib/List/Due/MangaList.svelte
+++ b/src/lib/List/Due/MangaList.svelte
@@ -59,6 +59,8 @@
(media: Media) =>
media.status == 'RELEASING' &&
media.format != 'NOVEL' &&
+ (media.mediaListEntry || { status: 'DROPPED' }).status !=
+ ($settings.includePausedMedia ? '' : 'PAUSED') &&
(media.mediaListEntry || { progress: 0 }).progress >=
($settings.displayNotStarted === true ? 0 : 1)
);
diff --git a/src/lib/List/WatchingAnimeList.svelte b/src/lib/List/WatchingAnimeList.svelte
index 19ef81ce..52e3c505 100644
--- a/src/lib/List/WatchingAnimeList.svelte
+++ b/src/lib/List/WatchingAnimeList.svelte
@@ -30,8 +30,10 @@
(media: Media) =>
media.status !== 'RELEASING' &&
media.status !== 'NOT_YET_RELEASED' &&
- (media.mediaListEntry || { progress: 0 }).progress >=
- ($settings.displayNotStarted === true ? 0 : 1)
+ (media.mediaListEntry || { status: 'DROPPED' }).status != 'DROPPED' &&
+ (media.mediaListEntry || { status: 'DROPPED' }).status !=
+ ($settings.includePausedMedia ? '' : 'PAUSED') &&
+ (media.mediaListEntry || { progress: 0 }).progress >= ($settings.displayNotStarted ? 0 : 1)
);
let finalMedia = releasingMedia;
diff --git a/src/routes/settings/+page.svelte b/src/routes/settings/+page.svelte
index 5889caf9..962c5fc6 100644
--- a/src/routes/settings/+page.svelte
+++ b/src/routes/settings/+page.svelte
@@ -64,6 +64,16 @@
>
<br />
+ <a
+ href={'#'}
+ on:click={() =>
+ $settings.includePausedMedia
+ ? settings.setKey('includePausedMedia', false)
+ : settings.setKey('includePausedMedia', true)}
+ >{$settings.includePausedMedia ? 'Exclude' : 'Include'} paused media</a
+ >
+ <br />
+
<p />
<a
diff --git a/src/stores/settings.ts b/src/stores/settings.ts
index 2edc31cb..c931592c 100644
--- a/src/stores/settings.ts
+++ b/src/stores/settings.ts
@@ -13,6 +13,7 @@ interface Settings {
forceLightTheme: boolean;
linkToAniList: boolean;
showCompletedAnime: boolean;
+ includePausedMedia: boolean;
}
const defaultSettings: Settings = {
@@ -26,7 +27,8 @@ const defaultSettings: Settings = {
sortByDifference: false,
forceLightTheme: false,
linkToAniList: true,
- showCompletedAnime: true
+ showCompletedAnime: true,
+ includePausedMedia: true
};
const createStore = () => {