diff --git a/backend/app/routers/data.py b/backend/app/routers/data.py index c4463ef..699e478 100644 --- a/backend/app/routers/data.py +++ b/backend/app/routers/data.py @@ -35,7 +35,6 @@ BOOK_IMPORT_FIELDS, PREDEFINED_MAPPINGS, compute_schema_fingerprint, - delete_parsed_upload, execute_import, get_predefined_mapping, load_parsed_upload, @@ -323,8 +322,7 @@ async def event_generator(): final_error = 'error.importExecutionFailed' yield f"data: {json.dumps({'event': 'error', 'message': 'error.importExecutionFailed'})}\n\n" finally: - if completed and import_failed_rows == 0 and final_error is None: - delete_parsed_upload(body.file_id, current_user.id) + pass # import file is cleaned up by the periodic temp file job return StreamingResponse( event_generator(), diff --git a/backend/app/services/data_import.py b/backend/app/services/data_import.py index 9aef8eb..2516669 100644 --- a/backend/app/services/data_import.py +++ b/backend/app/services/data_import.py @@ -838,7 +838,7 @@ async def execute_import( "tags": {"source": "Bookshelves", "transform": None}, "notes": { "source": "My Review", - "transform": "value.replace('
', '\n') if value else None", + "transform": "re.sub(r'', '\\n', value, flags=re.IGNORECASE) if value else None", }, "blurb": {"source": "", "transform": None}, "rating": { @@ -885,7 +885,7 @@ def get_predefined_mapping(mapping_id: int) -> dict[str, object] | None: return None -def cleanup_temp_files(max_age_hours: int = 24) -> None: +def cleanup_temp_files(max_age_hours: int = 48) -> None: """Delete temporary import files older than *max_age_hours*. Args: