0.13.1-11 Fix Scan

This commit is contained in:
2026-04-17 18:01:26 +00:00
parent bebe9eac8c
commit fc67e2264b
7 changed files with 22 additions and 15 deletions
+2 -2
View File
@@ -1,12 +1,12 @@
{ {
"name": "ripster-backend", "name": "ripster-backend",
"version": "0.13.1-10", "version": "0.13.1-11",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "ripster-backend", "name": "ripster-backend",
"version": "0.13.1-10", "version": "0.13.1-11",
"dependencies": { "dependencies": {
"archiver": "^7.0.1", "archiver": "^7.0.1",
"cors": "^2.8.5", "cors": "^2.8.5",
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "ripster-backend", "name": "ripster-backend",
"version": "0.13.1-10", "version": "0.13.1-11",
"private": true, "private": true,
"type": "commonjs", "type": "commonjs",
"scripts": { "scripts": {
+13 -6
View File
@@ -147,6 +147,7 @@ class VideoDiscPlugin extends SourcePlugin {
}); });
const scanLines = []; const scanLines = [];
const scanAnalysisLines = [];
const runCommandFn = typeof ctx.extra?.runCommand === 'function' ? ctx.extra.runCommand : null; const runCommandFn = typeof ctx.extra?.runCommand === 'function' ? ctx.extra.runCommand : null;
const reviewStage = String(ctx.extra?.reviewStage || 'MEDIAINFO_CHECK').trim().toUpperCase() || 'MEDIAINFO_CHECK'; const reviewStage = String(ctx.extra?.reviewStage || 'MEDIAINFO_CHECK').trim().toUpperCase() || 'MEDIAINFO_CHECK';
const reviewSource = String(ctx.extra?.reviewSource || 'HANDBRAKE_SCAN').trim().toUpperCase() || 'HANDBRAKE_SCAN'; const reviewSource = String(ctx.extra?.reviewSource || 'HANDBRAKE_SCAN').trim().toUpperCase() || 'HANDBRAKE_SCAN';
@@ -161,9 +162,11 @@ class VideoDiscPlugin extends SourcePlugin {
cmd: scanConfig.cmd, cmd: scanConfig.cmd,
args: scanConfig.args, args: scanConfig.args,
collectLines: scanLines, collectLines: scanLines,
// HandBrake scan details (duration/chapters/audio/subtitles) are often // Keep JSON parsing stable by collecting only stdout in scanLines.
// emitted on stderr. Collect both streams for reliable disc heuristics. // Stderr is still mirrored into scanAnalysisLines for heuristics.
collectStderrLines: true, collectStderrLines: false,
onStdoutLine: (line) => scanAnalysisLines.push(line),
onStderrLine: (line) => scanAnalysisLines.push(line),
silent: reviewSilent silent: reviewSilent
}); });
} catch (cmdError) { } catch (cmdError) {
@@ -180,8 +183,11 @@ class VideoDiscPlugin extends SourcePlugin {
runInfo = await _runCommandCaptured({ runInfo = await _runCommandCaptured({
cmd: scanConfig.cmd, cmd: scanConfig.cmd,
args: scanConfig.args, args: scanConfig.args,
onStdoutLine: (line) => scanLines.push(line), onStdoutLine: (line) => {
onStderrLine: (line) => scanLines.push(line), scanLines.push(line);
scanAnalysisLines.push(line);
},
onStderrLine: (line) => scanAnalysisLines.push(line),
context: { jobId: job?.id, source: `${this.id}Plugin.review` } 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`, { ctx.logger.info(`${this.id}:review:scan-done`, {
jobId: job?.id, jobId: job?.id,
exitCode: runInfo.exitCode, exitCode: runInfo.exitCode,
lineCount: scanLines.length lineCount: scanAnalysisLines.length
}); });
// Return raw scan data — the Orchestrator (or legacy pipelineService) // Return raw scan data — the Orchestrator (or legacy pipelineService)
// processes this with buildDiscScanReview() / parseMediainfoJsonOutput(). // processes this with buildDiscScanReview() / parseMediainfoJsonOutput().
return { return {
scanLines, scanLines,
scanAnalysisLines,
runInfo, runInfo,
reviewMode, reviewMode,
mediaProfile: this.mediaProfile, mediaProfile: this.mediaProfile,
+2 -2
View File
@@ -1,12 +1,12 @@
{ {
"name": "ripster-frontend", "name": "ripster-frontend",
"version": "0.13.1-10", "version": "0.13.1-11",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "ripster-frontend", "name": "ripster-frontend",
"version": "0.13.1-10", "version": "0.13.1-11",
"dependencies": { "dependencies": {
"primeicons": "^7.0.0", "primeicons": "^7.0.0",
"primereact": "^10.9.2", "primereact": "^10.9.2",
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "ripster-frontend", "name": "ripster-frontend",
"version": "0.13.1-10", "version": "0.13.1-11",
"private": true, "private": true,
"type": "module", "type": "module",
"scripts": { "scripts": {
+2 -2
View File
@@ -1,12 +1,12 @@
{ {
"name": "ripster", "name": "ripster",
"version": "0.13.1-10", "version": "0.13.1-11",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "ripster", "name": "ripster",
"version": "0.13.1-10", "version": "0.13.1-11",
"devDependencies": { "devDependencies": {
"concurrently": "^9.1.2" "concurrently": "^9.1.2"
} }
+1 -1
View File
@@ -1,7 +1,7 @@
{ {
"name": "ripster", "name": "ripster",
"private": true, "private": true,
"version": "0.13.1-10", "version": "0.13.1-11",
"scripts": { "scripts": {
"dev": "concurrently \"npm run dev --prefix backend\" \"npm run dev --prefix frontend\"", "dev": "concurrently \"npm run dev --prefix backend\" \"npm run dev --prefix frontend\"",
"dev:backend": "npm run dev --prefix backend", "dev:backend": "npm run dev --prefix backend",