lkjlkj
This commit is contained in:
@@ -3,7 +3,7 @@
|
||||
This module provides:
|
||||
- SQLite database management for local file metadata caching
|
||||
- Library scanning and database initialization
|
||||
- Sidecar file migration from old .tags/.metadata files to database
|
||||
- Sidecar file migration from .tag/.metadata files to database
|
||||
- Optimized search functionality using database indices
|
||||
- Worker task tracking for background operations
|
||||
"""
|
||||
@@ -68,7 +68,7 @@ def read_sidecar(sidecar_path: Path) -> Tuple[Optional[str], List[str], List[str
|
||||
Delegates to metadata._read_sidecar_metadata for centralized handling.
|
||||
|
||||
Args:
|
||||
sidecar_path: Path to .tags sidecar file
|
||||
sidecar_path: Path to .tag sidecar file
|
||||
|
||||
Returns:
|
||||
Tuple of (hash_value, tags_list, url_list)
|
||||
@@ -90,7 +90,7 @@ def write_sidecar(media_path: Path, tags: List[str], url: List[str],
|
||||
Delegates to metadata.write_tags for centralized handling.
|
||||
|
||||
Args:
|
||||
media_path: Path to the media file (sidecar created as media_path.tags)
|
||||
media_path: Path to the media file (sidecar created as media_path.tag)
|
||||
tags: List of tag strings
|
||||
url: List of known URL strings
|
||||
hash_value: Optional SHA256 hash to include
|
||||
@@ -129,7 +129,7 @@ def find_sidecar(media_path: Path) -> Optional[Path]:
|
||||
return None
|
||||
|
||||
try:
|
||||
# Check for new format: filename.ext.tags
|
||||
# Check for new format: filename.ext.tag
|
||||
sidecar_path = _derive_sidecar_path(media_path)
|
||||
if sidecar_path.exists():
|
||||
return sidecar_path
|
||||
@@ -1861,8 +1861,7 @@ class LocalLibraryInitializer:
|
||||
sidecar_map: Dict[Path, Dict[str, List[Path]]] = {}
|
||||
|
||||
patterns = [
|
||||
("*.tag", "tags"),
|
||||
("*.tags", "tags"),
|
||||
("*.tag", "tag"),
|
||||
("*.metadata", "metadata"),
|
||||
("*.notes", "notes"),
|
||||
]
|
||||
@@ -1877,14 +1876,14 @@ class LocalLibraryInitializer:
|
||||
if not base.exists():
|
||||
continue
|
||||
|
||||
bucket = sidecar_map.setdefault(base, {"tags": [], "metadata": [], "notes": []})
|
||||
bucket = sidecar_map.setdefault(base, {"tag": [], "metadata": [], "notes": []})
|
||||
bucket[key].append(sidecar)
|
||||
|
||||
return sidecar_map
|
||||
|
||||
def _read_tag_sidecars(self, sidecars: Dict[str, List[Path]]) -> List[str]:
|
||||
tags: List[str] = []
|
||||
for tag_path in sidecars.get("tags", []):
|
||||
for tag_path in sidecars.get("tag", []):
|
||||
try:
|
||||
content = tag_path.read_text(encoding="utf-8")
|
||||
except OSError:
|
||||
@@ -1972,7 +1971,7 @@ class LocalLibraryInitializer:
|
||||
def _rename_sidecars(self, old_base: Path, new_base: Path, sidecars: Dict[str, List[Path]]) -> None:
|
||||
"""Rename sidecars to follow the new hashed filename."""
|
||||
mappings = [
|
||||
(sidecars.get("tags", []), ".tag"),
|
||||
(sidecars.get("tag", []), ".tag"),
|
||||
(sidecars.get("metadata", []), ".metadata"),
|
||||
(sidecars.get("notes", []), ".notes"),
|
||||
]
|
||||
@@ -2006,7 +2005,7 @@ class LocalLibraryInitializer:
|
||||
def _cleanup_orphaned_sidecars(self) -> None:
|
||||
"""Remove sidecars for non-existent files."""
|
||||
try:
|
||||
patterns = ["*.tag", "*.tags", "*.metadata", "*.notes"]
|
||||
patterns = ["*.tag", "*.metadata", "*.notes"]
|
||||
|
||||
for pattern in patterns:
|
||||
for sidecar_path in self.library_root.rglob(pattern):
|
||||
@@ -2022,13 +2021,13 @@ class LocalLibraryInitializer:
|
||||
|
||||
|
||||
def migrate_tags_to_db(library_root: Path, db: API_folder_store) -> int:
|
||||
"""Migrate .tags files to the database."""
|
||||
"""Migrate .tag files to the database."""
|
||||
migrated_count = 0
|
||||
|
||||
try:
|
||||
for tags_file in library_root.rglob("*.tags"):
|
||||
for tags_file in library_root.rglob("*.tag"):
|
||||
try:
|
||||
base_path = Path(str(tags_file)[:-len('.tags')])
|
||||
base_path = tags_file.with_suffix("")
|
||||
tags_text = tags_file.read_text(encoding='utf-8')
|
||||
tags = [line.strip() for line in tags_text.splitlines() if line.strip()]
|
||||
|
||||
@@ -2043,7 +2042,7 @@ def migrate_tags_to_db(library_root: Path, db: API_folder_store) -> int:
|
||||
except Exception as e:
|
||||
logger.warning(f"Failed to migrate {tags_file}: {e}")
|
||||
|
||||
logger.info(f"Migrated {migrated_count} .tags files to database")
|
||||
logger.info(f"Migrated {migrated_count} .tag files to database")
|
||||
return migrated_count
|
||||
except Exception as e:
|
||||
logger.error(f"Error during tags migration: {e}", exc_info=True)
|
||||
|
||||
Reference in New Issue
Block a user