aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorFuwn <[email protected]>2023-12-13 04:26:46 -0800
committerFuwn <[email protected]>2023-12-13 04:26:46 -0800
commit0aee4b6514162aa34d0f8b4982273fb4adf2b349 (patch)
treefa407f04d31ddb9e2c80279b05483226d348d615 /src
parentfix(manga): no timeout if cached (diff)
downloaddue.moe-0aee4b6514162aa34d0f8b4982273fb4adf2b349.tar.xz
due.moe-0aee4b6514162aa34d0f8b4982273fb4adf2b349.zip
feat(anime): update airing time
Diffstat (limited to 'src')
-rw-r--r--src/lib/List/Anime/CleanAnimeList.svelte18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/lib/List/Anime/CleanAnimeList.svelte b/src/lib/List/Anime/CleanAnimeList.svelte
index e082f00a..0a49b7c0 100644
--- a/src/lib/List/Anime/CleanAnimeList.svelte
+++ b/src/lib/List/Anime/CleanAnimeList.svelte
@@ -8,6 +8,7 @@
import ListTitle from '../ListTitle.svelte';
import MediaTitle from '../MediaTitleDisplay.svelte';
import { outboundLink } from '$lib/Media/media';
+ import { onDestroy } from 'svelte';
export let media: Media[];
export let title: string;
@@ -19,6 +20,23 @@
export let completed = false;
export let previousAnimeList: Media[];
export let pendingUpdate: number | null;
+
+ 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;
+
+ if (untilAiring && untilAiring < 3600) return 10000;
+
+ return 300000;
+ })()
+ );
+
+ onDestroy(() => clearInterval(keyCacher));
</script>
<ListTitle time={endTime / 1000} count={media.length} custom={title} />