aboutsummaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorFuwn <[email protected]>2023-09-10 02:09:38 -0700
committerFuwn <[email protected]>2023-09-10 02:11:59 -0700
commit3f0754c899f84648f05b3a8fbf0a6e66d9ec3bdf (patch)
treea1f3bee47db0c7097703e0247c120e66d1d9e6b1 /src/lib
parentrefactor(anime): generalise episodes (diff)
downloaddue.moe-3f0754c899f84648f05b3a8fbf0a6e66d9ec3bdf.tar.xz
due.moe-3f0754c899f84648f05b3a8fbf0a6e66d9ec3bdf.zip
refactor(anime): generalise clean cache
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/List/Due/AnimeList.svelte29
-rw-r--r--src/lib/List/UpcomingAnimeList.svelte20
-rw-r--r--src/lib/List/WatchingAnimeList.svelte29
-rw-r--r--src/lib/anime.ts17
4 files changed, 39 insertions, 56 deletions
diff --git a/src/lib/List/Due/AnimeList.svelte b/src/lib/List/Due/AnimeList.svelte
index 0be1ba1e..66a26712 100644
--- a/src/lib/List/Due/AnimeList.svelte
+++ b/src/lib/List/Due/AnimeList.svelte
@@ -7,7 +7,7 @@
import anime from '../../../stores/anime';
import settings from '../../../stores/settings';
import lastPruneTimes from '../../../stores/lastPruneTimes';
- import { airingTime, totalEpisodes } from '$lib/anime';
+ import { airingTime, cleanCache, totalEpisodes } from '$lib/anime';
export let user: AniListAuthorisation;
export let identity: UserIdentity;
@@ -107,27 +107,9 @@
const updateMedia = async (id: number, progress: number | undefined) => {
fetch(`/anilist/increment?id=${id}&progress=${(progress || 0) + 1}`).then(() => {
- animeLists = mediaListCollection(
- user,
- identity,
- Type.Anime,
- $anime,
- $lastPruneTimes.anime,
- true
- );
+ animeLists = cleanCache(user, identity);
});
};
-
- const cleanCache = () => {
- animeLists = mediaListCollection(
- user,
- identity,
- Type.Anime,
- $anime,
- $lastPruneTimes.anime,
- true
- );
- };
</script>
{#await animeLists}
@@ -144,7 +126,12 @@
{#if cleanedMedia.length === 0}
<ul>
- <li>No anime to display. <a href={'#'} on:click={cleanCache}>Force refresh</a></li>
+ <li>
+ No anime to display. <a
+ href={'#'}
+ on:click={() => (animeLists = cleanCache(user, identity))}>Force refresh</a
+ >
+ </li>
</ul>
{/if}
diff --git a/src/lib/List/UpcomingAnimeList.svelte b/src/lib/List/UpcomingAnimeList.svelte
index 7cac01fc..bb52b573 100644
--- a/src/lib/List/UpcomingAnimeList.svelte
+++ b/src/lib/List/UpcomingAnimeList.svelte
@@ -7,7 +7,7 @@
import anime from '../../stores/anime';
import lastPruneTimes from '../../stores/lastPruneTimes';
import settings from '../../stores/settings';
- import { airingTime } from '$lib/anime';
+ import { airingTime, cleanCache } from '$lib/anime';
export let user: AniListAuthorisation;
export let identity: UserIdentity;
@@ -72,17 +72,6 @@
return finalMedia;
};
-
- const cleanCache = () => {
- animeLists = mediaListCollection(
- user,
- identity,
- Type.Anime,
- $anime,
- $lastPruneTimes.anime,
- true
- );
- };
</script>
{#await animeLists}
@@ -99,7 +88,12 @@
{#if cleanedMedia.length === 0}
<ul>
- <li>No anime to display. <a href={'#'} on:click={cleanCache}>Force refresh</a></li>
+ <li>
+ No anime to display. <a
+ href={'#'}
+ on:click={() => (animeLists = cleanCache(user, identity))}>Force refresh</a
+ >
+ </li>
</ul>
{/if}
diff --git a/src/lib/List/WatchingAnimeList.svelte b/src/lib/List/WatchingAnimeList.svelte
index f22d80df..e76b1ef0 100644
--- a/src/lib/List/WatchingAnimeList.svelte
+++ b/src/lib/List/WatchingAnimeList.svelte
@@ -7,7 +7,7 @@
import anime from '../../stores/anime';
import lastPruneTimes from '../../stores/lastPruneTimes';
import settings from '../../stores/settings';
- import { totalEpisodes } from '$lib/anime';
+ import { cleanCache, totalEpisodes } from '$lib/anime';
export let user: AniListAuthorisation;
export let identity: UserIdentity;
@@ -62,27 +62,9 @@
const updateMedia = async (id: number, progress: number | undefined) => {
fetch(`/anilist/increment?id=${id}&progress=${(progress || 0) + 1}`).then(() => {
- animeLists = mediaListCollection(
- user,
- identity,
- Type.Anime,
- $anime,
- $lastPruneTimes.anime,
- true
- );
+ animeLists = cleanCache(user, identity);
});
};
-
- const cleanCache = () => {
- animeLists = mediaListCollection(
- user,
- identity,
- Type.Anime,
- $anime,
- $lastPruneTimes.anime,
- true
- );
- };
</script>
{#await animeLists}
@@ -99,7 +81,12 @@
{#if cleanedMedia.length === 0}
<ul>
- <li>No anime to display. <a href={'#'} on:click={cleanCache}>Force refresh</a></li>
+ <li>
+ No anime to display. <a
+ href={'#'}
+ on:click={() => (animeLists = cleanCache(user, identity))}>Force refresh</a
+ >
+ </li>
</ul>
{/if}
diff --git a/src/lib/anime.ts b/src/lib/anime.ts
index 8547882f..2ebdf25e 100644
--- a/src/lib/anime.ts
+++ b/src/lib/anime.ts
@@ -1,4 +1,19 @@
-import type { Media } from './AniList/media';
+import { get } from 'svelte/store';
+import anime from '../stores/anime';
+import { mediaListCollection, type Media, Type } from './AniList/media';
+import lastPruneTimes from '../stores/lastPruneTimes';
+import type { AniListAuthorisation, UserIdentity } from './AniList/identity';
+
+export const cleanCache = (user: AniListAuthorisation, identity: UserIdentity) => {
+ return mediaListCollection(
+ user,
+ identity,
+ Type.Anime,
+ get(anime),
+ get(lastPruneTimes).anime,
+ true
+ );
+};
export const totalEpisodes = (anime: Media) => {
return anime.episodes === null ? '' : `<span style="opacity: 50%">/${anime.episodes}</span>`;