|
|
|
@ -7,6 +7,7 @@ using NzbDrone.Common.Extensions;
|
|
|
|
|
using NzbDrone.Core.Configuration;
|
|
|
|
|
using NzbDrone.Core.DecisionEngine;
|
|
|
|
|
using NzbDrone.Core.Indexers;
|
|
|
|
|
using NzbDrone.Core.Jobs;
|
|
|
|
|
using NzbDrone.Core.Messaging.Events;
|
|
|
|
|
using NzbDrone.Core.Parser;
|
|
|
|
|
using NzbDrone.Core.Parser.Model;
|
|
|
|
@ -38,6 +39,7 @@ namespace NzbDrone.Core.Download.Pending
|
|
|
|
|
private readonly ISeriesService _seriesService;
|
|
|
|
|
private readonly IParsingService _parsingService;
|
|
|
|
|
private readonly IDelayProfileService _delayProfileService;
|
|
|
|
|
private readonly ITaskManager _taskManager;
|
|
|
|
|
private readonly IConfigService _configService;
|
|
|
|
|
private readonly IEventAggregator _eventAggregator;
|
|
|
|
|
private readonly Logger _logger;
|
|
|
|
@ -46,6 +48,7 @@ namespace NzbDrone.Core.Download.Pending
|
|
|
|
|
ISeriesService seriesService,
|
|
|
|
|
IParsingService parsingService,
|
|
|
|
|
IDelayProfileService delayProfileService,
|
|
|
|
|
ITaskManager taskManager,
|
|
|
|
|
IConfigService configService,
|
|
|
|
|
IEventAggregator eventAggregator,
|
|
|
|
|
Logger logger)
|
|
|
|
@ -54,6 +57,7 @@ namespace NzbDrone.Core.Download.Pending
|
|
|
|
|
_seriesService = seriesService;
|
|
|
|
|
_parsingService = parsingService;
|
|
|
|
|
_delayProfileService = delayProfileService;
|
|
|
|
|
_taskManager = taskManager;
|
|
|
|
|
_configService = configService;
|
|
|
|
|
_eventAggregator = eventAggregator;
|
|
|
|
|
_logger = logger;
|
|
|
|
@ -94,12 +98,23 @@ namespace NzbDrone.Core.Download.Pending
|
|
|
|
|
{
|
|
|
|
|
var queued = new List<Queue.Queue>();
|
|
|
|
|
|
|
|
|
|
var nextRssSync = new Lazy<DateTime>(() => _taskManager.GetNextExecution(typeof(RssSyncCommand)));
|
|
|
|
|
|
|
|
|
|
foreach (var pendingRelease in GetPendingReleases())
|
|
|
|
|
{
|
|
|
|
|
foreach (var episode in pendingRelease.RemoteEpisode.Episodes)
|
|
|
|
|
{
|
|
|
|
|
var ect = pendingRelease.Release.PublishDate.AddMinutes(GetDelay(pendingRelease.RemoteEpisode));
|
|
|
|
|
|
|
|
|
|
if (ect < nextRssSync.Value)
|
|
|
|
|
{
|
|
|
|
|
ect = nextRssSync.Value;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
ect = ect.AddMinutes(_configService.RssSyncInterval);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var queue = new Queue.Queue
|
|
|
|
|
{
|
|
|
|
|
Id = GetQueueId(pendingRelease, episode),
|
|
|
|
|