From 212e51e54fa99605b1777a4e8f4608f99672e5b8 Mon Sep 17 00:00:00 2001 From: sbcrumb Date: Tue, 14 Oct 2025 15:50:09 -0400 Subject: [PATCH] fix: smart dates --- api/web_routes.py | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/api/web_routes.py b/api/web_routes.py index 1b23d5e..2393863 100644 --- a/api/web_routes.py +++ b/api/web_routes.py @@ -495,20 +495,29 @@ async def get_movie_date_options(dependencies: dict, imdb_id: str): # Option 2: Released date as digital release (if different from current) if movie.get('released') and movie['released'].strip(): try: - release_date = f"{movie['released']}T00:00:00" + released_raw = movie['released'] + + # Handle different released date formats + if 'T' in released_raw: + # Already has time component: 2018-07-27T00:00:00+00:00 + release_date = released_raw + else: + # Just date: 2018-07-27 + release_date = f"{released_raw}T00:00:00" + # Validate the date format from datetime import datetime datetime.fromisoformat(release_date.replace('Z', '+00:00')) # Only add if it's different from current dateadded current_dateadded = movie.get('dateadded', '') - if not current_dateadded or not current_dateadded.startswith(movie['released']): + if not current_dateadded or not current_dateadded.startswith(released_raw[:10]): # Compare just the date part options.append({ "type": "digital_release", "label": "Use Actual Release Date", "date": release_date, "source": "digital_release", - "description": f"Use the movie's actual release date: {movie['released']} (instead of download date)" + "description": f"Use the movie's actual release date: {released_raw[:10]} (instead of download date)" }) except Exception as e: print(f"⚠️ Invalid released date format for {imdb_id}: {movie.get('released')} - {e}")