This commit is contained in:
@@ -176,6 +176,18 @@ class DatabasePopulator:
|
||||
# Update series record
|
||||
self.db.upsert_series(imdb_id, series_path)
|
||||
|
||||
# Try high-performance database bulk query first
|
||||
sonarr_db = getattr(self.sonarr, 'db_client', None)
|
||||
bulk_import_dates = {}
|
||||
|
||||
if sonarr_db:
|
||||
try:
|
||||
_log("DEBUG", f"Using DB bulk query for {series_title}")
|
||||
bulk_import_dates = sonarr_db.bulk_import_dates_for_series(series_id)
|
||||
_log("DEBUG", f"✅ Got {len(bulk_import_dates)} import dates from DB for {series_title}")
|
||||
except Exception as e:
|
||||
_log("WARNING", f"DB bulk query failed for {series_title}, falling back to API: {e}")
|
||||
|
||||
# Get all episodes for this series
|
||||
episodes = self.sonarr.episodes_for_series(series_id)
|
||||
if not episodes:
|
||||
@@ -203,14 +215,21 @@ class DatabasePopulator:
|
||||
# Get air date
|
||||
aired = episode.get('airDate')
|
||||
|
||||
# Get import date from history
|
||||
# Get import date
|
||||
dateadded = None
|
||||
episode_id = episode.get('id')
|
||||
if episode_id and episode.get('hasFile'):
|
||||
import_date = self.sonarr.get_episode_import_history(episode_id)
|
||||
if import_date:
|
||||
dateadded = import_date
|
||||
source = 'sonarr:import_history'
|
||||
source = None
|
||||
|
||||
# Try bulk DB result first
|
||||
if (season_num, episode_num) in bulk_import_dates:
|
||||
dateadded, source = bulk_import_dates[(season_num, episode_num)]
|
||||
# Fall back to API query
|
||||
elif episode.get('hasFile'):
|
||||
episode_id = episode.get('id')
|
||||
if episode_id:
|
||||
import_date = self.sonarr.get_episode_import_history(episode_id)
|
||||
if import_date:
|
||||
dateadded = import_date
|
||||
source = 'sonarr:api.import_history'
|
||||
|
||||
# Fallback to air date if no import date
|
||||
if not dateadded and aired:
|
||||
|
||||
Reference in New Issue
Block a user