fix: Ensure NFOGuard fields are appended at bottom of NFO files
Local Docker Build (Dev) / build-dev (push) Successful in 24s
Local Docker Build (Dev) / build-dev (push) Successful in 24s
Changed from ET.SubElement() to ET.Element() + explicit append() to guarantee that NFOGuard-managed fields appear at the very bottom of NFO files after all existing content. This is critical because: - Emby plugin specifically looks for dateadded field - All NFOGuard fields should be grouped together at the bottom - Preserves existing rich metadata while clearly marking our additions Added debug logging for dateadded field to confirm it's being written.
This commit is contained in:
+14
-8
@@ -183,36 +183,42 @@ class NFOManager:
|
|||||||
# Create new NFO structure
|
# Create new NFO structure
|
||||||
movie = ET.Element("movie")
|
movie = ET.Element("movie")
|
||||||
|
|
||||||
# Now append ALL NFOGuard and date fields at the VERY END of the file
|
# Now append ALL NFOGuard fields at the VERY END of the file
|
||||||
# This ensures they appear after all existing content including actors
|
# Create elements and explicitly append them to ensure they're at the bottom
|
||||||
|
|
||||||
# Add IMDb uniqueid at the end (after all existing content)
|
# Add IMDb uniqueid at the end (after all existing content)
|
||||||
uniqueid = ET.SubElement(movie, "uniqueid", type="imdb", default="true")
|
uniqueid = ET.Element("uniqueid", type="imdb", default="true")
|
||||||
uniqueid.text = imdb_id
|
uniqueid.text = imdb_id
|
||||||
|
movie.append(uniqueid)
|
||||||
|
|
||||||
# Add premiered date at the bottom if we have it
|
# Add premiered date at the bottom if we have it
|
||||||
if released:
|
if released:
|
||||||
premiered_elem = ET.SubElement(movie, "premiered")
|
premiered_elem = ET.Element("premiered")
|
||||||
premiered_elem.text = released[:10] if len(released) >= 10 else released
|
premiered_elem.text = released[:10] if len(released) >= 10 else released
|
||||||
|
movie.append(premiered_elem)
|
||||||
|
|
||||||
# Extract year from premiered date for consistency
|
# Extract year from premiered date for consistency
|
||||||
try:
|
try:
|
||||||
year_value = released[:4] if len(released) >= 4 else None
|
year_value = released[:4] if len(released) >= 4 else None
|
||||||
if year_value and year_value.isdigit():
|
if year_value and year_value.isdigit():
|
||||||
year_elem = ET.SubElement(movie, "year")
|
year_elem = ET.Element("year")
|
||||||
year_elem.text = year_value
|
year_elem.text = year_value
|
||||||
|
movie.append(year_elem)
|
||||||
except:
|
except:
|
||||||
pass # Skip year if we can't extract it
|
pass # Skip year if we can't extract it
|
||||||
|
|
||||||
# Add dateadded at the end
|
# Add dateadded at the end - THIS IS CRITICAL FOR EMBY PLUGIN
|
||||||
if dateadded:
|
if dateadded:
|
||||||
dateadded_elem = ET.SubElement(movie, "dateadded")
|
dateadded_elem = ET.Element("dateadded")
|
||||||
dateadded_elem.text = dateadded
|
dateadded_elem.text = dateadded
|
||||||
|
movie.append(dateadded_elem)
|
||||||
|
print(f"✅ Added dateadded to NFO: {dateadded}")
|
||||||
|
|
||||||
# Add lockdata at the very end
|
# Add lockdata at the very end
|
||||||
if lock_metadata:
|
if lock_metadata:
|
||||||
lockdata = ET.SubElement(movie, "lockdata")
|
lockdata = ET.Element("lockdata")
|
||||||
lockdata.text = "true"
|
lockdata.text = "true"
|
||||||
|
movie.append(lockdata)
|
||||||
|
|
||||||
# Add NFOGuard comment at the beginning
|
# Add NFOGuard comment at the beginning
|
||||||
comment_text = f" Created by {self.manager_brand} - Source: {source} "
|
comment_text = f" Created by {self.manager_brand} - Source: {source} "
|
||||||
|
|||||||
Reference in New Issue
Block a user