fix: progress accuracy in slicing mode

This commit is contained in:
2026-06-23 10:45:21 +08:00
parent 397bc4cd95
commit 7ab702e990
2 changed files with 4 additions and 2 deletions
+2 -2
View File
@@ -448,11 +448,11 @@ while (await new Promise(o => setTimeout(o, 1000, true))) {
$('#send').classList.add('pulse'); $('#send').classList.add('pulse');
$('#timezoneLabel').innerText = Temporal.Now.zonedDateTimeISO(locale.timezone).toLocaleString(locale.name); $('#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 limit = minor || major - 1;
let chunk = $('#chunksize').valueAsNumber; let chunk = $('#chunksize').valueAsNumber;
let total = $('#slice').checked ? Math.min(chunk, limit - chunk * $('#offset').valueAsNumber) : limit; 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})`; $('#progressLabel').innerText = `${parseFloat(index / total * 100).toFixed(2)}% (${index}/${total})`;
$('#subjectLabel').innerText = subject ?? ''; $('#subjectLabel').innerText = subject ?? '';
+2
View File
@@ -373,6 +373,7 @@ def main(driver: Chrome, logger = logging.getLogger('main')):
progress['done'] = 0 progress['done'] = 0
progress['skip'] = 0 progress['skip'] = 0
progress['orts'] = 0
progress['subject'] = subject progress['subject'] = subject
logger.info('Done') logger.info('Done')
except Cancel: 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): 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) logger.info("[%d/%d] Not planned; skipping '%s'", index-1, limit-1, email)
progress['orts'] += 1
raise Skip() raise Skip()
match options.get('occurrence'): match options.get('occurrence'):