From 7ab702e99060287db88bdbf03ea161e42fe9cf85 Mon Sep 17 00:00:00 2001 From: break27 Date: Tue, 23 Jun 2026 10:45:21 +0800 Subject: [PATCH] fix: progress accuracy in slicing mode --- index.html | 4 ++-- main.py | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/index.html b/index.html index e4ca1f2..8890615 100644 --- a/index.html +++ b/index.html @@ -448,11 +448,11 @@ while (await new Promise(o => setTimeout(o, 1000, true))) { $('#send').classList.add('pulse'); $('#timezoneLabel').innerText = Temporal.Now.zonedDateTimeISO(locale.timezone).toLocaleString(locale.name); - let { done, skip, email, subject, recipient } = await Rpc2.invoke('progress').catch(() => new Object()); + let { done, skip, orts, email, subject, recipient } = await Rpc2.invoke('progress').catch(() => new Object()); let limit = minor || major - 1; let chunk = $('#chunksize').valueAsNumber; let total = $('#slice').checked ? Math.min(chunk, limit - chunk * $('#offset').valueAsNumber) : limit; - let index = $('#slice').checked ? done : done + skip; + let index = $('#slice').checked ? done + skip - orts : done + skip; $('#progressLabel').innerText = `${parseFloat(index / total * 100).toFixed(2)}% (${index}/${total})`; $('#subjectLabel').innerText = subject ?? ''; diff --git a/main.py b/main.py index 49fd1d5..feb6e2c 100644 --- a/main.py +++ b/main.py @@ -373,6 +373,7 @@ def main(driver: Chrome, logger = logging.getLogger('main')): progress['done'] = 0 progress['skip'] = 0 + progress['orts'] = 0 progress['subject'] = subject logger.info('Done') except Cancel: @@ -412,6 +413,7 @@ def main(driver: Chrome, logger = logging.getLogger('main')): if index < options.get('start', 2) or progress['done'] >= options.get('limit', limit): logger.info("[%d/%d] Not planned; skipping '%s'", index-1, limit-1, email) + progress['orts'] += 1 raise Skip() match options.get('occurrence'):