aboutsummaryrefslogtreecommitdiff
path: root/src/lib/List
diff options
context:
space:
mode:
authorFuwn <[email protected]>2026-03-01 14:39:20 -0800
committerFuwn <[email protected]>2026-03-01 15:24:05 -0800
commit60110fe8f23c53c837aff82d77a21ad8af4b5bb2 (patch)
tree4fa6f42cc1f352c3a55165cc2a7735d0b897c841 /src/lib/List
parentperf: optimise list hot paths and shared timers (diff)
downloaddue.moe-60110fe8f23c53c837aff82d77a21ad8af4b5bb2.tar.xz
due.moe-60110fe8f23c53c837aff82d77a21ad8af4b5bb2.zip
fix(anime): unify due classification and harden subtitle matching
Diffstat (limited to 'src/lib/List')
-rw-r--r--src/lib/List/Anime/DueAnimeList.svelte12
-rw-r--r--src/lib/List/Anime/UpcomingAnimeList.svelte6
2 files changed, 8 insertions, 10 deletions
diff --git a/src/lib/List/Anime/DueAnimeList.svelte b/src/lib/List/Anime/DueAnimeList.svelte
index 0c1e128a..da1f6c48 100644
--- a/src/lib/List/Anime/DueAnimeList.svelte
+++ b/src/lib/List/Anime/DueAnimeList.svelte
@@ -8,6 +8,7 @@
import AnimeList from './AnimeListTemplate.svelte';
import type { SubsPlease } from '$lib/Media/Anime/Airing/Subtitled/subsPlease';
import { injectAiringTime } from '$lib/Media/Anime/Airing/Subtitled/match';
+ import { hasDueEpisodes, hasNoAiredEpisodes } from '$lib/Media/Anime/Airing/classify';
import { addNotification } from '$lib/Notification/store';
import locale from '$stores/locale';
import identity from '$stores/identity';
@@ -78,15 +79,12 @@
($settings.displayNotStarted === true ? 0 : 1) &&
(media.mediaListEntry || { status: 'DROPPED' }).status !== 'DROPPED'
)
- .filter(
- (media: Media) =>
- // Outdated media
- (media.nextAiringEpisode || { episode: 0 }).episode - 1 >
- (media.mediaListEntry || { progress: 0 }).progress
+ .filter((media: Media) =>
+ // Outdated media
+ hasDueEpisodes(media)
)
.map((media: Media) => {
- if ((media.nextAiringEpisode || { episode: 0 }).episode - 1 <= 0)
- media.nextAiringEpisode = { episode: -1 };
+ if (hasNoAiredEpisodes(media)) media.nextAiringEpisode = { episode: -1 };
return media;
});
diff --git a/src/lib/List/Anime/UpcomingAnimeList.svelte b/src/lib/List/Anime/UpcomingAnimeList.svelte
index 4f285b47..a2cc963d 100644
--- a/src/lib/List/Anime/UpcomingAnimeList.svelte
+++ b/src/lib/List/Anime/UpcomingAnimeList.svelte
@@ -12,6 +12,7 @@
import locale from '$stores/locale';
import identity from '$stores/identity';
import { injectAiringTime } from '$lib/Media/Anime/Airing/Subtitled/match';
+ import { hasDueEpisodes, hasNoAiredEpisodes } from '$lib/Media/Anime/Airing/classify';
import revalidateAnime from '$stores/revalidateAnime';
export let user: AniListAuthorisation;
@@ -43,14 +44,13 @@
(media: Media) =>
// Outdated media
($settings.displayPlannedAnime ? media.mediaListEntry?.status === 'PLANNING' : false) ||
- (media.nextAiringEpisode || { episode: 0 }).episode - 1 <=
- (media.mediaListEntry || { progress: 0 }).progress
+ !hasDueEpisodes(media)
)
.map((media: Media) => {
// Adjust for planned anime
if (
($settings.displayPlannedAnime ? media.episodes !== 1 : true) &&
- (media.nextAiringEpisode || { episode: 0 }).episode - 1 <= 0
+ hasNoAiredEpisodes(media)
)
media.nextAiringEpisode = { episode: -1 };