From 149bf9acd3ef410bf4a4d815fe46688686a2c1bb Mon Sep 17 00:00:00 2001 From: SBCrumb Date: Tue, 9 Sep 2025 08:55:02 -0400 Subject: [PATCH] added back tmdb --- .env.template | 13 ++++++++++ nfoguard.py | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 80 insertions(+) diff --git a/.env.template b/.env.template index 9ad3217..f041d0a 100644 --- a/.env.template +++ b/.env.template @@ -39,6 +39,19 @@ RADARR_API_KEY=your_radarr_api_key SONARR_URL=http://sonarr:8989 SONARR_API_KEY=your_sonarr_api_key +# =========================================== +# EXTERNAL APIs FOR DIGITAL RELEASE DATES +# =========================================== +# TMDB API for digital release dates (recommended) +TMDB_API_KEY=your_tmdb_api_key + +# OMDb API for DVD/digital release dates (optional) +OMDB_API_KEY=your_omdb_api_key + +# Jellyseerr for additional digital release data (optional) +JELLYSEERR_URL=http://jellyseerr:5055 +JELLYSEERR_API_KEY=your_jellyseerr_api_key + # =========================================== # NFO MANAGEMENT # =========================================== diff --git a/nfoguard.py b/nfoguard.py index 0cc795d..ccf206e 100644 --- a/nfoguard.py +++ b/nfoguard.py @@ -1113,6 +1113,73 @@ async def trigger_bulk_update(background_tasks: BackgroundTasks): background_tasks.add_task(run_bulk_update) return {"status": "started", "message": "Bulk update started"} +@app.get("/debug/movie/{imdb_id}/priority") +async def debug_movie_priority_logic(imdb_id: str): + """Debug endpoint showing how MOVIE_PRIORITY affects date selection""" + try: + if not imdb_id.startswith("tt"): + imdb_id = f"tt{imdb_id}" + + result = { + "imdb_id": imdb_id, + "movie_priority": config.movie_priority, + "priority_explanation": "", + "date_sources": {}, + "selected_date": None, + "selected_source": None + } + + # Get Radarr import date + if movie_processor.radarr.api_key: + radarr_movie = movie_processor.radarr.movie_by_imdb(imdb_id) + if radarr_movie: + movie_id = radarr_movie.get("id") + if movie_id: + import_date, import_source = movie_processor.radarr.get_movie_import_date(movie_id) + if import_date: + result["date_sources"]["radarr_import"] = { + "date": import_date, + "source": import_source + } + + # Get digital release dates + digital_date, digital_source = movie_processor._get_digital_release_date(imdb_id) + if digital_date: + result["date_sources"]["digital_release"] = { + "date": digital_date, + "source": digital_source + } + + # Show priority logic + if config.movie_priority == "import_then_digital": + result["priority_explanation"] = "1st: Radarr import history, 2nd: TMDB/OMDb digital release, 3rd: file mtime" + if result["date_sources"].get("radarr_import"): + result["selected_date"] = result["date_sources"]["radarr_import"]["date"] + result["selected_source"] = result["date_sources"]["radarr_import"]["source"] + elif result["date_sources"].get("digital_release"): + result["selected_date"] = result["date_sources"]["digital_release"]["date"] + result["selected_source"] = result["date_sources"]["digital_release"]["source"] + else: # digital_then_import + result["priority_explanation"] = "1st: TMDB/OMDb digital release, 2nd: Radarr import history, 3rd: file mtime" + if result["date_sources"].get("digital_release"): + result["selected_date"] = result["date_sources"]["digital_release"]["date"] + result["selected_source"] = result["date_sources"]["digital_release"]["source"] + elif result["date_sources"].get("radarr_import"): + result["selected_date"] = result["date_sources"]["radarr_import"]["date"] + result["selected_source"] = result["date_sources"]["radarr_import"]["source"] + + # Show external API status + result["external_apis"] = { + "tmdb_enabled": movie_processor.external_clients.tmdb.enabled, + "omdb_enabled": movie_processor.external_clients.omdb.enabled, + "jellyseerr_enabled": movie_processor.external_clients.jellyseerr.enabled + } + + return result + + except Exception as e: + return {"error": str(e), "imdb_id": imdb_id} + # --------------------------- # Main # ---------------------------