diff options
Diffstat (limited to 'src/lib')
| -rw-r--r-- | src/lib/List/Anime/CleanAnimeList.svelte | 31 |
1 files changed, 18 insertions, 13 deletions
diff --git a/src/lib/List/Anime/CleanAnimeList.svelte b/src/lib/List/Anime/CleanAnimeList.svelte index f2f2804e..f73c7b23 100644 --- a/src/lib/List/Anime/CleanAnimeList.svelte +++ b/src/lib/List/Anime/CleanAnimeList.svelte @@ -39,22 +39,27 @@ let hoverCoverState: HoverCoverResponse = {}; - const keyCacher = setInterval( - () => (media = media), - (() => { - const airingAt = media.find((m) => m.nextAiringEpisode?.airingAt)?.nextAiringEpisode - ?.airingAt; - const untilAiring = airingAt - ? Math.round((airingAt - Date.now() / 1000) * 100) / 100 - : undefined; + let keyCacher: NodeJS.Timeout; - if (untilAiring && untilAiring < 3600) return 10000; + onMount(() => { + keyCacher = setInterval( + () => (media = media), + (() => { + const airingAt = media + .filter( + (m) => + (m.status === 'RELEASING' || m.status === 'NOT_YET_RELEASED') && + m.nextAiringEpisode?.airingAt + ) + .find((m) => m.nextAiringEpisode?.airingAt)?.nextAiringEpisode?.airingAt; + const untilAiring = airingAt + ? Math.round((airingAt - Date.now() / 1000) * 100) / 100 + : undefined; - return 300000; - })() - ); + return untilAiring ? (untilAiring < 0 ? 1000 : untilAiring) : 1000; + })() + ); - onMount(() => { if (browser) localStorage.setItem( `last${ |