feat(collect): show skipped reason summaries
This commit is contained in:
+10
-1
@@ -8,6 +8,7 @@ import threading
|
||||
import time
|
||||
|
||||
from .. import image_studio, image_studio_export, image_studio_generation, image_studio_images
|
||||
from ..collect_skip import ALIAS_UNMATCHED, LOGIN_REQUIRED, empty_skip_reason_counts
|
||||
from .widgets import *
|
||||
|
||||
|
||||
@@ -1623,6 +1624,7 @@ class CollectWorker(BaseWorker):
|
||||
login_skip_reasons = {}
|
||||
login_required_accounts = {}
|
||||
preflight_info = {}
|
||||
skip_reason_counts = empty_skip_reason_counts()
|
||||
|
||||
self._run_id = self._create_run_log(eligible, batch_ids)
|
||||
self._log_run_event(
|
||||
@@ -1642,7 +1644,10 @@ class CollectWorker(BaseWorker):
|
||||
failed=failed,
|
||||
batch_ids=batch_ids,
|
||||
blocked=True,
|
||||
extra=blocked,
|
||||
extra={
|
||||
**blocked,
|
||||
"skip_reason_counts": dict(skip_reason_counts),
|
||||
},
|
||||
)
|
||||
self._finish_run_log("blocked", summary)
|
||||
return summary
|
||||
@@ -1665,6 +1670,7 @@ class CollectWorker(BaseWorker):
|
||||
account = account_by_alias.get(str(task.alias).strip())
|
||||
if account is None:
|
||||
skipped += 1
|
||||
skip_reason_counts[ALIAS_UNMATCHED] += 1
|
||||
done += 1
|
||||
reason = "别名未匹配账号"
|
||||
db.mark_skipped(task.id, reason, path=self.db_path)
|
||||
@@ -1684,6 +1690,7 @@ class CollectWorker(BaseWorker):
|
||||
alias = str(task.alias).strip()
|
||||
if alias in login_skip_reasons:
|
||||
skipped += 1
|
||||
skip_reason_counts[LOGIN_REQUIRED] += 1
|
||||
done += 1
|
||||
reason = login_skip_reasons[alias]
|
||||
db.mark_skipped(task.id, reason, path=self.db_path)
|
||||
@@ -1704,6 +1711,7 @@ class CollectWorker(BaseWorker):
|
||||
if self._is_definitive_logged_out(status):
|
||||
alias = str(task.alias).strip()
|
||||
skipped += 1
|
||||
skip_reason_counts[LOGIN_REQUIRED] += 1
|
||||
done += 1
|
||||
reason = self._midrun_login_skip_reason(status)
|
||||
login_skip_reasons[alias] = reason
|
||||
@@ -1840,6 +1848,7 @@ class CollectWorker(BaseWorker):
|
||||
extra={
|
||||
**preflight_info,
|
||||
"login_required_accounts": list(login_required_accounts.values()),
|
||||
"skip_reason_counts": dict(skip_reason_counts),
|
||||
},
|
||||
)
|
||||
self._finish_run_log("cancelled" if self.should_cancel() else "done", summary)
|
||||
|
||||
Reference in New Issue
Block a user