aboutsummaryrefslogtreecommitdiff
path: root/src/lib/List
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/List')
-rw-r--r--src/lib/List/Manga/MangaListTemplate.svelte16
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