feat: Add international release date fallback for movies without US dates
Local Docker Build (Dev) / build-dev (push) Successful in 28s
Local Docker Build (Dev) / build-dev (push) Successful in 28s
- Add fallback logic to use any available country when US release dates unavailable - Maintains same release type priority (Digital, Physical, Theatrical) - Should resolve The Fabric of Christmas (2023) no_valid_date_source issue - Logs which country is used as fallback for transparency - Available countries for this movie: AU, BE, CA
This commit is contained in:
@@ -235,6 +235,42 @@ class TMDBClient:
|
||||
return parsed_date
|
||||
|
||||
_log("WARNING", f"❌ TMDB: No release dates found for {imdb_id} in {self.primary_country}")
|
||||
|
||||
# Fallback: Try any available country if primary country has no dates
|
||||
_log("INFO", f"🌍 TMDB: Trying fallback to any available country for {imdb_id}")
|
||||
for entry in release_dates.get("results", []):
|
||||
country = entry.get("iso_3166_1", "").upper()
|
||||
_log("INFO", f"🎯 TMDB: Checking fallback country {country}")
|
||||
|
||||
releases = entry.get("release_dates", [])
|
||||
if not releases:
|
||||
continue
|
||||
|
||||
# Collect all available releases with their types and dates
|
||||
available_releases = []
|
||||
for release in releases:
|
||||
release_type = release.get("type")
|
||||
release_date = release.get("release_date")
|
||||
|
||||
if release_date:
|
||||
parsed_date = _parse_date_to_iso(release_date)
|
||||
if parsed_date:
|
||||
available_releases.append((release_type, parsed_date))
|
||||
|
||||
# Apply TMDB release type priority order
|
||||
tmdb_priority = self._get_tmdb_type_priority()
|
||||
for preferred_type in tmdb_priority:
|
||||
for release_type, parsed_date in available_releases:
|
||||
if release_type == preferred_type:
|
||||
release_type_names = {
|
||||
1: "Premiere", 2: "Limited Theatrical", 3: "Theatrical",
|
||||
4: "Digital", 5: "Physical", 6: "TV Premiere"
|
||||
}
|
||||
type_name = release_type_names.get(release_type, f"Type {release_type}")
|
||||
_log("INFO", f"✅ TMDB: Using fallback {country} {type_name} release date: {parsed_date}")
|
||||
return parsed_date
|
||||
|
||||
_log("WARNING", f"❌ TMDB: No release dates found for {imdb_id} in any country")
|
||||
return None
|
||||
|
||||
def _get_tmdb_type_priority(self) -> List[int]:
|
||||
|
||||
Reference in New Issue
Block a user