From 924f6ca715144d1e20a90971660bdb4c6cf68aea Mon Sep 17 00:00:00 2001 From: Mark McDowall Date: Sat, 3 Oct 2020 11:53:46 -0700 Subject: [PATCH] New: Pilot Episode monitoring option Closes #3768 --- frontend/src/Utilities/Series/monitorOptions.js | 1 + src/NzbDrone.Core/Tv/EpisodeMonitoredService.cs | 13 +++++++++++-- src/NzbDrone.Core/Tv/MonitoringOptions.cs | 1 + 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/frontend/src/Utilities/Series/monitorOptions.js b/frontend/src/Utilities/Series/monitorOptions.js index 57d46413f..9c59fb131 100644 --- a/frontend/src/Utilities/Series/monitorOptions.js +++ b/frontend/src/Utilities/Series/monitorOptions.js @@ -3,6 +3,7 @@ const monitorOptions = [ { key: 'future', value: 'Future Episodes' }, { key: 'missing', value: 'Missing Episodes' }, { key: 'existing', value: 'Existing Episodes' }, + { key: 'pilot', value: 'Pilot Episode' }, { key: 'firstSeason', value: 'Only First Season' }, { key: 'latestSeason', value: 'Only Latest Season' }, { key: 'none', value: 'None' } diff --git a/src/NzbDrone.Core/Tv/EpisodeMonitoredService.cs b/src/NzbDrone.Core/Tv/EpisodeMonitoredService.cs index b85b5c68a..fded45b0e 100644 --- a/src/NzbDrone.Core/Tv/EpisodeMonitoredService.cs +++ b/src/NzbDrone.Core/Tv/EpisodeMonitoredService.cs @@ -70,6 +70,13 @@ namespace NzbDrone.Core.Tv break; + case MonitorTypes.Pilot: + _logger.Debug("[{0}] Monitoring first episode episodes", series.Title); + ToggleEpisodesMonitoredState(episodes, + e => e.SeasonNumber > 0 && e.SeasonNumber == firstSeason && e.EpisodeNumber == 1); + + break; + case MonitorTypes.FirstSeason: _logger.Debug("[{0}] Monitoring first season episodes", series.Title); ToggleEpisodesMonitoredState(episodes, e => e.SeasonNumber > 0 && e.SeasonNumber == firstSeason); @@ -77,7 +84,6 @@ namespace NzbDrone.Core.Tv break; case MonitorTypes.LatestSeason: - if (episodes.Where(e => e.SeasonNumber == lastSeason) .All(e => e.AirDateUtc.HasValue && e.AirDateUtc.Value.Before(DateTime.UtcNow) && @@ -114,7 +120,10 @@ namespace NzbDrone.Core.Tv // - Not specials // - The latest season // - Not only supposed to monitor the first season - if (seasonNumber > 0 && seasonNumber == lastSeason && monitoringOptions.Monitor != MonitorTypes.FirstSeason) + if (seasonNumber > 0 && + seasonNumber == lastSeason && + monitoringOptions.Monitor != MonitorTypes.FirstSeason && + monitoringOptions.Monitor != MonitorTypes.Pilot) { season.Monitored = true; } diff --git a/src/NzbDrone.Core/Tv/MonitoringOptions.cs b/src/NzbDrone.Core/Tv/MonitoringOptions.cs index 34d1704ec..9ac1d7710 100644 --- a/src/NzbDrone.Core/Tv/MonitoringOptions.cs +++ b/src/NzbDrone.Core/Tv/MonitoringOptions.cs @@ -18,6 +18,7 @@ namespace NzbDrone.Core.Tv Existing, FirstSeason, LatestSeason, + Pilot, None } }