feat(collect): show skipped reason summaries

This commit is contained in:
chengma
2026-07-13 14:31:58 +08:00
parent a7ac8522bf
commit 0a3a6b99a1
7 changed files with 239 additions and 15 deletions
+22 -3
View File
@@ -2,6 +2,12 @@
from __future__ import annotations
from ...collect_skip import (
ALIAS_UNMATCHED,
LOGIN_REQUIRED,
format_skip_reason_summary,
normalize_skip_reason_counts,
)
from ..models import TaskTableModel
from ..widgets import *
from ..workers import CollectWorker as _RealCollectWorker, WriteBackWorker as _RealWriteBackWorker
@@ -694,9 +700,19 @@ class CollectTab(QWidget):
launched = payload.get("launched_accounts") or []
reused = payload.get("reused_accounts") or []
login_required = payload.get("login_required_accounts") or []
if not launched and not reused and not login_required:
skipped = max(0, int(payload.get("skipped", 0) or 0))
skip_counts = normalize_skip_reason_counts(
payload.get("skip_reason_counts"),
skipped_total=skipped,
)
if not launched and not reused and not login_required and skipped == 0:
return
lines = [message]
skip_summary = format_skip_reason_summary(skip_counts, skipped_total=skipped)
if skip_summary:
lines.append(skip_summary)
if skip_counts[ALIAS_UNMATCHED] > 0:
lines.append("请检查 Excel 别名是否与④账号管理中的账号别名一致。")
if launched:
lines.append(
"本轮已自动启动账号 Chrome:"
@@ -707,9 +723,12 @@ class CollectTab(QWidget):
"以下账号需要补登录:"
+ "、".join(self._account_label(item) for item in login_required)
)
lines.append("采集结束后不会自动关闭账号 Chrome,请按需自行关闭。")
if skip_counts[LOGIN_REQUIRED] > 0:
lines.append("请到④账号管理完成对应账号登录后,再重新采集略过任务。")
if launched or reused or login_required:
lines.append("采集结束后不会自动关闭账号 Chrome,请按需自行关闭。")
text = "\n".join(lines)
if login_required:
if login_required or skip_counts[LOGIN_REQUIRED] > 0:
QMessageBox.warning(self, "采集完成", text)
else:
QMessageBox.information(self, "采集完成", text)