diff options
| author | Fuwn <[email protected]> | 2024-02-02 08:44:11 -0800 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2024-02-02 08:44:11 -0800 |
| commit | 847f7e31af94764bae36b4e4807de6256adee1ea (patch) | |
| tree | 58c516e8a158daa86f6c6613e12586c7200f6428 /src/lib | |
| parent | fix(badges): await badges (diff) | |
| download | due.moe-847f7e31af94764bae36b4e4807de6256adee1ea.tar.xz due.moe-847f7e31af94764bae36b4e4807de6256adee1ea.zip | |
fix(anime): filter for live countdown
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${ |