diff --git a/nfoguard.py b/nfoguard.py index 2a79fbd..80bea22 100644 --- a/nfoguard.py +++ b/nfoguard.py @@ -1007,17 +1007,31 @@ class MovieProcessor: # Use existing movie date decision logic dateadded, source, released = self._decide_movie_dates(imdb_id, movie_path, should_query, existing) + # If we don't have an import/download date but we have a release date, use it as dateadded + # This ensures we save digital release dates, theatrical dates, etc. to the database + final_dateadded = dateadded + final_source = source + + if dateadded is None and released is not None: + final_dateadded = released + final_source = f"{source}_as_dateadded" if source else "release_date_fallback" + _log("INFO", f"Using release date as dateadded: {final_dateadded} (source: {final_source})") + # Create NFO regardless of date availability (preserves existing metadata) if config.manage_nfo: self.nfo_manager.create_movie_nfo( - movie_path, imdb_id, dateadded, released, source, config.lock_metadata + movie_path, imdb_id, final_dateadded, released, final_source, config.lock_metadata ) # Skip remaining processing if no valid date found and file dates disabled - if dateadded is None: + if final_dateadded is None: _log("WARNING", f"Movie {movie_path.name} - no valid date source available, but NFO was still processed") self.db.upsert_movie_dates(imdb_id, released, None, source, True) return + + # Update dateadded and source for the rest of processing + dateadded = final_dateadded + source = final_source _log("DEBUG", f"Movie {movie_path.name} proceeding to save: dateadded={dateadded}, source={source}")