fix(initialization): remove duplicate nfo_scan progress completion
The nfo_scan_completed event handler was calling complete_progress() which removed the progress before _execute_nfo_scan returned. This caused perform_nfo_scan_phase to fail with 'Progress with id nfo_scan not found' when it tried to complete the same progress. Completion is now only handled by perform_nfo_scan_phase after _execute_nfo_scan returns, as intended.
This commit is contained in:
@@ -478,13 +478,8 @@ async def _execute_nfo_scan(progress_service=None) -> None:
|
|||||||
key=data.get('key'),
|
key=data.get('key'),
|
||||||
folder=data.get('folder'),
|
folder=data.get('folder'),
|
||||||
)
|
)
|
||||||
elif event_data.get('type') == 'nfo_scan_completed':
|
# Note: nfo_scan_completed event is NOT handled here because
|
||||||
stats = event_data.get('statistics', {})
|
# perform_nfo_scan_phase handles completion after _execute_nfo_scan returns
|
||||||
if progress_service:
|
|
||||||
await progress_service.complete_progress(
|
|
||||||
progress_id="nfo_scan",
|
|
||||||
message=f"NFO scan complete: {stats.get('created', 0)} created, {stats.get('updated', 0)} updated",
|
|
||||||
)
|
|
||||||
|
|
||||||
nfo_service.subscribe_to_scan_events(nfo_event_handler)
|
nfo_service.subscribe_to_scan_events(nfo_event_handler)
|
||||||
|
|
||||||
@@ -551,11 +546,18 @@ async def perform_nfo_scan_if_needed(progress_service=None):
|
|||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error("Failed to complete NFO scan: %s", e, exc_info=True)
|
logger.error("Failed to complete NFO scan: %s", e, exc_info=True)
|
||||||
if progress_service:
|
if progress_service:
|
||||||
await progress_service.fail_progress(
|
try:
|
||||||
progress_id="nfo_scan",
|
await progress_service.fail_progress(
|
||||||
error_message=f"NFO scan failed: {str(e)}",
|
progress_id="nfo_scan",
|
||||||
metadata={"step_id": "nfo_scan"}
|
error_message=f"NFO scan failed: {str(e)}",
|
||||||
)
|
metadata={"step_id": "nfo_scan"}
|
||||||
|
)
|
||||||
|
except Exception as fail_err:
|
||||||
|
logger.warning(
|
||||||
|
"Could not fail progress 'nfo_scan': %s",
|
||||||
|
fail_err,
|
||||||
|
exc_info=True
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
async def perform_nfo_scan_phase(progress_service=None):
|
async def perform_nfo_scan_phase(progress_service=None):
|
||||||
@@ -627,11 +629,18 @@ async def perform_nfo_scan_phase(progress_service=None):
|
|||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error("Failed to complete NFO scan phase: %s", e, exc_info=True)
|
logger.error("Failed to complete NFO scan phase: %s", e, exc_info=True)
|
||||||
if progress_service:
|
if progress_service:
|
||||||
await progress_service.fail_progress(
|
try:
|
||||||
progress_id="nfo_scan",
|
await progress_service.fail_progress(
|
||||||
error_message=f"NFO scan failed: {str(e)}",
|
progress_id="nfo_scan",
|
||||||
metadata={"step_id": "nfo_scan", "phase": "nfo"}
|
error_message=f"NFO scan failed: {str(e)}",
|
||||||
)
|
metadata={"step_id": "nfo_scan", "phase": "nfo"}
|
||||||
|
)
|
||||||
|
except Exception as fail_err:
|
||||||
|
logger.warning(
|
||||||
|
"Could not fail progress 'nfo_scan': %s",
|
||||||
|
fail_err,
|
||||||
|
exc_info=True
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
async def _check_media_scan_status() -> bool:
|
async def _check_media_scan_status() -> bool:
|
||||||
|
|||||||
Reference in New Issue
Block a user