Fix TMDB country configuration and add comprehensive API debugging
- Fixed ExternalClientManager to properly use TMDB_COUNTRY environment variable - Added detailed TMDB API call logging to debug why external clients return None - Will show available countries, release types, and specific API responses - Should resolve the "no_valid_date_source" issue for rename-first movies Version bumped to 0.2.17
This commit is contained in:
@@ -73,26 +73,48 @@ class TMDBClient:
|
||||
|
||||
def get_digital_release_date(self, imdb_id: str) -> Optional[str]:
|
||||
"""Get digital release date for a movie"""
|
||||
_log("INFO", f"🔍 TMDB: Looking for digital release date for {imdb_id}")
|
||||
movie = self.find_by_imdb(imdb_id)
|
||||
if not movie:
|
||||
_log("WARNING", f"❌ TMDB: Movie not found for {imdb_id}")
|
||||
return None
|
||||
|
||||
tmdb_id = movie.get("id")
|
||||
_log("INFO", f"✅ TMDB: Found movie ID {tmdb_id} for {imdb_id}")
|
||||
if not tmdb_id:
|
||||
return None
|
||||
|
||||
release_dates = self._get(f"/movie/{tmdb_id}/release_dates")
|
||||
if not release_dates:
|
||||
_log("WARNING", f"❌ TMDB: No release dates data for movie {tmdb_id}")
|
||||
return None
|
||||
|
||||
for entry in release_dates.get("results", []):
|
||||
if entry.get("iso_3166_1", "").upper() != self.primary_country:
|
||||
continue
|
||||
|
||||
for release in entry.get("release_dates", []):
|
||||
if release.get("type") == 4 and release.get("release_date"): # Digital release
|
||||
return _parse_date_to_iso(release["release_date"])
|
||||
_log("INFO", f"🔍 TMDB: Got release dates data, looking for {self.primary_country} digital releases")
|
||||
|
||||
# Debug: Show all available countries
|
||||
countries = [entry.get("iso_3166_1") for entry in release_dates.get("results", [])]
|
||||
_log("INFO", f"📍 TMDB: Available countries: {countries}")
|
||||
|
||||
for entry in release_dates.get("results", []):
|
||||
country = entry.get("iso_3166_1", "").upper()
|
||||
if country != self.primary_country:
|
||||
continue
|
||||
|
||||
_log("INFO", f"🎯 TMDB: Found {country} release data")
|
||||
releases = entry.get("release_dates", [])
|
||||
_log("INFO", f"🎬 TMDB: Release types available: {[r.get('type') for r in releases]}")
|
||||
|
||||
for release in releases:
|
||||
release_type = release.get("type")
|
||||
release_date = release.get("release_date")
|
||||
_log("INFO", f"📅 TMDB: Type {release_type}, Date: {release_date}")
|
||||
|
||||
if release_type == 4 and release_date: # Digital release
|
||||
parsed_date = _parse_date_to_iso(release_date)
|
||||
_log("INFO", f"✅ TMDB: Found digital release date: {parsed_date}")
|
||||
return parsed_date
|
||||
|
||||
_log("WARNING", f"❌ TMDB: No digital release found for {imdb_id} in {self.primary_country}")
|
||||
return None
|
||||
|
||||
def get_theatrical_release_date(self, imdb_id: str) -> Optional[str]:
|
||||
@@ -283,7 +305,11 @@ class ExternalClientManager:
|
||||
"""Manager for all external API clients"""
|
||||
|
||||
def __init__(self):
|
||||
self.tmdb = TMDBClient()
|
||||
# Get country from environment, default to US
|
||||
tmdb_country = os.environ.get("TMDB_COUNTRY", "US")
|
||||
_log("INFO", f"🌍 TMDB: Initializing with country: {tmdb_country}")
|
||||
|
||||
self.tmdb = TMDBClient(primary_country=tmdb_country)
|
||||
self.omdb = OMDbClient()
|
||||
self.jellyseerr = JellyseerrClient()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user