sonarr-date #30
@@ -120,7 +120,8 @@ class TVProcessor:
|
|||||||
aired = sonarr_data.get('airDate')
|
aired = sonarr_data.get('airDate')
|
||||||
dateadded = sonarr_data.get('dateAdded')
|
dateadded = sonarr_data.get('dateAdded')
|
||||||
if dateadded:
|
if dateadded:
|
||||||
source = "sonarr"
|
# Use more specific source to indicate this came from Sonarr import history
|
||||||
|
source = "sonarr:history.import"
|
||||||
|
|
||||||
# Fallback to external sources if needed
|
# Fallback to external sources if needed
|
||||||
if not aired:
|
if not aired:
|
||||||
@@ -130,8 +131,9 @@ class TVProcessor:
|
|||||||
if not dateadded:
|
if not dateadded:
|
||||||
source = "external"
|
source = "external"
|
||||||
|
|
||||||
# Use air date as fallback for dateadded if available
|
# ONLY use air date as fallback for dateadded if we have no Sonarr import date at all
|
||||||
if not dateadded and aired:
|
# and if we couldn't get any import information from Sonarr history
|
||||||
|
if not dateadded and aired and source != "sonarr:history.import":
|
||||||
dateadded = aired
|
dateadded = aired
|
||||||
source = f"{source}_fallback" if source != "unknown" else "aired_fallback"
|
source = f"{source}_fallback" if source != "unknown" else "aired_fallback"
|
||||||
|
|
||||||
@@ -140,7 +142,7 @@ class TVProcessor:
|
|||||||
return episode_dates
|
return episode_dates
|
||||||
|
|
||||||
def _get_sonarr_episodes(self, imdb_id: str) -> Dict[Tuple[int, int], Dict[str, Any]]:
|
def _get_sonarr_episodes(self, imdb_id: str) -> Dict[Tuple[int, int], Dict[str, Any]]:
|
||||||
"""Get episode information from Sonarr"""
|
"""Get episode information from Sonarr including import history"""
|
||||||
try:
|
try:
|
||||||
series_data = self.sonarr.series_by_imdb(imdb_id)
|
series_data = self.sonarr.series_by_imdb(imdb_id)
|
||||||
if not series_data:
|
if not series_data:
|
||||||
@@ -158,10 +160,28 @@ class TVProcessor:
|
|||||||
episode_num = episode.get('episodeNumber', 0)
|
episode_num = episode.get('episodeNumber', 0)
|
||||||
|
|
||||||
if season > 0 and episode_num > 0:
|
if season > 0 and episode_num > 0:
|
||||||
episode_map[(season, episode_num)] = {
|
# Get basic episode info
|
||||||
|
episode_data = {
|
||||||
'airDate': episode.get('airDate'),
|
'airDate': episode.get('airDate'),
|
||||||
'dateAdded': episode.get('episodeFile', {}).get('dateAdded') if episode.get('hasFile') else None
|
'dateAdded': None
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# First try to get import date from history (more accurate)
|
||||||
|
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:
|
||||||
|
episode_data['dateAdded'] = import_date
|
||||||
|
_log("DEBUG", f"Got import date from history for S{season:02d}E{episode_num:02d}: {import_date}")
|
||||||
|
|
||||||
|
# Fallback to episodeFile.dateAdded if history didn't work
|
||||||
|
if not episode_data['dateAdded'] and episode.get('hasFile'):
|
||||||
|
file_date = episode.get('episodeFile', {}).get('dateAdded')
|
||||||
|
if file_date:
|
||||||
|
episode_data['dateAdded'] = file_date
|
||||||
|
_log("DEBUG", f"Got file date for S{season:02d}E{episode_num:02d}: {file_date}")
|
||||||
|
|
||||||
|
episode_map[(season, episode_num)] = episode_data
|
||||||
|
|
||||||
return episode_map
|
return episode_map
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user