From 59bcb54492ca14755a2cc40018d0753f7aec319f Mon Sep 17 00:00:00 2001 From: mboehmlaender Date: Sat, 14 Mar 2026 09:32:13 +0000 Subject: [PATCH] 0.9.1-2 Metadata Fix --- backend/package-lock.json | 4 ++-- backend/package.json | 2 +- backend/src/services/historyService.js | 18 ++++++++++++--- frontend/package-lock.json | 4 ++-- frontend/package.json | 2 +- .../src/components/PipelineStatusCard.jsx | 12 ++++++++++ frontend/src/pages/DashboardPage.jsx | 22 ++++++++++++++++++- package-lock.json | 4 ++-- package.json | 2 +- 9 files changed, 57 insertions(+), 13 deletions(-) diff --git a/backend/package-lock.json b/backend/package-lock.json index b67be3d..ee2732a 100644 --- a/backend/package-lock.json +++ b/backend/package-lock.json @@ -1,12 +1,12 @@ { "name": "ripster-backend", - "version": "0.9.1-1", + "version": "0.9.1-2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "ripster-backend", - "version": "0.9.1-1", + "version": "0.9.1-2", "dependencies": { "cors": "^2.8.5", "dotenv": "^16.4.7", diff --git a/backend/package.json b/backend/package.json index 6f8f980..b375801 100644 --- a/backend/package.json +++ b/backend/package.json @@ -1,6 +1,6 @@ { "name": "ripster-backend", - "version": "0.9.1-1", + "version": "0.9.1-2", "private": true, "type": "commonjs", "scripts": { diff --git a/backend/src/services/historyService.js b/backend/src/services/historyService.js index 982ac85..cf5f4eb 100644 --- a/backend/src/services/historyService.js +++ b/backend/src/services/historyService.js @@ -641,11 +641,23 @@ function buildRawPathForJobId(rawPath, jobId) { const absRawPath = normalizeComparablePath(rawPath); const folderName = path.basename(absRawPath); + + // Replace existing job ID suffix if present const replaced = folderName.replace(/(\s-\sRAW\s-\sjob-)\d+\s*$/i, `$1${Math.trunc(normalizedJobId)}`); - if (replaced === folderName) { - return absRawPath; + if (replaced !== folderName) { + return path.join(path.dirname(absRawPath), replaced); } - return path.join(path.dirname(absRawPath), replaced); + + // No existing job ID suffix — add canonical suffix + // Strip any state prefix (Rip_Complete_ / Incomplete_), append suffix, restore prefix + const statePrefix = /^Rip_Complete_/i.test(folderName) + ? RAW_RIP_COMPLETE_PREFIX + : /^Incomplete_/i.test(folderName) + ? RAW_INCOMPLETE_PREFIX + : ''; + const stripped = stripRawFolderStatePrefix(folderName); + const withJobId = `${statePrefix}${stripped} - RAW - job-${Math.trunc(normalizedJobId)}`; + return path.join(path.dirname(absRawPath), withJobId); } function deleteFilesRecursively(rootPath, keepRoot = true) { diff --git a/frontend/package-lock.json b/frontend/package-lock.json index dbe91c2..b21e89a 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -1,12 +1,12 @@ { "name": "ripster-frontend", - "version": "0.9.1-1", + "version": "0.9.1-2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "ripster-frontend", - "version": "0.9.1-1", + "version": "0.9.1-2", "dependencies": { "primeicons": "^7.0.0", "primereact": "^10.9.2", diff --git a/frontend/package.json b/frontend/package.json index 9daf148..0d8973a 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -1,6 +1,6 @@ { "name": "ripster-frontend", - "version": "0.9.1-1", + "version": "0.9.1-2", "private": true, "type": "module", "scripts": { diff --git a/frontend/src/components/PipelineStatusCard.jsx b/frontend/src/components/PipelineStatusCard.jsx index 494f05a..edf2234 100644 --- a/frontend/src/components/PipelineStatusCard.jsx +++ b/frontend/src/components/PipelineStatusCard.jsx @@ -294,6 +294,7 @@ export default function PipelineStatusCard({ onAnalyze, onReanalyze, onOpenMetadata, + onReassignOmdb, onStart, onRemoveFromQueue, onRestartEncode, @@ -653,6 +654,17 @@ export default function PipelineStatusCard({ /> ) : null} + {!running && state !== 'METADATA_SELECTION' && state !== 'WAITING_FOR_USER_DECISION' && state !== 'IDLE' && state !== 'DISC_DETECTED' && retryJobId && typeof onReassignOmdb === 'function' ? ( +