nfo dates to the bottom

This commit is contained in:
2025-09-14 13:49:15 -04:00
parent e7b65cfed6
commit 179f8f51d7
3 changed files with 48 additions and 116 deletions
+15 -9
View File
@@ -52,14 +52,17 @@ class NFOManager:
raise ValueError("Root element is not <movie>")
# Remove existing NFOGuard-managed elements to avoid duplicates
# These will be re-added at the bottom
for tag in ["dateadded", "lockdata"]:
existing = movie.find(tag)
if existing is not None:
movie.remove(existing)
# Remove any existing uniqueid with type="imdb"
# Remove any existing uniqueid with type="imdb" added by NFOGuard
# (Keep other uniqueid elements like tmdb)
for uniqueid in movie.findall("uniqueid[@type='imdb']"):
movie.remove(uniqueid)
if uniqueid.get('default') == 'true':
movie.remove(uniqueid)
except (ET.ParseError, ValueError) as e:
print(f"Warning: Could not parse existing NFO {nfo_path}, creating new: {e}")
@@ -68,21 +71,24 @@ class NFOManager:
# Create new NFO structure
movie = ET.Element("movie")
# Add/update IMDb uniqueid
# Now append NFOGuard fields at the END of the file
# This ensures they appear after all existing content
# Add/update IMDb uniqueid at the end
uniqueid = ET.SubElement(movie, "uniqueid", type="imdb", default="true")
uniqueid.text = imdb_id
# Add dateadded
if dateadded:
dateadded_elem = ET.SubElement(movie, "dateadded")
dateadded_elem.text = dateadded
# Add premiered if we have release date (only if not already present)
if released and movie.find("premiered") is None:
premiered_elem = ET.SubElement(movie, "premiered")
premiered_elem.text = released[:10] if len(released) >= 10 else released
# Add lockdata if requested
# Add dateadded at the end
if dateadded:
dateadded_elem = ET.SubElement(movie, "dateadded")
dateadded_elem.text = dateadded
# Add lockdata at the very end
if lock_metadata:
lockdata = ET.SubElement(movie, "lockdata")
lockdata.text = "true"