aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFuwn <[email protected]>2024-06-15 03:16:13 -0700
committerFuwn <[email protected]>2024-06-15 03:16:13 -0700
commit621cce4029e3fb519dc9a9dd2411fac7562a3d4c (patch)
tree0686399074759003070b5b86adf3214154ae0726
parentfix(layout): ensure navigation is loaded (diff)
downloaddue.moe-621cce4029e3fb519dc9a9dd2411fac7562a3d4c.tar.xz
due.moe-621cce4029e3fb519dc9a9dd2411fac7562a3d4c.zip
feat(CleanAnimeList): total due episode count setting
-rw-r--r--src/lib/List/Anime/CleanAnimeList.svelte17
-rw-r--r--src/lib/Settings/Categories/Display.svelte4
-rw-r--r--src/stores/settings.ts2
3 files changed, 22 insertions, 1 deletions
diff --git a/src/lib/List/Anime/CleanAnimeList.svelte b/src/lib/List/Anime/CleanAnimeList.svelte
index 3474f0b6..f9584659 100644
--- a/src/lib/List/Anime/CleanAnimeList.svelte
+++ b/src/lib/List/Anime/CleanAnimeList.svelte
@@ -30,6 +30,13 @@
export let dummy = false;
let keyCacher: NodeJS.Timeout;
+ let totalEpisodeDueCount = media
+ .map((anime) => {
+ if (anime.mediaListEntry?.status === 'COMPLETED') return 0;
+
+ return (anime.nextAiringEpisode?.episode || 1) - (anime.mediaListEntry?.progress || 0) - 1;
+ })
+ .reduce((a, b) => a + b, 0);
onMount(() => {
if (dummy) return;
@@ -91,7 +98,15 @@
};
</script>
-<ListTitle time={endTime / 1000} count={media.length} {title} hideTime={dummy} hideCount={dummy} />
+<ListTitle
+ time={endTime / 1000}
+ count={$settings.displayTotalDueEpisodes && !notYetReleased && !completed && !upcoming
+ ? totalEpisodeDueCount
+ : media.length}
+ {title}
+ hideTime={dummy}
+ hideCount={dummy}
+/>
{#if media.length === 0}
No anime to display. <button on:click={() => (animeLists = cleanCache(user, $identity))}>
diff --git a/src/lib/Settings/Categories/Display.svelte b/src/lib/Settings/Categories/Display.svelte
index 280f92ad..0b23904b 100644
--- a/src/lib/Settings/Categories/Display.svelte
+++ b/src/lib/Settings/Categories/Display.svelte
@@ -267,6 +267,10 @@
setting="displayCopyMediaTitleNotLink"
text="Copy media title instead of linking"
/>
+<SettingCheckboxToggle
+ setting="displayTotalDueEpisodes"
+ text="Display total number of due episodes instead of due media count"
+/>
<select bind:value={$settings.displayTitleFormat}>
<option value="english">
{$locale().settings.display.categories.media.fields.mediaTitleFormat.options.english}
diff --git a/src/stores/settings.ts b/src/stores/settings.ts
index cff1dc2b..7d1fe557 100644
--- a/src/stores/settings.ts
+++ b/src/stores/settings.ts
@@ -59,6 +59,7 @@ export interface Settings {
settingsVersion?: string;
displayBlurAdultContent: boolean;
displayCopyMediaTitleNotLink: boolean;
+ displayTotalDueEpisodes: boolean;
}
const defaultSettings: Settings = {
@@ -96,6 +97,7 @@ const defaultSettings: Settings = {
displayDisableLastActivityWarning: false,
displayBlurAdultContent: true,
displayCopyMediaTitleNotLink: false,
+ displayTotalDueEpisodes: false,
// Calculation
calculateChaptersRoundedDown: true,