You've already forked Sonarr
mirror of
https://github.com/Sonarr/Sonarr.git
synced 2025-09-16 09:26:36 +02:00
Prevent should refresh series from failing
Fixed: Prevent error checking if series should be refreshed from failing refresh series task
This commit is contained in:
@@ -23,47 +23,57 @@ namespace NzbDrone.Core.Tv
|
||||
|
||||
public bool ShouldRefresh(Series series)
|
||||
{
|
||||
if (series.LastInfoSync < DateTime.UtcNow.AddDays(-30))
|
||||
try
|
||||
{
|
||||
_logger.Trace("Series {0} last updated more than 30 days ago, should refresh.", series.Title);
|
||||
return true;
|
||||
}
|
||||
if (series.LastInfoSync < DateTime.UtcNow.AddDays(-30))
|
||||
{
|
||||
_logger.Trace("Series {0} last updated more than 30 days ago, should refresh.", series.Title);
|
||||
return true;
|
||||
}
|
||||
|
||||
var episodes = _episodeService.GetEpisodeBySeries(series.Id);
|
||||
var episodes = _episodeService.GetEpisodeBySeries(series.Id);
|
||||
|
||||
var atLeastOneAiredEpisodeWithoutTitle = episodes.Any(e =>
|
||||
e.SeasonNumber > 0 &&
|
||||
e.AirDateUtc.HasValue && e.AirDateUtc.Value.Before(DateTime.UtcNow) &&
|
||||
e.Title.Equals("TBA", StringComparison.Ordinal));
|
||||
var atLeastOneAiredEpisodeWithoutTitle = episodes.Any(e =>
|
||||
e.SeasonNumber > 0 &&
|
||||
e.AirDateUtc.HasValue && e.AirDateUtc.Value.Before(DateTime.UtcNow) &&
|
||||
e.Title.Equals("TBA", StringComparison.Ordinal));
|
||||
|
||||
if (atLeastOneAiredEpisodeWithoutTitle)
|
||||
{
|
||||
_logger.Trace("Series {0} with at least one aired episode with TBA title, should refresh.", series.Title);
|
||||
return true;
|
||||
}
|
||||
if (atLeastOneAiredEpisodeWithoutTitle)
|
||||
{
|
||||
_logger.Trace("Series {0} with at least one aired episode with TBA title, should refresh.",
|
||||
series.Title);
|
||||
return true;
|
||||
}
|
||||
|
||||
if (series.LastInfoSync >= DateTime.UtcNow.AddHours(-6))
|
||||
{
|
||||
_logger.Trace("Series {0} last updated less than 6 hours ago, should not be refreshed.", series.Title);
|
||||
if (series.LastInfoSync >= DateTime.UtcNow.AddHours(-6))
|
||||
{
|
||||
_logger.Trace("Series {0} last updated less than 6 hours ago, should not be refreshed.",
|
||||
series.Title);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (series.Status != SeriesStatusType.Ended)
|
||||
{
|
||||
_logger.Trace("Series {0} is not ended, should refresh.", series.Title);
|
||||
return true;
|
||||
}
|
||||
|
||||
var lastEpisode = episodes.MaxBy(e => e.AirDateUtc);
|
||||
|
||||
if (lastEpisode != null && lastEpisode.AirDateUtc > DateTime.UtcNow.AddDays(-30))
|
||||
{
|
||||
_logger.Trace("Last episode in {0} aired less than 30 days ago, should refresh.", series.Title);
|
||||
return true;
|
||||
}
|
||||
|
||||
_logger.Trace("Series {0} ended long ago, should not be refreshed.", series.Title);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (series.Status != SeriesStatusType.Ended)
|
||||
catch (Exception e)
|
||||
{
|
||||
_logger.Trace("Series {0} is not ended, should refresh.", series.Title);
|
||||
_logger.Error(e, "Unable to determine if series should refresh, will try to refresh.");
|
||||
return true;
|
||||
}
|
||||
|
||||
var lastEpisode = episodes.MaxBy(e => e.AirDateUtc);
|
||||
|
||||
if (lastEpisode != null && lastEpisode.AirDateUtc > DateTime.UtcNow.AddDays(-30))
|
||||
{
|
||||
_logger.Trace("Last episode in {0} aired less than 30 days ago, should refresh.", series.Title);
|
||||
return true;
|
||||
}
|
||||
|
||||
_logger.Trace("Series {0} ended long ago, should not be refreshed.", series.Title);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user