diff options
Diffstat (limited to 'src/lib')
| -rw-r--r-- | src/lib/List/Manga/MangaListTemplate.svelte | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/src/lib/List/Manga/MangaListTemplate.svelte b/src/lib/List/Manga/MangaListTemplate.svelte index a184c6dc..d24713bc 100644 --- a/src/lib/List/Manga/MangaListTemplate.svelte +++ b/src/lib/List/Manga/MangaListTemplate.svelte @@ -22,6 +22,7 @@ let lastUpdatedMedia = -1; let previousMangaList: Media[]; let pendingUpdate: number | null = null; + let progress = 0; const keyCacher = setInterval(() => { startTime = performance.now(); @@ -37,6 +38,8 @@ onDestroy(() => clearInterval(keyCacher)); const cleanMedia = async (manga: Media[], displayUnresolved: boolean) => { + progress = 0; + if (manga === undefined) return []; if ($lastPruneTimes.chapters === 1) { @@ -68,6 +71,7 @@ ($settings.displayNotStarted === true ? 0 : 1) ); let finalMedia = releasingMedia; + const progressStep = 100 / finalMedia.length; const chapterPromises = finalMedia.map((m: Media) => // A = On 1 second interval, // B = a maximum of 5 requests per second are allowed. @@ -77,7 +81,13 @@ chapterCount(identity, m, $settings.disableGuessing) ) ); - const chapterCounts = await Promise.all(chapterPromises); + const chapterCounts: (number | null)[] = []; + + for (let i = 0; i < chapterPromises.length; i++) { + chapterCounts.push(await chapterPromises[i]); + + progress += progressStep; + } finalMedia.forEach((m: Media, i) => (m.episodes = chapterCounts[i] || -1337)); @@ -157,7 +167,7 @@ {:else} <ListTitle /> - <ul><li>Loading ...</li></ul> + <ul><li>Loading {progress.toFixed(0)}% ...</li></ul> {/if} {:then media} {#await cleanMedia(media, displayUnresolved)} @@ -174,7 +184,7 @@ {:else} <ListTitle /> - <ul><li>Loading ...</li></ul> + <ul><li>Loading {progress.toFixed(0)}% ...</li></ul> {/if} {:then cleanedMedia} <CleanMangaList |