fix(merge-split): fix premature 100% progress, add ffmpeg preflight, clean partial splits, use locale metaLabel
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
30c94b550e
commit
6c082a87ab
11
src/main.ts
11
src/main.ts
@ -3002,6 +3002,11 @@ async function processDownloadMergeGroup(
|
||||
return { success: false, error: 'Streamlink fehlt.' };
|
||||
}
|
||||
|
||||
const ffmpegReady = await ensureFfmpegInstalled();
|
||||
if (!ffmpegReady) {
|
||||
return { success: false, error: 'FFmpeg fehlt.' };
|
||||
}
|
||||
|
||||
const streamer = mg.items[0].streamer.replace(/[^a-zA-Z0-9_-]/g, '');
|
||||
const date = new Date(mg.items[0].date);
|
||||
const dateStr = `${date.getDate().toString().padStart(2, '0')}.${(date.getMonth() + 1).toString().padStart(2, '0')}.${date.getFullYear()}`;
|
||||
@ -3165,7 +3170,7 @@ async function processDownloadMergeGroup(
|
||||
});
|
||||
},
|
||||
(currentPart, totalParts) => {
|
||||
const overallProgress = 90 + (currentPart / totalParts) * 10; // split = 90-100%
|
||||
const overallProgress = 90 + ((currentPart - 1) / totalParts) * 10; // split = 90-100%
|
||||
onProgress({
|
||||
id: item.id,
|
||||
progress: overallProgress,
|
||||
@ -3179,6 +3184,10 @@ async function processDownloadMergeGroup(
|
||||
);
|
||||
|
||||
if (!splitResult.success) {
|
||||
// Clean up any partial split files
|
||||
for (const partFile of splitResult.files) {
|
||||
try { if (fs.existsSync(partFile)) fs.unlinkSync(partFile); } catch { }
|
||||
}
|
||||
return { success: false, error: 'FFmpeg Split fehlgeschlagen.' };
|
||||
}
|
||||
|
||||
|
||||
@ -219,7 +219,7 @@ function renderQueue(): void {
|
||||
? '<svg class="merge-group-icon" viewBox="0 0 24 24" fill="currentColor" width="14" height="14"><path d="M17 20.41L18.41 19 15 15.59 13.59 17 17 20.41zM7.5 8H11v5.59L5.59 19 7 20.41l6-6V8h3.5L12 3.5 7.5 8z"/></svg> '
|
||||
: '';
|
||||
const mergeMetaExtra = isMergeGroup
|
||||
? ` (${item.mergeGroup!.items.length} VODs)`
|
||||
? ` (${UI_TEXT.mergeGroup.metaLabel.replace('{count}', String(item.mergeGroup!.items.length))})`
|
||||
: '';
|
||||
|
||||
return `
|
||||
|
||||
Loading…
Reference in New Issue
Block a user