diff --git a/clients/sonarr_client.py b/clients/sonarr_client.py index 7805383..8b037aa 100644 --- a/clients/sonarr_client.py +++ b/clients/sonarr_client.py @@ -222,7 +222,7 @@ class SonarrClient: import_date = earliest_import["date"] _log("INFO", f"Found import date: {import_date} for episode {episode_id}") - # Check if this import is likely a recent re-download/upgrade + # Check chronological order of events if rename_events: earliest_rename = min(rename_events, key=lambda x: x["date"]) rename_date = earliest_rename["date"] @@ -230,13 +230,15 @@ class SonarrClient: try: import_dt = datetime.fromisoformat(import_date.replace("Z", "+00:00")) rename_dt = datetime.fromisoformat(rename_date.replace("Z", "+00:00")) - days_diff = (import_dt - rename_dt).days - # If import is significantly after rename, this is likely a re-download - # The original import likely happened much earlier (possibly lost from history) - # Return None to trigger aired date fallback instead of using rename date - if days_diff > 30: - _log("WARNING", f"Import {import_date} is {days_diff} days after rename {rename_date} - this looks like a re-download, using aired date fallback") + # If import happened BEFORE rename, it's valid original import + if import_dt <= rename_dt: + _log("INFO", f"Import {import_date} happened before/during rename {rename_date} - using import date") + return import_date + + # If rename happened BEFORE import - always use aired date fallback + else: + _log("WARNING", f"Rename {rename_date} happened before import {import_date} - using aired date fallback") return None # Trigger aired date fallback except Exception as e: