文案:格式化本轮改动的文件
Co-Authored-By: Claude Opus 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_01Cxwgnn2pbzQ7rXv3rq7fei
This commit is contained in:
1 parent
804f40cd36
commit
058519fa0e
5 files changed
+16
-35
No files matched your search
@@ -599,7 +599,8 @@ export function TransferDialog({
|
||||
<DialogHeader>
|
||||
<DialogTitle>{mode === "move" ? "移动到…" : "复制到…"}</DialogTitle>
|
||||
<DialogDescription>
|
||||
{items.length === 1 ? baseName(items[0]?.path ?? "") : `${items.length} 项`} · 跨卷移动会先复制、核验,再删除源文件。
|
||||
{items.length === 1 ? baseName(items[0]?.path ?? "") : `${items.length} 项`} ·
|
||||
跨卷移动会先复制、核验,再删除源文件。
|
||||
</DialogDescription>
|
||||
</DialogHeader>
|
||||
<div className="grid min-h-0 gap-4 overflow-y-auto md:grid-cols-[15rem_minmax(0,1fr)]">
|
||||
@@ -635,9 +636,7 @@ export function TransferDialog({
|
||||
}}
|
||||
className="max-h-72 md:max-h-96"
|
||||
/>
|
||||
<p className="text-meta text-muted-foreground">
|
||||
目标可以是可写的媒体库目录或 Alist 存储。
|
||||
</p>
|
||||
<p className="text-meta text-muted-foreground">目标可以是可写的媒体库目录或 Alist 存储。</p>
|
||||
</div>
|
||||
<div className="min-w-0 space-y-3">
|
||||
{target && targetRoot ? (
|
||||
@@ -687,9 +686,7 @@ export function TransferDialog({
|
||||
</button>
|
||||
</Notice>
|
||||
) : null}
|
||||
{plan.truncated ? (
|
||||
<Notice tone="warning">文件太多,只列出前一部分。执行时全部处理。</Notice>
|
||||
) : null}
|
||||
{plan.truncated ? <Notice tone="warning">文件太多,只列出前一部分。执行时全部处理。</Notice> : null}
|
||||
<ul className="space-y-1.5">
|
||||
{plan.pairs.map((p) => {
|
||||
const sr = rootById.get(p.source.root);
|
||||
@@ -875,9 +872,7 @@ export function DeleteDialog({
|
||||
{d.hnr === "satisfied" ? "已满足" : d.hnr === "unsatisfied" ? "未满足" : "未知"}
|
||||
</p>
|
||||
))}
|
||||
{c.assets.length ? (
|
||||
<p>含 {c.assets.length} 个已整理文件</p>
|
||||
) : null}
|
||||
{c.assets.length ? <p>含 {c.assets.length} 个已整理文件</p> : null}
|
||||
{c.bindings.map((bd) => (
|
||||
<p key={bd.bindingId}>
|
||||
路径绑定:{bd.title}
|
||||
@@ -907,9 +902,7 @@ export function DeleteDialog({
|
||||
<input type="checkbox" className="mt-1" checked={unbind} onChange={(e) => setUnbind(e.target.checked)} />
|
||||
<span>
|
||||
解除路径绑定
|
||||
<span className="block text-meta text-muted-foreground">
|
||||
绑定作废,这个作品下次整理时重新选目录。
|
||||
</span>
|
||||
<span className="block text-meta text-muted-foreground">绑定作废,这个作品下次整理时重新选目录。</span>
|
||||
</span>
|
||||
</label>
|
||||
) : null}
|
||||
@@ -943,7 +936,9 @@ export function DeleteDialog({
|
||||
<span>
|
||||
永久删除
|
||||
<span className="block text-meta text-muted-foreground">
|
||||
{isAdmin ? "无法恢复。部署时设置 FILES_ALLOW_PERMANENT_DELETE=true 才能用。" : "只有管理员会话可用。"}
|
||||
{isAdmin
|
||||
? "无法恢复。部署时设置 FILES_ALLOW_PERMANENT_DELETE=true 才能用。"
|
||||
: "只有管理员会话可用。"}
|
||||
</span>
|
||||
</span>
|
||||
</label>
|
||||
@@ -1051,9 +1046,7 @@ export function RefreshMetadataDialog({ items, onClose }: { items: FileEntry[];
|
||||
onSuccess: (r) => {
|
||||
setResult(r);
|
||||
const skipped = r.skipped.length ? `,${r.skipped.length} 个跳过` : "";
|
||||
(r.skipped.length ? toast.warning : toast.success)(
|
||||
`已提交 ${r.submitted.length} 个作品${skipped}`,
|
||||
);
|
||||
(r.skipped.length ? toast.warning : toast.success)(`已提交 ${r.submitted.length} 个作品${skipped}`);
|
||||
},
|
||||
onError: (e) => toast.error(filesErrorText(e, "提交失败")),
|
||||
},
|
||||
@@ -1177,9 +1170,7 @@ export function ScrapeDialog({ items, root, onClose }: { items: FileEntry[]; roo
|
||||
<DialogContent className="sm:max-w-2xl">
|
||||
<DialogHeader>
|
||||
<DialogTitle>刮削{single ? ` · ${single.name}` : ` · ${items.length} 项`}</DialogTitle>
|
||||
<DialogDescription>
|
||||
按路径识别作品,在文件所在目录写 NFO 和图片。没整理过的文件也能刮削。
|
||||
</DialogDescription>
|
||||
<DialogDescription>按路径识别作品,在文件所在目录写 NFO 和图片。没整理过的文件也能刮削。</DialogDescription>
|
||||
</DialogHeader>
|
||||
{!started ? (
|
||||
<div className="grid gap-3">
|
||||
|
||||
@@ -398,9 +398,7 @@ export function OrganizeWizard({ source, onClose }: { source: OrganizeSource; on
|
||||
<p className="truncate font-mono text-caption" title={r.path}>
|
||||
{baseName(r.path)}
|
||||
</p>
|
||||
<p className="truncate text-meta text-muted-foreground">
|
||||
{r.entity ? entityLabel(r.entity) : "未识别"}
|
||||
</p>
|
||||
<p className="truncate text-meta text-muted-foreground">{r.entity ? entityLabel(r.entity) : "未识别"}</p>
|
||||
{rowProblem(r) ? <p className="text-meta text-warning">{rowProblem(r)}</p> : null}
|
||||
</div>
|
||||
),
|
||||
@@ -711,9 +709,7 @@ export function OrganizeWizard({ source, onClose }: { source: OrganizeSource; on
|
||||
<div className="flex items-center justify-between gap-3 rounded-xl border border-border px-3 py-2">
|
||||
<span className="text-caption">
|
||||
整理后刮削
|
||||
<span className="block text-meta text-muted-foreground">
|
||||
整理完成后写 NFO 和图片
|
||||
</span>
|
||||
<span className="block text-meta text-muted-foreground">整理完成后写 NFO 和图片</span>
|
||||
</span>
|
||||
<Switch
|
||||
checked={options.scrapeAfterImport}
|
||||
|
||||
@@ -33,9 +33,7 @@ export function FileSourceSelection({
|
||||
<DialogContent>
|
||||
<DialogHeader>
|
||||
<DialogTitle>{profiles.isPending ? "读取整理来源…" : "选择整理来源"}</DialogTitle>
|
||||
<DialogDescription>
|
||||
整理时沿用所选整理来源的整理方式、目标目录和分类。
|
||||
</DialogDescription>
|
||||
<DialogDescription>整理时沿用所选整理来源的整理方式、目标目录和分类。</DialogDescription>
|
||||
</DialogHeader>
|
||||
{profiles.isPending ? (
|
||||
<p role="status" className="text-caption text-muted-foreground">
|
||||
|
||||
@@ -98,9 +98,7 @@ function QueueItem({ run }: { run: EngineRun }) {
|
||||
<span className="text-muted-foreground">来源</span>
|
||||
<p className="break-all font-mono text-meta">
|
||||
{source ??
|
||||
(detail.isFetching || download.isFetching || recordQuery.isFetching
|
||||
? "加载中…"
|
||||
: "读取不到来源")}
|
||||
(detail.isFetching || download.isFetching || recordQuery.isFetching ? "加载中…" : "读取不到来源")}
|
||||
</p>
|
||||
</div>
|
||||
<div className="min-w-0">
|
||||
|
||||
@@ -85,9 +85,7 @@ export function SourceSelection({
|
||||
onSuccess: (r) =>
|
||||
r.items.length
|
||||
? onSelect(stockWizardSource(p, r))
|
||||
: toast.info(
|
||||
`没有可整理的文件${stockNotes(r)}`,
|
||||
),
|
||||
: toast.info(`没有可整理的文件${stockNotes(r)}`),
|
||||
onError: (e) => toast.error(filesErrorText(e, "扫描存量失败")),
|
||||
},
|
||||
)
|
||||
|
||||
Reference in new issue
Block a user