diff --git a/core/nfo_manager.py b/core/nfo_manager.py index d16e213..b6f0bd2 100644 --- a/core/nfo_manager.py +++ b/core/nfo_manager.py @@ -696,15 +696,19 @@ class NFOManager: runtime_elem = ET.SubElement(episode, "runtime") runtime_elem.text = str(enhanced_metadata["runtime"]) - # Fallback: Extract title from filename if no title present - if not episode.find("title") or not episode.find("title").text: - print(f"🔍 No title found in NFO for S{season_num:02d}E{episode_num:02d}, attempting filename extraction") + # Fallback: Extract title from filename if no valid title present + title_elem = episode.find("title") + has_valid_title = title_elem is not None and title_elem.text and title_elem.text.strip() + + print(f"🔍 Title check for S{season_num:02d}E{episode_num:02d}: has_element={title_elem is not None}, has_text={title_elem.text if title_elem is not None else 'N/A'}, has_valid_title={has_valid_title}") + + if not has_valid_title: + print(f"🔍 No valid title found in NFO for S{season_num:02d}E{episode_num:02d}, attempting filename extraction") filename_title = self._extract_title_from_filename(season_dir, season_num, episode_num) if filename_title: - # Remove existing empty title element if present - existing_title = episode.find("title") - if existing_title is not None: - episode.remove(existing_title) + # Remove existing empty/invalid title element if present + if title_elem is not None: + episode.remove(title_elem) # Add new title element title_elem = ET.SubElement(episode, "title") @@ -712,6 +716,8 @@ class NFOManager: print(f"✅ Added filename-extracted title to NFO: S{season_num:02d}E{episode_num:02d} - '{filename_title}'") else: print(f"⚠️ Could not extract title from filename for S{season_num:02d}E{episode_num:02d}") + else: + print(f"✅ Valid title already exists in NFO for S{season_num:02d}E{episode_num:02d}: '{title_elem.text.strip()}')") # Add NFOGuard fields at the bottom