feat: skip existing media in STRM tree generation

This commit is contained in:
ShukeBta
2026-07-02 23:35:24 +08:00
parent e700962f2a
commit 077bb10d25
7 changed files with 159 additions and 2 deletions
+1
View File
@@ -49,6 +49,7 @@ export type GenerateSTRMTreeInput = {
dry_run?: boolean
batch_limit?: number
transfer_subtitles?: boolean
missing_only?: boolean
refresh_library?: boolean
}
@@ -32,6 +32,7 @@ export function StrmTreeGenerateSection({
batchLimit,
cleanup,
generating,
missingOnly,
onGenerate,
onPreview,
onImportTreeFile,
@@ -46,6 +47,7 @@ export function StrmTreeGenerateSection({
setBaseURL,
setBatchLimit,
setCleanup,
setMissingOnly,
setOutputDir,
setOutputPrefix,
setOverwrite,
@@ -187,6 +189,10 @@ export function StrmTreeGenerateSection({
<input type="checkbox" checked={transferSubtitles} onChange={(e) => setTransferSubtitles(e.target.checked)} />
转移同名字幕链接
</label>
<label className="flex min-h-10 items-center gap-2 rounded-2xl border border-gray-200 bg-white/70 px-3 py-2 text-sm text-ink-50 md:col-span-4">
<input type="checkbox" checked={missingOnly} onChange={(e) => setMissingOnly(e.target.checked)} />
仅生成媒体库缺失
</label>
<label className="flex min-h-10 items-center gap-2 rounded-2xl border border-gray-200 bg-white/70 px-3 py-2 text-sm text-ink-50 md:col-span-4">
<input type="checkbox" checked={refreshLibrary} onChange={(e) => setRefreshLibrary(e.target.checked)} />
生成后刷新媒体库
+4
View File
@@ -18,6 +18,7 @@ export function useStrmTreeGenerateForm() {
const [overwrite, setOverwrite] = useState(false)
const [cleanup, setCleanup] = useState(false)
const [transferSubtitles, setTransferSubtitles] = useState(true)
const [missingOnly, setMissingOnly] = useState(false)
const [refreshLibrary, setRefreshLibrary] = useState(true)
const [runningMode, setRunningMode] = useState<'generate' | 'preview' | null>(null)
const [result, setResult] = useState<GenerateSTRMResult | null>(null)
@@ -72,6 +73,7 @@ export function useStrmTreeGenerateForm() {
dry_run: dryRun,
batch_limit: parsedBatchLimit || undefined,
transfer_subtitles: transferSubtitles,
missing_only: missingOnly,
refresh_library: refreshLibrary,
})
setResult(next)
@@ -104,6 +106,7 @@ export function useStrmTreeGenerateForm() {
onImportTreeFile,
onGenerate,
onPreview,
missingOnly,
outputDir,
outputPrefix,
overwrite,
@@ -115,6 +118,7 @@ export function useStrmTreeGenerateForm() {
setBaseURL,
setBatchLimit,
setCleanup,
setMissingOnly,
setOutputDir,
setOutputPrefix,
setOverwrite,