From 319838d305aadb85a490dd0abff2ff84fd8b0a26 Mon Sep 17 00:00:00 2001 From: SBCrumb Date: Sun, 26 Oct 2025 12:14:06 -0400 Subject: [PATCH] web: debug nfo fix --- api/web_routes.py | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/api/web_routes.py b/api/web_routes.py index 4a81434..c9e07a0 100644 --- a/api/web_routes.py +++ b/api/web_routes.py @@ -1575,7 +1575,15 @@ async def get_episodes_missing_nfo_dateadded(dependencies: dict): missing_dateadded = [] nfo_manager = dependencies["nfo_manager"] + print(f"🔍 DEBUG: Starting NFO scan of {len(all_items)} items...") + processed_count = 0 + nfo_found_count = 0 + nfo_missing_dateadded_count = 0 + for item in all_items: + processed_count += 1 + if processed_count <= 10 or processed_count % 100 == 0: # Log progress + print(f"🔍 DEBUG: Processing item {processed_count}/{len(all_items)}: {item['imdb_id']}") try: media_type = item['media_type'] item_path = Path(item['series_path']) @@ -1585,29 +1593,42 @@ async def get_episodes_missing_nfo_dateadded(dependencies: dict): season_dir = item_path / config.tv_season_dir_format.format(season=item['season']) if not season_dir.exists(): + if processed_count <= 5: # Debug first few + print(f"🔍 DEBUG: Season dir doesn't exist: {season_dir}") continue # Find NFO file for this episode nfo_files = list(season_dir.glob(f"*S{item['season']:02d}E{item['episode']:02d}*.nfo")) if not nfo_files: + if processed_count <= 5: # Debug first few + print(f"🔍 DEBUG: No NFO found for {item['imdb_id']} S{item['season']:02d}E{item['episode']:02d} in {season_dir}") continue nfo_path = nfo_files[0] # Use first match + nfo_found_count += 1 elif media_type == 'movie': # Handle movies if not item_path.exists(): + if processed_count <= 5: # Debug first few + print(f"🔍 DEBUG: Movie path doesn't exist: {item_path}") continue # Find NFO file for this movie nfo_files = list(item_path.glob("*.nfo")) if not nfo_files: + if processed_count <= 5: # Debug first few + print(f"🔍 DEBUG: No NFO found for movie {item['imdb_id']} in {item_path}") continue nfo_path = nfo_files[0] # Use first match + nfo_found_count += 1 else: continue + if processed_count <= 5: # Debug first few + print(f"🔍 DEBUG: Found NFO file: {nfo_path}") + # Parse NFO and check for dateadded try: import xml.etree.ElementTree as ET @@ -1618,8 +1639,15 @@ async def get_episodes_missing_nfo_dateadded(dependencies: dict): # Check if dateadded is missing or empty has_dateadded = dateadded_elem is not None and dateadded_elem.text and dateadded_elem.text.strip() + if processed_count <= 5: # Debug first few + print(f"🔍 DEBUG: NFO {nfo_path} - dateadded element: {dateadded_elem}") + print(f"🔍 DEBUG: dateadded text: {dateadded_elem.text if dateadded_elem is not None else 'None'}") + print(f"🔍 DEBUG: has_dateadded: {has_dateadded}") + # If NFO is missing dateadded, check if item should have a date if not has_dateadded: + nfo_missing_dateadded_count += 1 + # Item should have a date if it has one in the database, or if it has aired date should_have_date = ( item['dateadded'] is not None or @@ -1627,6 +1655,9 @@ async def get_episodes_missing_nfo_dateadded(dependencies: dict): media_type == 'movie' # Movies should generally have dateadded ) + if processed_count <= 5: # Debug first few + print(f"🔍 DEBUG: should_have_date: {should_have_date} (db_date: {item['dateadded']}, aired: {item.get('aired')})") + if should_have_date: missing_dateadded.append({ **item, @@ -1636,6 +1667,9 @@ async def get_episodes_missing_nfo_dateadded(dependencies: dict): 'should_have_date': True }) + if processed_count <= 5: # Debug first few + print(f"🔍 DEBUG: Added to missing list: {item['imdb_id']}") + except ET.ParseError: # NFO file is corrupted missing_dateadded.append({ @@ -1653,6 +1687,12 @@ async def get_episodes_missing_nfo_dateadded(dependencies: dict): print(f"Error checking NFO for movie {item['imdb_id']}: {e}") continue + print(f"🔍 DEBUG: NFO scan complete!") + print(f"🔍 DEBUG: Total items: {len(all_items)}") + print(f"🔍 DEBUG: NFO files found: {nfo_found_count}") + print(f"🔍 DEBUG: NFO files missing dateadded: {nfo_missing_dateadded_count}") + print(f"🔍 DEBUG: Items that should have dateadded: {len(missing_dateadded)}") + return { "success": True, "total_episodes_checked": len(episodes),