diff --git a/backend/package-lock.json b/backend/package-lock.json index e46ad31..af9d6e9 100644 --- a/backend/package-lock.json +++ b/backend/package-lock.json @@ -1,12 +1,12 @@ { "name": "ripster-backend", - "version": "0.13.1-10", + "version": "0.13.1-11", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "ripster-backend", - "version": "0.13.1-10", + "version": "0.13.1-11", "dependencies": { "archiver": "^7.0.1", "cors": "^2.8.5", diff --git a/backend/package.json b/backend/package.json index 9101d68..1c78d7b 100644 --- a/backend/package.json +++ b/backend/package.json @@ -1,6 +1,6 @@ { "name": "ripster-backend", - "version": "0.13.1-10", + "version": "0.13.1-11", "private": true, "type": "commonjs", "scripts": { diff --git a/backend/src/plugins/VideoDiscPlugin.js b/backend/src/plugins/VideoDiscPlugin.js index c415a9b..94dccee 100644 --- a/backend/src/plugins/VideoDiscPlugin.js +++ b/backend/src/plugins/VideoDiscPlugin.js @@ -147,6 +147,7 @@ class VideoDiscPlugin extends SourcePlugin { }); const scanLines = []; + const scanAnalysisLines = []; const runCommandFn = typeof ctx.extra?.runCommand === 'function' ? ctx.extra.runCommand : null; const reviewStage = String(ctx.extra?.reviewStage || 'MEDIAINFO_CHECK').trim().toUpperCase() || 'MEDIAINFO_CHECK'; const reviewSource = String(ctx.extra?.reviewSource || 'HANDBRAKE_SCAN').trim().toUpperCase() || 'HANDBRAKE_SCAN'; @@ -161,9 +162,11 @@ class VideoDiscPlugin extends SourcePlugin { cmd: scanConfig.cmd, args: scanConfig.args, collectLines: scanLines, - // HandBrake scan details (duration/chapters/audio/subtitles) are often - // emitted on stderr. Collect both streams for reliable disc heuristics. - collectStderrLines: true, + // Keep JSON parsing stable by collecting only stdout in scanLines. + // Stderr is still mirrored into scanAnalysisLines for heuristics. + collectStderrLines: false, + onStdoutLine: (line) => scanAnalysisLines.push(line), + onStderrLine: (line) => scanAnalysisLines.push(line), silent: reviewSilent }); } catch (cmdError) { @@ -180,8 +183,11 @@ class VideoDiscPlugin extends SourcePlugin { runInfo = await _runCommandCaptured({ cmd: scanConfig.cmd, args: scanConfig.args, - onStdoutLine: (line) => scanLines.push(line), - onStderrLine: (line) => scanLines.push(line), + onStdoutLine: (line) => { + scanLines.push(line); + scanAnalysisLines.push(line); + }, + onStderrLine: (line) => scanAnalysisLines.push(line), context: { jobId: job?.id, source: `${this.id}Plugin.review` } }); } @@ -189,13 +195,14 @@ class VideoDiscPlugin extends SourcePlugin { ctx.logger.info(`${this.id}:review:scan-done`, { jobId: job?.id, exitCode: runInfo.exitCode, - lineCount: scanLines.length + lineCount: scanAnalysisLines.length }); // Return raw scan data — the Orchestrator (or legacy pipelineService) // processes this with buildDiscScanReview() / parseMediainfoJsonOutput(). return { scanLines, + scanAnalysisLines, runInfo, reviewMode, mediaProfile: this.mediaProfile, diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 966d619..050e547 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -1,12 +1,12 @@ { "name": "ripster-frontend", - "version": "0.13.1-10", + "version": "0.13.1-11", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "ripster-frontend", - "version": "0.13.1-10", + "version": "0.13.1-11", "dependencies": { "primeicons": "^7.0.0", "primereact": "^10.9.2", diff --git a/frontend/package.json b/frontend/package.json index 5afe0a8..d48d40a 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -1,6 +1,6 @@ { "name": "ripster-frontend", - "version": "0.13.1-10", + "version": "0.13.1-11", "private": true, "type": "module", "scripts": { diff --git a/package-lock.json b/package-lock.json index b1e4499..2c898c8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "ripster", - "version": "0.13.1-10", + "version": "0.13.1-11", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "ripster", - "version": "0.13.1-10", + "version": "0.13.1-11", "devDependencies": { "concurrently": "^9.1.2" } diff --git a/package.json b/package.json index 16af2d0..6cd8b07 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "ripster", "private": true, - "version": "0.13.1-10", + "version": "0.13.1-11", "scripts": { "dev": "concurrently \"npm run dev --prefix backend\" \"npm run dev --prefix frontend\"", "dev:backend": "npm run dev --prefix backend",