From cfc9793dcdc121fe48641a32f39a6cc2e5ceb219 Mon Sep 17 00:00:00 2001 From: root Date: Wed, 7 Oct 2026 01:48:33 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=87=E6=A1=88(=E8=AE=A2=E9=98=85/=E5=8F=91?= =?UTF-8?q?=E7=8E=B0/=E9=9B=86=E6=95=B0=E6=98=A0=E5=B0=84):=E5=9C=A8?= =?UTF-8?q?=E9=80=94=E6=94=B9=E4=B8=8B=E8=BD=BD=E4=B8=AD=E3=80=81=E8=AE=A1?= =?UTF-8?q?=E5=88=92=E6=94=B9=E4=B8=8B=E8=BD=BD,=E6=8C=89=E9=92=AE?= =?UTF-8?q?=E5=86=99=E6=B8=85=E5=8A=A8=E4=BD=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01Cxwgnn2pbzQ7rXv3rq7fei --- apps/web/app/components/discover/explore-view.tsx | 2 +- .../web/app/components/discover/recommend-view.tsx | 2 +- .../app/components/episode-mapping/decision.tsx | 14 +++++++------- .../episode-mapping/subscription-summary.tsx | 2 +- apps/web/app/components/subscriptions/actions.tsx | 6 +++--- .../components/subscriptions/coverage-matrix.tsx | 6 +++--- .../web/app/components/subscriptions/model.test.ts | 4 ++-- apps/web/app/components/subscriptions/model.ts | 14 +++++++------- .../app/components/subscriptions/overview-item.tsx | 6 +++--- .../app/components/subscriptions/slot-panel.tsx | 2 +- .../components/subscriptions/subscription-form.tsx | 10 +++++----- 11 files changed, 34 insertions(+), 34 deletions(-) diff --git a/apps/web/app/components/discover/explore-view.tsx b/apps/web/app/components/discover/explore-view.tsx index d83f8f2c..6e0be6fb 100644 --- a/apps/web/app/components/discover/explore-view.tsx +++ b/apps/web/app/components/discover/explore-view.tsx @@ -271,7 +271,7 @@ function ExploreResults({ s }: { s: ExploreState }) { if (!items.length) return ( ); diff --git a/apps/web/app/components/discover/recommend-view.tsx b/apps/web/app/components/discover/recommend-view.tsx index b8c21738..9ac0c20d 100644 --- a/apps/web/app/components/discover/recommend-view.tsx +++ b/apps/web/app/components/discover/recommend-view.tsx @@ -83,7 +83,7 @@ function Section({ section, actions }: { section: RecommendSection; actions: Ret ) : q.isSuccess && items.length === 0 ? (

- 这里暂时没有条目。 + 这一栏暂时没有作品。

) : (
    diff --git a/apps/web/app/components/episode-mapping/decision.tsx b/apps/web/app/components/episode-mapping/decision.tsx index f9ab24df..658aa50f 100644 --- a/apps/web/app/components/episode-mapping/decision.tsx +++ b/apps/web/app/components/episode-mapping/decision.tsx @@ -213,7 +213,7 @@ function IgnoreButton({ d, view }: { d: Decision; view: EpisodeDecisionView }) { .then( () => toast.success(withRule ? "已忽略,并建了忽略规则" : "已忽略"), (err) => { - toast.error(errorMessage(err, "操作失败")); + toast.error(errorMessage(err, "忽略失败")); throw err; }, ) @@ -269,12 +269,12 @@ export function EpisodeDecision({ d, open }: { d: Decision; open: boolean }) { trigger={ } - title="按智能体建议的规则处理?" + title="按智能体建议建规则?" description={`${view.confirmAgent.description ?? ""}。规则在作品页的集数映射里可以再改。`} - confirmLabel="确认" + confirmLabel="建规则并重算" onConfirm={() => resolve.mutateAsync({ id: d.id, optionKey: view.confirmAgent!.key }).then( () => toast.success("已建规则并重算"), @@ -291,12 +291,12 @@ export function EpisodeDecision({ d, open }: { d: Decision; open: boolean }) { trigger={ } - title="按建议规则处理?" + title="按建议建规则?" description={`${view.confirm.description ?? ""}。规则在作品页的集数映射里可以再改。`} - confirmLabel="确认" + confirmLabel="建规则并重算" onConfirm={() => resolve.mutateAsync({ id: d.id, optionKey: view.confirm!.key }).then( () => toast.success("已建规则并重算"), diff --git a/apps/web/app/components/episode-mapping/subscription-summary.tsx b/apps/web/app/components/episode-mapping/subscription-summary.tsx index 96ecc58e..b3e72faa 100644 --- a/apps/web/app/components/episode-mapping/subscription-summary.tsx +++ b/apps/web/app/components/episode-mapping/subscription-summary.tsx @@ -32,7 +32,7 @@ export function SubscriptionMappingSummary({ return ( reset.mutateAsync(id).then((r) => { const kept = r.keptPlans.length ? `,${r.keptPlans.length} 个仍在下载的保留` : ""; - toast.success(`已重置:释放 ${r.releasedPlans.length} 个计划${kept}`); + toast.success(`已重置:取消 ${r.releasedPlans.length} 个下载${kept}`); }), remove: (ids: string[]) => batch.mutateAsync({ ids, action: "delete" }).then((r) => { @@ -63,7 +63,7 @@ export function useSubscriptionOps() { const ok = r.results.filter((x) => x.ok).length; const label = { search: "开始搜索", pause: "暂停", resume: "恢复" }[a]; if (ok === ids.length) toast.success(`${ok} 个订阅已${label}`); - else toast.warning(`${ok}/${ids.length} 个已${label};${r.results.find((x) => !x.ok)?.error ?? ""}`); + else toast.warning(`${ok}/${ids.length} 个已${label};${r.results.find((x) => !x.ok)?.error ?? ""}`); }, onError: (e) => toast.error(errorMessage(e)), }, @@ -186,7 +186,7 @@ export function SubscriptionMenu({ open={confirmReset} onOpenChange={setConfirmReset} title="重置这个订阅的进度?" - description="取消还没提交、或下载任务已不在的计划,清掉延后记录,然后重新评估。仍在下载的任务、已整理文件和总集数保留。" + description="取消还没提交或下载任务已不在的下载,清掉延后记录,再重新评估。仍在下载的任务、已整理文件和总集数保留。" confirmLabel="重置" onConfirm={() => ops.reset(sub.id).catch((e) => { diff --git a/apps/web/app/components/subscriptions/coverage-matrix.tsx b/apps/web/app/components/subscriptions/coverage-matrix.tsx index 3e5e2409..46c29023 100644 --- a/apps/web/app/components/subscriptions/coverage-matrix.tsx +++ b/apps/web/app/components/subscriptions/coverage-matrix.tsx @@ -302,17 +302,17 @@ export function CellSheet({ { label: "下载", value: c.planId - ? `${PLAN_STAGE[c.planStage ?? ""] ?? c.planStage ?? "在途"} · ${c.planId.slice(0, 8)}` + ? `${PLAN_STAGE[c.planStage ?? ""] ?? c.planStage ?? "下载中"} · ${c.planId.slice(0, 8)}` : null, }, { label: "原因", value: c.reason ? (SKIP_REASON[c.reason] ?? c.reason) : null }, - { label: "延后", value: c.deferred ? "有资源在等待重评(预算或自动补全关闭)" : null }, + { label: "延后", value: c.deferred ? "有资源等待重新评估(预算用完或自动补全已关)" : null }, ]} /> {fillable ? (

    - 手动补全不受自动补全开关和补全预算限制,仍受全局每日预算与缓存卷阈值约束。 + 手动补全不受自动补全开关和补全预算限制,但仍受每日总预算和下载盘阈值限制。

    ) : null} {sel.row.slotId === null && c.state === "missing" ? ( diff --git a/apps/web/app/components/subscriptions/model.test.ts b/apps/web/app/components/subscriptions/model.test.ts index 29c76d8b..65ebb9c7 100644 --- a/apps/web/app/components/subscriptions/model.test.ts +++ b/apps/web/app/components/subscriptions/model.test.ts @@ -59,9 +59,9 @@ describe("订阅总览文案", () => { expect(seasonLabel({ mediaKind: "series", seasonNumber: 1, seasonScope: "current_season" })).toBe("S1"); expect(seasonLabel({ mediaKind: "movie", seasonNumber: null, seasonScope: "current_season" })).toBeNull(); }); - it("版本徽标按 洗版 → 在途 → 缺 → 已齐 判定", () => { + it("版本徽标按 洗版 → 下载中 → 缺 → 已齐 判定", () => { expect(slotBadge(slot({ upgrading: true, minPri: 97, targetPri: 100, missing: 2 })).label).toBe("洗版中 97→100"); - expect(slotBadge(slot({ inflight: 2, missing: 3 }))).toEqual({ label: "在途 2", tone: "neutral" }); + expect(slotBadge(slot({ inflight: 2, missing: 3 }))).toEqual({ label: "下载中 2", tone: "neutral" }); expect(slotBadge(slot({ missing: 3 })).tone).toBe("destructive"); expect(slotBadge(slot({ have: 10, total: 10 }))).toEqual({ label: "已齐", tone: "success" }); expect(slotBadge(slot({})).label).toBe("未开始"); diff --git a/apps/web/app/components/subscriptions/model.ts b/apps/web/app/components/subscriptions/model.ts index 44bfdc9e..b76b7f20 100644 --- a/apps/web/app/components/subscriptions/model.ts +++ b/apps/web/app/components/subscriptions/model.ts @@ -27,7 +27,7 @@ export const GROUP_LABEL: Record = { following: "追更中", waiting: "待搜索", completed: "已完成", - paused: "暂停", + paused: "已暂停", pending: "待定", }; @@ -62,7 +62,7 @@ export function slotBadge(s: SubscriptionSlotSummary): ToneLabel { label: s.minPri !== null && s.targetPri !== null ? `洗版中 ${s.minPri}→${s.targetPri}` : "洗版中", tone: "warning", }; - if (s.inflight > 0) return { label: `在途 ${s.inflight}`, tone: "neutral" }; + if (s.inflight > 0) return { label: `下载中 ${s.inflight}`, tone: "neutral" }; if (s.missing > 0) return { label: `缺 ${s.missing}`, tone: "destructive" }; if (s.total !== null && s.total > 0 && s.have >= s.total) return { label: "已齐", tone: "success" }; return { label: s.have > 0 ? `已整理 ${s.have}` : "未开始", tone: "neutral" }; @@ -79,11 +79,11 @@ export const AUTOFILL_LABEL: Record = { inherit: "跟随 export const AUTOFILL_SOURCE: Record<"subscription" | "rule_group" | "default", string> = { subscription: "订阅设置", rule_group: "规则组", - default: "系统缺省", + default: "系统默认", }; export function autoFillText(a: SubscriptionOverviewItem["autoFill"]): string { - return `自动补全${a.enabled ? "开" : "关"}${a.mode === "inherit" ? `(${AUTOFILL_SOURCE[a.source]})` : ""}`; + return `自动补全${a.enabled ? "开" : "关"}${a.mode === "inherit" ? `(${AUTOFILL_SOURCE[a.source]})` : ""}`; } // ── 覆盖矩阵 ── @@ -123,7 +123,7 @@ export function cellKind(c: CoverageCell): CellKind { export const CELL_LABEL: Record = { have: "已整理", upgradable: "可升级", - inflight: "在途", + inflight: "下载中", deferred: "延后", missing: "缺失", suspected: "疑似缺失", @@ -131,12 +131,12 @@ export const CELL_LABEL: Record = { skipped: "不需要", }; -export const PLAN_STAGE: Record = { reserved: "已预留", downloading: "下载中", verifying: "核验中" }; +export const PLAN_STAGE: Record = { reserved: "准备下载", downloading: "下载中", verifying: "核验中" }; export const SKIP_REASON: Record = { out_of_range: "集范围外", not_aired: "未播出", - not_required: "该收录版本不要求这个内容版本", + not_required: "收录版本不要求这个内容版本", suspected: "总集数未知,按已见最高集推断", deferred: "有延后的资源", }; diff --git a/apps/web/app/components/subscriptions/overview-item.tsx b/apps/web/app/components/subscriptions/overview-item.tsx index 0c682c30..61633b9f 100644 --- a/apps/web/app/components/subscriptions/overview-item.tsx +++ b/apps/web/app/components/subscriptions/overview-item.tsx @@ -25,7 +25,7 @@ export const itemTitle = (x: Item) => x.mediaEntityTitle ?? x.titleQuery ?? "未 function Flags({ x }: { x: Item }) { return ( <> - {x.group === "paused" ? 暂停 : null} + {x.group === "paused" ? 已暂停 : null} {x.group === "pending" ? ( {x.mediaEntityId ? "待定" : "不在媒体库"} ) : null} @@ -45,7 +45,7 @@ export function ProgressBlock({ x, className }: { x: Pick {progressText(x.progress)} {x.progress.inflight > 0 ? ( - · 在途 {x.progress.inflight} + · 下载中 {x.progress.inflight} ) : null} {unknown ? 持续追踪 : null} @@ -57,7 +57,7 @@ export function ProgressBlock({ x, className }: { x: Pick {unknown ? null : ( <> diff --git a/apps/web/app/components/subscriptions/slot-panel.tsx b/apps/web/app/components/subscriptions/slot-panel.tsx index 59d77a94..7ae8b474 100644 --- a/apps/web/app/components/subscriptions/slot-panel.tsx +++ b/apps/web/app/components/subscriptions/slot-panel.tsx @@ -112,7 +112,7 @@ export function SlotPanel({ 已整理 {r.summary.have} 缺 {r.summary.missing} - 在途 {r.summary.inflight} + 下载中 {r.summary.inflight} {i === 0 ? null : {r.autoFill ? "自动补全" : "只登记缺失"}}