diff options
| author | Fuwn <[email protected]> | 2024-02-03 08:44:49 -0800 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2024-02-03 08:44:49 -0800 |
| commit | 92dc2b4904113dc1926343317e2da5a08d86d049 (patch) | |
| tree | 4fc7c635f54db0b4f29c25eb8290b213115819ba /src/lib | |
| parent | feat(upcoming): inject airing time for order (diff) | |
| download | due.moe-92dc2b4904113dc1926343317e2da5a08d86d049.tar.xz due.moe-92dc2b4904113dc1926343317e2da5a08d86d049.zip | |
fix(anime): unaired subtitle episode
Diffstat (limited to 'src/lib')
| -rw-r--r-- | src/lib/List/Anime/CleanAnimeList.svelte | 6 | ||||
| -rw-r--r-- | src/lib/List/Anime/DueAnimeList.svelte | 4 | ||||
| -rw-r--r-- | src/lib/List/Anime/UpcomingAnimeList.svelte | 4 | ||||
| -rw-r--r-- | src/lib/Media/Anime/Airing/AiringTime.svelte | 8 | ||||
| -rw-r--r-- | src/lib/Media/Anime/Airing/Subtitled/match.ts | 9 |
5 files changed, 14 insertions, 17 deletions
diff --git a/src/lib/List/Anime/CleanAnimeList.svelte b/src/lib/List/Anime/CleanAnimeList.svelte index a4839190..29ca0e67 100644 --- a/src/lib/List/Anime/CleanAnimeList.svelte +++ b/src/lib/List/Anime/CleanAnimeList.svelte @@ -120,11 +120,7 @@ {#if !completed} [{anime.nextAiringEpisode?.episode === -1 ? '?' - : (anime.nextAiringEpisode?.episode || 1) - - ((anime.nextAiringEpisode?.airingAt || 999) < - (anime.nextAiringEpisode?.nativeAiringAt || 0) - ? 2 - : 1)}] + : (anime.nextAiringEpisode?.episode || 1) - 1}] <br /> <AiringTime originalAnime={anime} {subsPlease} /> {/if} diff --git a/src/lib/List/Anime/DueAnimeList.svelte b/src/lib/List/Anime/DueAnimeList.svelte index ce946ff4..90871a82 100644 --- a/src/lib/List/Anime/DueAnimeList.svelte +++ b/src/lib/List/Anime/DueAnimeList.svelte @@ -45,6 +45,7 @@ if (anime === undefined) return []; let dueAnime = anime + .map((media) => injectAiringTime(media, subsPlease)) .filter( // Releasing media (media: Media) => @@ -65,8 +66,7 @@ media.nextAiringEpisode = { episode: -1 }; return media; - }) - .map((media) => injectAiringTime(media, subsPlease)); + }); if (!displayUnresolved) dueAnime = dueAnime.filter((media: Media) => media.nextAiringEpisode?.episode !== -1); diff --git a/src/lib/List/Anime/UpcomingAnimeList.svelte b/src/lib/List/Anime/UpcomingAnimeList.svelte index 13cae14a..012631f7 100644 --- a/src/lib/List/Anime/UpcomingAnimeList.svelte +++ b/src/lib/List/Anime/UpcomingAnimeList.svelte @@ -38,6 +38,7 @@ const filterAnime = (status: 'RELEASING' | 'NOT_YET_RELEASED') => anime .filter((media: Media) => media.status === status && media.nextAiringEpisode !== null) + .map((media) => injectAiringTime(media, subsPlease)) .filter( (media: Media) => // Outdated media @@ -54,8 +55,7 @@ media.nextAiringEpisode = { episode: -1 }; return media; - }) - .map((media) => injectAiringTime(media, subsPlease)); + }); let upcomingAnime = filterAnime(plannedOnly ? 'NOT_YET_RELEASED' : 'RELEASING'); if (!displayUnresolved) diff --git a/src/lib/Media/Anime/Airing/AiringTime.svelte b/src/lib/Media/Anime/Airing/AiringTime.svelte index 802b766b..3fe8df2e 100644 --- a/src/lib/Media/Anime/Airing/AiringTime.svelte +++ b/src/lib/Media/Anime/Airing/AiringTime.svelte @@ -15,7 +15,7 @@ let opacity = 100; let timeFrame = ''; let time = ''; - let nextEpisode = 0; + let nextEpisode = anime.nextAiringEpisode?.episode || 0; let few = true; let dateString = ''; @@ -100,12 +100,6 @@ } opacity = Math.max(50, 100 - (untilAiring / 60 / 60 / 24 / 7) * 50); - nextEpisode = - anime.nextAiringEpisode?.nativeAiringAt && - !upcoming && - anime.nextAiringEpisode.nativeAiringAt < Date.now() / 1000 + 1 * 6 * 60 * 60 - ? anime.nextAiringEpisode.episode - 1 - : anime.nextAiringEpisode?.episode || 0; dateString = new Date(airingAt ? airingAt * 1000 : 0).toLocaleDateString([], { weekday: 'long', diff --git a/src/lib/Media/Anime/Airing/Subtitled/match.ts b/src/lib/Media/Anime/Airing/Subtitled/match.ts index 26782a8b..82dc5e7d 100644 --- a/src/lib/Media/Anime/Airing/Subtitled/match.ts +++ b/src/lib/Media/Anime/Airing/Subtitled/match.ts @@ -106,7 +106,7 @@ export const injectAiringTime = (anime: Media, subsPlease: SubsPlease | null) => const nativeTime = new Date(airingAt ? airingAt * 1000 : 0); let untilAiring; let time = new Date(airingAt ? airingAt * 1000 : 0); - const nextEpisode = anime.nextAiringEpisode?.episode || 0; + let nextEpisode = anime.nextAiringEpisode?.episode || 0; if ( !( @@ -140,6 +140,13 @@ export const injectAiringTime = (anime: Media, subsPlease: SubsPlease | null) => } } + if ( + airingAt && + nativeTime.getTime() !== time.getTime() && + nativeTime.getTime() - time.getTime() > 24 * 60 * 60 * 1000 + ) + nextEpisode -= 1; + return { ...anime, nextAiringEpisode: { |