fix(folder_rename_service): use get_by_folder instead of get_by_key when looking up by folder name
Update_database_paths and duplicate folder cleanup were using get_by_key() (provider key lookup) instead of get_by_folder() when operating on folder names. This caused orphaned DB records when removing duplicate folders like 'Hells Paradise' that mapped to an already-existing 'Hell\'s Paradise (2023)'.
This commit is contained in:
@@ -403,7 +403,7 @@ async def _update_database_paths(
|
|||||||
|
|
||||||
async with get_db_session() as db:
|
async with get_db_session() as db:
|
||||||
# 1. Update AnimeSeries.folder
|
# 1. Update AnimeSeries.folder
|
||||||
series = await AnimeSeriesService.get_by_key(db, old_folder)
|
series = await AnimeSeriesService.get_by_folder(db, old_folder)
|
||||||
if series is None:
|
if series is None:
|
||||||
# Fallback: try to find by folder name
|
# Fallback: try to find by folder name
|
||||||
all_series = await AnimeSeriesService.get_all(db)
|
all_series = await AnimeSeriesService.get_all(db)
|
||||||
@@ -615,7 +615,7 @@ async def validate_and_rename_series_folders(dry_run: bool = False) -> Dict[str,
|
|||||||
|
|
||||||
# Delete source DB record (cascades to episodes and download items)
|
# Delete source DB record (cascades to episodes and download items)
|
||||||
async with get_db_session() as db:
|
async with get_db_session() as db:
|
||||||
source_series = await AnimeSeriesService.get_by_key(db, current_name)
|
source_series = await AnimeSeriesService.get_by_folder(db, current_name)
|
||||||
if source_series is None:
|
if source_series is None:
|
||||||
# Fallback: find by folder name
|
# Fallback: find by folder name
|
||||||
all_series = await AnimeSeriesService.get_all(db)
|
all_series = await AnimeSeriesService.get_all(db)
|
||||||
|
|||||||
Reference in New Issue
Block a user