Fix NFO folder naming to include year

- Add Serie.ensure_folder_with_year() method to ensure folder names include year
- Update all NFO API endpoints to call ensure_folder_with_year() before operations
- Folder format is now 'Name (Year)' when year is available
- Add comprehensive tests for ensure_folder_with_year() method
- All 5 tests passing
This commit is contained in:
2026-01-18 12:28:38 +01:00
parent 03901a8c2d
commit 491daa2e50
4 changed files with 148 additions and 8 deletions

View File

@@ -133,7 +133,8 @@ async def check_nfo(
detail=f"Series not found: {serie_id}"
)
serie_folder = serie.folder
# Ensure folder name includes year if available
serie_folder = serie.ensure_folder_with_year()
# Check NFO
has_nfo = await nfo_service.check_nfo_exists(serie_folder)
@@ -201,7 +202,11 @@ async def create_nfo(
detail=f"Series not found: {serie_id}"
)
serie_folder = serie.folder
# Ensure folder name includes year if available
serie_folder = serie.ensure_folder_with_year()
# If year not provided in request but serie has year, use it
year = request.year or serie.year
# Check if NFO already exists
if not request.overwrite_existing:
@@ -217,7 +222,7 @@ async def create_nfo(
nfo_path = await nfo_service.create_tvshow_nfo(
serie_name=serie_name,
serie_folder=serie_folder,
year=request.year,
year=year,
download_poster=request.download_poster,
download_logo=request.download_logo,
download_fanart=request.download_fanart
@@ -290,7 +295,8 @@ async def update_nfo(
detail=f"Series not found: {serie_id}"
)
serie_folder = serie.folder
# Ensure folder name includes year if available
serie_folder = serie.ensure_folder_with_year()
# Check if NFO exists
has_nfo = await nfo_service.check_nfo_exists(serie_folder)
@@ -371,7 +377,8 @@ async def get_nfo_content(
detail=f"Series not found: {serie_id}"
)
serie_folder = serie.folder
# Ensure folder name includes year if available
serie_folder = serie.ensure_folder_with_year()
# Check if NFO exists
nfo_path = (
@@ -494,7 +501,8 @@ async def download_media(
detail=f"Series not found: {serie_id}"
)
serie_folder = serie.folder
# Ensure folder name includes year if available
serie_folder = serie.ensure_folder_with_year()
# Check if NFO exists (needed for TMDB ID)
has_nfo = await nfo_service.check_nfo_exists(serie_folder)
@@ -575,7 +583,8 @@ async def batch_create_nfo(
message="Series not found"
)
serie_folder = serie.folder
# Ensure folder name includes year if available
serie_folder = serie.ensure_folder_with_year()
# Check if NFO exists
if request.skip_existing:
@@ -664,7 +673,8 @@ async def get_missing_nfo(
if not serie_id:
continue
serie_folder = serie.folder
# Ensure folder name includes year if available
serie_folder = serie.ensure_folder_with_year()
has_nfo = await nfo_service.check_nfo_exists(serie_folder)
if not has_nfo: