diff options
| author | Fuwn <[email protected]> | 2023-11-22 23:59:39 -0800 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2023-11-22 23:59:39 -0800 |
| commit | 0bc71a759ebf50399b69f852db51fc19e3377984 (patch) | |
| tree | ff195aafc9bb4e893b19e8fdb150807e0f563c62 /src/lib | |
| parent | fix(settings): no default livechart (diff) | |
| download | due.moe-0bc71a759ebf50399b69f852db51fc19e3377984.tar.xz due.moe-0bc71a759ebf50399b69f852db51fc19e3377984.zip | |
fix(anime): remove time desync on outdated caches
Diffstat (limited to 'src/lib')
| -rw-r--r-- | src/lib/AniList/media.ts | 4 | ||||
| -rw-r--r-- | src/lib/List/Anime/DueAnimeList.svelte | 5 | ||||
| -rw-r--r-- | src/lib/List/Anime/UpcomingAnimeList.svelte | 3 | ||||
| -rw-r--r-- | src/lib/Media/anime.ts | 5 |
4 files changed, 7 insertions, 10 deletions
diff --git a/src/lib/AniList/media.ts b/src/lib/AniList/media.ts index 1ae33f7c..2898b3df 100644 --- a/src/lib/AniList/media.ts +++ b/src/lib/AniList/media.ts @@ -36,7 +36,7 @@ export interface Media { }; nextAiringEpisode?: { episode: number; - timeUntilAiring?: number; + airingAt?: number; }; mediaListEntry?: { progress: number; @@ -94,7 +94,7 @@ const collectionQueryTemplate = (type: Type, userId: number, includeCompleted: b media { id status type episodes chapters format duration title { romaji english native } - nextAiringEpisode { episode timeUntilAiring } + nextAiringEpisode { episode airingAt } mediaListEntry { progress progressVolumes status repeat score(format: POINT_100) startedAt { year } completedAt { year } diff --git a/src/lib/List/Anime/DueAnimeList.svelte b/src/lib/List/Anime/DueAnimeList.svelte index 951c2df5..d55ea5b1 100644 --- a/src/lib/List/Anime/DueAnimeList.svelte +++ b/src/lib/List/Anime/DueAnimeList.svelte @@ -78,10 +78,7 @@ return difference(a) - difference(b); } else { - return ( - (a.nextAiringEpisode?.timeUntilAiring || 9999) - - (b.nextAiringEpisode?.timeUntilAiring || 9999) - ); + return (a.nextAiringEpisode?.airingAt || 9999) - (b.nextAiringEpisode?.airingAt || 9999); } }); diff --git a/src/lib/List/Anime/UpcomingAnimeList.svelte b/src/lib/List/Anime/UpcomingAnimeList.svelte index 2b1d8a4b..fef79711 100644 --- a/src/lib/List/Anime/UpcomingAnimeList.svelte +++ b/src/lib/List/Anime/UpcomingAnimeList.svelte @@ -54,8 +54,7 @@ upcomingAnime.sort( (a: Media, b: Media) => - (a.nextAiringEpisode?.timeUntilAiring || 9999) - - (b.nextAiringEpisode?.timeUntilAiring || 9999) + (a.nextAiringEpisode?.airingAt || 9999) - (b.nextAiringEpisode?.airingAt || 9999) ); if (!endTime) endTime = performance.now() - startTime; diff --git a/src/lib/Media/anime.ts b/src/lib/Media/anime.ts index 8fecbd6c..baef7e14 100644 --- a/src/lib/Media/anime.ts +++ b/src/lib/Media/anime.ts @@ -24,9 +24,10 @@ export const totalEpisodes = (anime: Media) => { }; export const airingTime = (anime: Media, upcoming = false) => { - const untilAiring = anime.nextAiringEpisode?.timeUntilAiring; + const airingAt = anime.nextAiringEpisode?.airingAt; + const untilAiring = airingAt ? Math.round((airingAt - Date.now() / 1000) * 100) / 100 : undefined; let timeFrame; - const time = new Date(Date.now() + (untilAiring || 0) * 1000).toLocaleTimeString([], { + const time = new Date(airingAt ? airingAt * 1000 : 0).toLocaleTimeString([], { hour: 'numeric', minute: '2-digit' }); |