fix: Add Sonarr direct lookup fallback for reliable series detection
Local Docker Build (Dev) / build-dev (push) Successful in 19s

The /series/lookup endpoint sometimes fails to find series that exist in Sonarr. Added fallback to series_by_imdb_direct() method which scans all series directly.

Changes:
- Try Sonarr lookup endpoint first (fast)
- Fall back to direct series scan if lookup fails (slower but more reliable)
- Apply same logic to both episode dates and metadata methods
- Version bump to 2.0.5-sonarr-direct-lookup

This should find High Potential, Breaking Bad, and other series that exist in Sonarr but weren't found via the lookup endpoint.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-09-26 14:14:40 -04:00
parent 27677e49f8
commit 4d30ea840f
2 changed files with 15 additions and 6 deletions
+1 -1
View File
@@ -1 +1 @@
2.0.4-fallback-fix 2.0.5-sonarr-direct-lookup
+14 -5
View File
@@ -187,13 +187,18 @@ class TVSeriesProcessor:
return aired, dateadded, source return aired, dateadded, source
try: try:
# Find series in Sonarr # Find series in Sonarr using lookup endpoint first
series = self.sonarr.series_by_imdb(imdb_id) series = self.sonarr.series_by_imdb(imdb_id)
if not series: if not series:
_log("WARNING", f"Series not found in Sonarr for IMDb: {imdb_id}") _log("WARNING", f"Series not found via Sonarr lookup for IMDb: {imdb_id}")
# Don't return here - fall through to external API fallback # Try direct method as fallback (slower but more reliable)
pass _log("DEBUG", f"Trying direct series search for IMDb: {imdb_id}")
else: series = self.sonarr.series_by_imdb_direct(imdb_id)
if not series:
_log("WARNING", f"Series not found via direct search either for IMDb: {imdb_id}")
# Fall through to external API fallback
if series:
# Get episodes for series # Get episodes for series
episodes = self.sonarr.episodes_for_series(series["id"]) episodes = self.sonarr.episodes_for_series(series["id"])
target_episode = None target_episode = None
@@ -248,6 +253,10 @@ class TVSeriesProcessor:
try: try:
series = self.sonarr.series_by_imdb(imdb_id) series = self.sonarr.series_by_imdb(imdb_id)
if not series:
# Try direct method as fallback
series = self.sonarr.series_by_imdb_direct(imdb_id)
if series: if series:
episodes = self.sonarr.episodes_for_series(series["id"]) episodes = self.sonarr.episodes_for_series(series["id"])
for episode in episodes: for episode in episodes: