feat(merge-split): integrate merge-group pipeline into processQueue and cleanup handlers
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
8501bd17f7
commit
409c976df0
18
src/main.ts
18
src/main.ts
@ -3258,7 +3258,11 @@ async function processQueue(): Promise<void> {
|
|||||||
for (let attempt = 1; attempt <= maxAttempts; attempt++) {
|
for (let attempt = 1; attempt <= maxAttempts; attempt++) {
|
||||||
appendDebugLog('queue-item-attempt', { itemId: item.id, attempt, max: maxAttempts });
|
appendDebugLog('queue-item-attempt', { itemId: item.id, attempt, max: maxAttempts });
|
||||||
|
|
||||||
const result = await downloadVOD(item, (progress) => {
|
const result = item.mergeGroup
|
||||||
|
? await processDownloadMergeGroup(item, (progress) => {
|
||||||
|
mainWindow?.webContents.send('download-progress', progress);
|
||||||
|
})
|
||||||
|
: await downloadVOD(item, (progress) => {
|
||||||
mainWindow?.webContents.send('download-progress', progress);
|
mainWindow?.webContents.send('download-progress', progress);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -3784,6 +3788,18 @@ ipcMain.handle('remove-from-queue', (_, id: string) => {
|
|||||||
appendDebugLog('queue-item-removed-active-cancelled', { id });
|
appendDebugLog('queue-item-removed-active-cancelled', { id });
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Clean up merge-group temp files (must run for any merge group, not just active)
|
||||||
|
const removedItem = downloadQueue.find(item => item.id === id);
|
||||||
|
if (removedItem?.mergeGroup) {
|
||||||
|
const mg = removedItem.mergeGroup;
|
||||||
|
for (const key of Object.keys(mg.downloadedFiles)) {
|
||||||
|
try { if (fs.existsSync(mg.downloadedFiles[Number(key)])) fs.unlinkSync(mg.downloadedFiles[Number(key)]); } catch { }
|
||||||
|
}
|
||||||
|
if (mg.mergedFile) {
|
||||||
|
try { if (fs.existsSync(mg.mergedFile)) fs.unlinkSync(mg.mergedFile); } catch { }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
downloadQueue = downloadQueue.filter(item => item.id !== id);
|
downloadQueue = downloadQueue.filter(item => item.id !== id);
|
||||||
saveQueue(downloadQueue);
|
saveQueue(downloadQueue);
|
||||||
emitQueueUpdated();
|
emitQueueUpdated();
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user