diff --git a/backend/package-lock.json b/backend/package-lock.json index af9d6e9..bb224a7 100644 --- a/backend/package-lock.json +++ b/backend/package-lock.json @@ -1,12 +1,12 @@ { "name": "ripster-backend", - "version": "0.13.1-11", + "version": "0.13.1-12", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "ripster-backend", - "version": "0.13.1-11", + "version": "0.13.1-12", "dependencies": { "archiver": "^7.0.1", "cors": "^2.8.5", diff --git a/backend/package.json b/backend/package.json index 1c78d7b..300479b 100644 --- a/backend/package.json +++ b/backend/package.json @@ -1,6 +1,6 @@ { "name": "ripster-backend", - "version": "0.13.1-11", + "version": "0.13.1-12", "private": true, "type": "commonjs", "scripts": { diff --git a/backend/src/services/pipelineService.js b/backend/src/services/pipelineService.js index 0fc138a..fad7bf8 100644 --- a/backend/src/services/pipelineService.js +++ b/backend/src/services/pipelineService.js @@ -7269,8 +7269,13 @@ class PipelineService extends EventEmitter { }); const pluginResult = await plugin.review(job, pluginCtx); + const scanLines = Array.isArray(pluginResult?.scanLines) ? pluginResult.scanLines : []; + const scanAnalysisLines = Array.isArray(pluginResult?.scanAnalysisLines) && pluginResult.scanAnalysisLines.length > 0 + ? pluginResult.scanAnalysisLines + : scanLines; return { - scanLines: Array.isArray(pluginResult?.scanLines) ? pluginResult.scanLines : [], + scanLines, + scanAnalysisLines, runInfo: pluginResult?.runInfo && typeof pluginResult.runInfo === 'object' ? pluginResult.runInfo : null, @@ -12153,9 +12158,9 @@ class PipelineService extends EventEmitter { }); pluginExecution = this.mergePluginExecutionState(pluginExecution, reviewResult?.pluginExecution || null); - const scanText = Array.isArray(reviewResult?.scanLines) - ? reviewResult.scanLines.join('\n') - : ''; + const scanText = Array.isArray(reviewResult?.scanAnalysisLines) && reviewResult.scanAnalysisLines.length > 0 + ? reviewResult.scanAnalysisLines.join('\n') + : (Array.isArray(reviewResult?.scanLines) ? reviewResult.scanLines.join('\n') : ''); if (scanText) { const { DVDSeriesPlugin } = require('../plugins/DVDSeriesPlugin'); const dvdSeriesPlugin = new DVDSeriesPlugin(); @@ -12507,9 +12512,9 @@ class PipelineService extends EventEmitter { }); pluginExecution = this.mergePluginExecutionState(pluginExecution, reviewResult?.pluginExecution || null); - const scanText = Array.isArray(reviewResult?.scanLines) - ? reviewResult.scanLines.join('\n') - : ''; + const scanText = Array.isArray(reviewResult?.scanAnalysisLines) && reviewResult.scanAnalysisLines.length > 0 + ? reviewResult.scanAnalysisLines.join('\n') + : (Array.isArray(reviewResult?.scanLines) ? reviewResult.scanLines.join('\n') : ''); if (scanText) { const { DVDSeriesPlugin } = require('../plugins/DVDSeriesPlugin'); const dvdSeriesPlugin = new DVDSeriesPlugin(); @@ -12885,7 +12890,10 @@ class PipelineService extends EventEmitter { throw error; } if (normalizeMediaProfile(mediaProfile) === 'dvd') { - const seriesScanContextResult = enrichSeriesAnalyzeContextFromScan(effectiveAnalyzeContext, lines); + const seriesScanLines = Array.isArray(pluginScan?.scanAnalysisLines) && pluginScan.scanAnalysisLines.length > 0 + ? pluginScan.scanAnalysisLines + : lines; + const seriesScanContextResult = enrichSeriesAnalyzeContextFromScan(effectiveAnalyzeContext, seriesScanLines); effectiveAnalyzeContext = seriesScanContextResult.analyzeContext; effectiveIsSeriesDvdReview = isSeriesDvdMetadataSelection(mediaProfile, selectedMetadata, effectiveAnalyzeContext); } @@ -16766,7 +16774,10 @@ class PipelineService extends EventEmitter { if (dvdHandBrakeScanJson) { const allDvdTitles = parseHandBrakeTitleList(dvdHandBrakeScanJson); dvdAllTitles = allDvdTitles; - const seriesScanContextResult = enrichSeriesAnalyzeContextFromScan(effectiveAnalyzeContext, dvdScanLines); + const seriesScanLines = Array.isArray(pluginScan?.scanAnalysisLines) && pluginScan.scanAnalysisLines.length > 0 + ? pluginScan.scanAnalysisLines + : dvdScanLines; + const seriesScanContextResult = enrichSeriesAnalyzeContextFromScan(effectiveAnalyzeContext, seriesScanLines); effectiveAnalyzeContext = seriesScanContextResult.analyzeContext; const wasSeriesDvdReview = effectiveIsSeriesDvdReview; effectiveIsSeriesDvdReview = isSeriesDvdMetadataSelection( @@ -17414,7 +17425,10 @@ class PipelineService extends EventEmitter { dvdTitleScanJson = parseMediainfoJsonOutput(dvdTitleScanLines.join('\n')); if (dvdTitleScanJson) { const allTitles = parseHandBrakeTitleList(dvdTitleScanJson); - const seriesScanContextResult = enrichSeriesAnalyzeContextFromScan(effectiveAnalyzeContext, dvdTitleScanLines); + const seriesScanLines = Array.isArray(pluginScan?.scanAnalysisLines) && pluginScan.scanAnalysisLines.length > 0 + ? pluginScan.scanAnalysisLines + : dvdTitleScanLines; + const seriesScanContextResult = enrichSeriesAnalyzeContextFromScan(effectiveAnalyzeContext, seriesScanLines); effectiveAnalyzeContext = seriesScanContextResult.analyzeContext; const wasSeriesDvdReview = effectiveIsSeriesDvdReview; effectiveIsSeriesDvdReview = isSeriesDvdMetadataSelection( diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 050e547..5ccbfa0 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -1,12 +1,12 @@ { "name": "ripster-frontend", - "version": "0.13.1-11", + "version": "0.13.1-12", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "ripster-frontend", - "version": "0.13.1-11", + "version": "0.13.1-12", "dependencies": { "primeicons": "^7.0.0", "primereact": "^10.9.2", diff --git a/frontend/package.json b/frontend/package.json index d48d40a..4d22ae7 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -1,6 +1,6 @@ { "name": "ripster-frontend", - "version": "0.13.1-11", + "version": "0.13.1-12", "private": true, "type": "module", "scripts": { diff --git a/frontend/src/components/MediaInfoReviewPanel.jsx b/frontend/src/components/MediaInfoReviewPanel.jsx index 0a452f6..dfd9b5a 100644 --- a/frontend/src/components/MediaInfoReviewPanel.jsx +++ b/frontend/src/components/MediaInfoReviewPanel.jsx @@ -1391,6 +1391,7 @@ export default function MediaInfoReviewPanel({ onEpisodeFillStartChange = null, episodeAssignmentsByTitle = {}, onEpisodeAssignmentChange = null, + allowEpisodeAssignments = false, availableScripts = [], availableChains = [], preEncodeItems = [], @@ -2393,7 +2394,7 @@ export default function MediaInfoReviewPanel({ - {titleChecked ? ( + {allowEpisodeAssignments && titleChecked ? (
{ const normalizedTitleId = normalizeTitleId(titleId); if (!normalizedTitleId || !patch || typeof patch !== 'object') { diff --git a/package-lock.json b/package-lock.json index 2c898c8..bea7874 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "ripster", - "version": "0.13.1-11", + "version": "0.13.1-12", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "ripster", - "version": "0.13.1-11", + "version": "0.13.1-12", "devDependencies": { "concurrently": "^9.1.2" } diff --git a/package.json b/package.json index 6cd8b07..b89b9bb 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "ripster", "private": true, - "version": "0.13.1-11", + "version": "0.13.1-12", "scripts": { "dev": "concurrently \"npm run dev --prefix backend\" \"npm run dev --prefix frontend\"", "dev:backend": "npm run dev --prefix backend",