0.9.1-2 Metadata Fix
This commit is contained in:
4
backend/package-lock.json
generated
4
backend/package-lock.json
generated
@@ -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",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "ripster-backend",
|
||||
"version": "0.9.1-1",
|
||||
"version": "0.9.1-2",
|
||||
"private": true,
|
||||
"type": "commonjs",
|
||||
"scripts": {
|
||||
|
||||
@@ -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) {
|
||||
|
||||
4
frontend/package-lock.json
generated
4
frontend/package-lock.json
generated
@@ -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",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "ripster-frontend",
|
||||
"version": "0.9.1-1",
|
||||
"version": "0.9.1-2",
|
||||
"private": true,
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
|
||||
@@ -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' ? (
|
||||
<Button
|
||||
label="OMDb neu zuordnen"
|
||||
icon="pi pi-search"
|
||||
severity="secondary"
|
||||
size="small"
|
||||
onClick={() => onReassignOmdb?.(retryJobId)}
|
||||
loading={busy}
|
||||
/>
|
||||
) : null}
|
||||
|
||||
{state === 'READY_TO_START' && retryJobId ? (
|
||||
<Button
|
||||
label="Job starten"
|
||||
|
||||
@@ -728,6 +728,7 @@ export default function DashboardPage({
|
||||
};
|
||||
const [metadataDialogVisible, setMetadataDialogVisible] = useState(false);
|
||||
const [metadataDialogContext, setMetadataDialogContext] = useState(null);
|
||||
const [metadataDialogReassignMode, setMetadataDialogReassignMode] = useState(false);
|
||||
const [cdMetadataDialogVisible, setCdMetadataDialogVisible] = useState(false);
|
||||
const [cdMetadataDialogContext, setCdMetadataDialogContext] = useState(null);
|
||||
const [cdRipPanelJobId, setCdRipPanelJobId] = useState(null);
|
||||
@@ -1040,6 +1041,18 @@ export default function DashboardPage({
|
||||
showError(new Error('Kein Job mit offener Metadaten-Auswahl gefunden.'));
|
||||
return;
|
||||
}
|
||||
setMetadataDialogReassignMode(false);
|
||||
setMetadataDialogContext(context);
|
||||
setMetadataDialogVisible(true);
|
||||
};
|
||||
|
||||
const handleOpenReassignOmdbDialog = (jobId) => {
|
||||
const context = buildMetadataContextForJob(jobId);
|
||||
if (!context?.jobId) {
|
||||
showError(new Error('Job nicht gefunden.'));
|
||||
return;
|
||||
}
|
||||
setMetadataDialogReassignMode(true);
|
||||
setMetadataDialogContext(context);
|
||||
setMetadataDialogVisible(true);
|
||||
};
|
||||
@@ -1516,11 +1529,16 @@ export default function DashboardPage({
|
||||
const handleMetadataSubmit = async (payload) => {
|
||||
setBusy(true);
|
||||
try {
|
||||
await api.selectMetadata(payload);
|
||||
if (metadataDialogReassignMode) {
|
||||
await api.assignJobOmdb(payload.jobId, payload);
|
||||
} else {
|
||||
await api.selectMetadata(payload);
|
||||
}
|
||||
await refreshPipeline();
|
||||
await loadDashboardJobs();
|
||||
setMetadataDialogVisible(false);
|
||||
setMetadataDialogContext(null);
|
||||
setMetadataDialogReassignMode(false);
|
||||
} catch (error) {
|
||||
showError(error);
|
||||
} finally {
|
||||
@@ -2348,6 +2366,7 @@ export default function DashboardPage({
|
||||
onAnalyze={handleAnalyze}
|
||||
onReanalyze={handleReanalyze}
|
||||
onOpenMetadata={handleOpenMetadataDialog}
|
||||
onReassignOmdb={handleOpenReassignOmdbDialog}
|
||||
onStart={handleStartJob}
|
||||
onRestartEncode={handleRestartEncodeWithLastSettings}
|
||||
onRestartReview={handleRestartReviewFromRaw}
|
||||
@@ -2469,6 +2488,7 @@ export default function DashboardPage({
|
||||
onHide={() => {
|
||||
setMetadataDialogVisible(false);
|
||||
setMetadataDialogContext(null);
|
||||
setMetadataDialogReassignMode(false);
|
||||
}}
|
||||
onSubmit={handleMetadataSubmit}
|
||||
onSearch={handleOmdbSearch}
|
||||
|
||||
4
package-lock.json
generated
4
package-lock.json
generated
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "ripster",
|
||||
"version": "0.9.1-1",
|
||||
"version": "0.9.1-2",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "ripster",
|
||||
"version": "0.9.1-1",
|
||||
"version": "0.9.1-2",
|
||||
"devDependencies": {
|
||||
"concurrently": "^9.1.2"
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "ripster",
|
||||
"private": true,
|
||||
"version": "0.9.1-1",
|
||||
"version": "0.9.1-2",
|
||||
"scripts": {
|
||||
"dev": "concurrently \"npm run dev --prefix backend\" \"npm run dev --prefix frontend\"",
|
||||
"dev:backend": "npm run dev --prefix backend",
|
||||
|
||||
Reference in New Issue
Block a user