From 13cf33feb685378cdebe97522f0b78e1cfe882a3 Mon Sep 17 00:00:00 2001 From: Fuwn Date: Fri, 22 Dec 2023 20:39:45 -0800 Subject: feat(manga): naive auto-authorisation --- src/lib/List/Manga/CleanMangaList.svelte | 13 +-- src/lib/List/Manga/MangaListTemplate.svelte | 127 ++++++++++++++++------------ 2 files changed, 83 insertions(+), 57 deletions(-) (limited to 'src/lib/List/Manga') diff --git a/src/lib/List/Manga/CleanMangaList.svelte b/src/lib/List/Manga/CleanMangaList.svelte index a41c8998..5254ad71 100644 --- a/src/lib/List/Manga/CleanMangaList.svelte +++ b/src/lib/List/Manga/CleanMangaList.svelte @@ -4,12 +4,12 @@ import { volumeCount } from '$lib/Media/Manga/volumes'; import { outboundLink } from '$lib/Media/links'; import settings from '../../../stores/settings'; - // import ListTitle from '../ListTitle.svelte'; + import ListTitle from '../ListTitle.svelte'; import MediaTitle from '../MediaTitleDisplay.svelte'; export let media: Media[]; export let cleanCache: () => void; - // export let endTime: number; + export let endTime: number; export let lastUpdatedMedia: number; export let updateMedia: ( id: number, @@ -19,11 +19,14 @@ export let pendingUpdate: number | null; export let due: boolean; export let rateLimited: boolean; + export let authorised: boolean; - +{#if authorised} + + Refresh + +{/if} {#if rateLimited} diff --git a/src/lib/List/Manga/MangaListTemplate.svelte b/src/lib/List/Manga/MangaListTemplate.svelte index 2cdeb094..5409a3d9 100644 --- a/src/lib/List/Manga/MangaListTemplate.svelte +++ b/src/lib/List/Manga/MangaListTemplate.svelte @@ -11,12 +11,14 @@ import ListTitle from '../ListTitle.svelte'; import Error from '$lib/Error.svelte'; import CleanMangaList from './CleanMangaList.svelte'; + import authorisedJson from '$lib/authorised.json'; export let user: AniListAuthorisation; export let identity: UserIdentity; export let displayUnresolved: boolean; export let due: boolean; + const authorised = authorisedJson.includes(identity.id); let mangaLists: Promise; let startTime: number; let endTime: number; @@ -45,22 +47,25 @@ if (manga === undefined) return []; - if ((await database.chapters.toArray()).length <= 0 && !force) return []; - - // if ($lastPruneTimes.chapters === 1) lastPruneTimes.setKey('chapters', new Date().getTime()); - // else { - // const currentDate = new Date(); - - // if ( - // (currentDate.getTime() - $lastPruneTimes.chapters) / 1000 / 60 > - // Math.max($settings.cacheMangaMinutes, 5) - // ) { - // lastPruneTimes.setKey('chapters', currentDate.getTime()); - // (async () => { - // await database.chapters.bulkDelete((await database.chapters.toArray()).map((m) => m.id)); - // })(); - // } - // } + if (!authorised && (await database.chapters.toArray()).length <= 0 && !force) return []; + + if (authorised) { + if ($lastPruneTimes.chapters === 1) lastPruneTimes.setKey('chapters', new Date().getTime()); + else { + const currentDate = new Date(); + if ( + (currentDate.getTime() - $lastPruneTimes.chapters) / 1000 / 60 > + Math.max($settings.cacheMangaMinutes, 5) + ) { + lastPruneTimes.setKey('chapters', currentDate.getTime()); + (async () => { + await database.chapters.bulkDelete( + (await database.chapters.toArray()).map((m) => m.id) + ); + })(); + } + } + } const releasingMedia = manga.filter( (media: Media) => @@ -173,17 +178,19 @@ {#await mangaLists} - - { - cleanCache(); - - forceFlag = true; - }}>Refresh - + {#if !authorised} + + { + cleanCache(); + + forceFlag = true; + }}>Refresh + + {/if} {#if previousMangaList} {:else} - + {#if authorised} + + {/if}
  • Loading {progress.toFixed(0)}% ...
{/if} {:then media} {#await cleanMedia(media, displayUnresolved, forceFlag)} - - { - cleanCache(); - - forceFlag = true; - }}>Refresh - + {#if !authorised} + + { + cleanCache(); + + forceFlag = true; + }}>Refresh + + {/if} {#if previousMangaList} {:else} - + {#if authorised} + + {/if}
  • Loading {progress.toFixed(0)}% ...
{/if} {:then cleanedMedia} - - { - cleanCache(); - - forceFlag = true; - }}>Refresh - + {#if !authorised} + + { + cleanCache(); + + forceFlag = true; + }}>Refresh + + {/if} {:catch} - + {#if authorised} + + {/if} {/await} -- cgit v1.2.3