endoreg-db 0.8.4.7__py3-none-any.whl → 0.8.4.9__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of endoreg-db might be problematic. Click here for more details.
- endoreg_db/models/media/video/video_file.py +24 -38
- endoreg_db/services/pdf_import.py +326 -246
- endoreg_db/services/video_import.py +29 -16
- endoreg_db/views/media/video_segments.py +187 -259
- {endoreg_db-0.8.4.7.dist-info → endoreg_db-0.8.4.9.dist-info}/METADATA +1 -1
- {endoreg_db-0.8.4.7.dist-info → endoreg_db-0.8.4.9.dist-info}/RECORD +8 -8
- {endoreg_db-0.8.4.7.dist-info → endoreg_db-0.8.4.9.dist-info}/WHEEL +0 -0
- {endoreg_db-0.8.4.7.dist-info → endoreg_db-0.8.4.9.dist-info}/licenses/LICENSE +0 -0
|
@@ -11,23 +11,26 @@ Changelog:
|
|
|
11
11
|
|
|
12
12
|
from datetime import date
|
|
13
13
|
import logging
|
|
14
|
-
import sys
|
|
15
14
|
import os
|
|
15
|
+
import random
|
|
16
16
|
import shutil
|
|
17
|
+
import sys
|
|
17
18
|
import time
|
|
18
19
|
from contextlib import contextmanager
|
|
20
|
+
from datetime import date
|
|
19
21
|
from pathlib import Path
|
|
20
|
-
from typing import
|
|
22
|
+
from typing import Any, Dict, List, Optional, Tuple, Union
|
|
23
|
+
|
|
21
24
|
from django.db import transaction
|
|
25
|
+
from django.db.models.fields.files import FieldFile
|
|
22
26
|
from lx_anonymizer import FrameCleaner
|
|
23
27
|
from moviepy import video
|
|
24
|
-
|
|
25
|
-
from endoreg_db.
|
|
26
|
-
import
|
|
28
|
+
|
|
29
|
+
from endoreg_db.models import EndoscopyProcessor, SensitiveMeta, VideoFile
|
|
30
|
+
from endoreg_db.models.media.video.video_file_anonymize import \
|
|
31
|
+
_cleanup_raw_assets
|
|
27
32
|
from endoreg_db.utils.hashs import get_video_hash
|
|
28
|
-
from endoreg_db.
|
|
29
|
-
from django.db.models.fields.files import FieldFile
|
|
30
|
-
from endoreg_db.models import EndoscopyProcessor
|
|
33
|
+
from endoreg_db.utils.paths import ANONYM_VIDEO_DIR, STORAGE_DIR, VIDEO_DIR
|
|
31
34
|
|
|
32
35
|
# File lock configuration (matches PDF import)
|
|
33
36
|
STALE_LOCK_SECONDS = 6000 # 100 minutes - reclaim locks older than this
|
|
@@ -895,20 +898,30 @@ class VideoImportService:
|
|
|
895
898
|
|
|
896
899
|
sm = sensitive_meta
|
|
897
900
|
updated_fields = []
|
|
898
|
-
|
|
901
|
+
|
|
902
|
+
# Ensure center is set from video.center if not in extracted_metadata
|
|
903
|
+
metadata_to_update = extracted_metadata.copy()
|
|
904
|
+
if 'center_name' not in metadata_to_update and video.center:
|
|
905
|
+
metadata_to_update['center_name'] = video.center.name
|
|
906
|
+
self.logger.debug("Added center_name '%s' to metadata for SensitiveMeta update", video.center.name)
|
|
907
|
+
|
|
899
908
|
try:
|
|
900
|
-
sm.update_from_dict(
|
|
901
|
-
updated_fields = list(extracted_metadata.keys())
|
|
909
|
+
sm.update_from_dict(metadata_to_update)
|
|
910
|
+
updated_fields = list(extracted_metadata.keys()) # Only log originally extracted fields
|
|
902
911
|
except KeyError as e:
|
|
903
912
|
self.logger.warning(f"Failed to update SensitiveMeta field {e}")
|
|
904
913
|
|
|
905
914
|
if updated_fields:
|
|
906
|
-
|
|
907
|
-
|
|
915
|
+
try:
|
|
916
|
+
sm.save() # Remove update_fields to allow all necessary fields to be saved
|
|
917
|
+
self.logger.info("Updated SensitiveMeta fields for video %s: %s", video.uuid, updated_fields)
|
|
908
918
|
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
919
|
+
state = video.get_or_create_state()
|
|
920
|
+
state.mark_sensitive_meta_processed(save=True)
|
|
921
|
+
self.logger.info("Marked sensitive metadata as processed for video %s", video.uuid)
|
|
922
|
+
except Exception as e:
|
|
923
|
+
self.logger.error(f"Failed to save SensitiveMeta: {e}")
|
|
924
|
+
raise # Re-raise to trigger fallback in calling method
|
|
912
925
|
else:
|
|
913
926
|
self.logger.info("No SensitiveMeta fields updated for video %s - all existing values preserved", video.uuid)
|
|
914
927
|
|