New: Automatic search for missing episodes if RSS Sync hasn't been run recently

This commit is contained in:
Mark McDowall
2014-04-12 13:49:41 -07:00
parent 0f75a9008a
commit 192e79d2ff
6 changed files with 54 additions and 9 deletions
+13 -2
View File
@@ -1,7 +1,9 @@
using System.Linq;
using System;
using System.Linq;
using NLog;
using NzbDrone.Core.DecisionEngine;
using NzbDrone.Core.Download;
using NzbDrone.Core.IndexerSearch;
using NzbDrone.Core.Instrumentation.Extensions;
using NzbDrone.Core.Messaging.Commands;
@@ -17,16 +19,19 @@ namespace NzbDrone.Core.Indexers
private readonly IFetchAndParseRss _rssFetcherAndParser;
private readonly IMakeDownloadDecision _downloadDecisionMaker;
private readonly IDownloadApprovedReports _downloadApprovedReports;
private readonly IEpisodeSearchService _episodeSearchService;
private readonly Logger _logger;
public RssSyncService(IFetchAndParseRss rssFetcherAndParser,
IMakeDownloadDecision downloadDecisionMaker,
IDownloadApprovedReports downloadApprovedReports,
IEpisodeSearchService episodeSearchService,
Logger logger)
{
_rssFetcherAndParser = rssFetcherAndParser;
_downloadDecisionMaker = downloadDecisionMaker;
_downloadApprovedReports = downloadApprovedReports;
_episodeSearchService = episodeSearchService;
_logger = logger;
}
@@ -45,6 +50,12 @@ namespace NzbDrone.Core.Indexers
public void Execute(RssSyncCommand message)
{
Sync();
if (message.LastExecutionTime.HasValue && DateTime.UtcNow.Subtract(message.LastExecutionTime.Value).TotalHours > 3)
{
_logger.Info("RSS Sync hasn't run since: {0}. Searching for any missing episodes since then.", message.LastExecutionTime.Value);
_episodeSearchService.MissingEpisodesAiredAfter(message.LastExecutionTime.Value.AddDays(-1));
}
}
}
}
}