mirror of
https://github.com/lidarr/Lidarr
synced 2024-12-27 01:57:21 +00:00
NZB will be sent to SABnzbd when needed.
This commit is contained in:
parent
80d47e611c
commit
32dcf1feec
1 changed files with 41 additions and 18 deletions
|
@ -1,4 +1,5 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.ServiceModel.Syndication;
|
||||
using NLog;
|
||||
|
@ -18,11 +19,12 @@ public abstract class IndexerProviderBase
|
|||
private readonly HistoryProvider _historyProvider;
|
||||
protected readonly SeasonProvider _seasonProvider;
|
||||
protected readonly SeriesProvider _seriesProvider;
|
||||
|
||||
protected readonly SabProvider _sabProvider;
|
||||
|
||||
protected IndexerProviderBase(SeriesProvider seriesProvider, SeasonProvider seasonProvider,
|
||||
EpisodeProvider episodeProvider, ConfigProvider configProvider,
|
||||
HttpProvider httpProvider, IndexerProvider indexerProvider, HistoryProvider historyProvider)
|
||||
HttpProvider httpProvider, IndexerProvider indexerProvider,
|
||||
HistoryProvider historyProvider, SabProvider sabProvider)
|
||||
{
|
||||
_seriesProvider = seriesProvider;
|
||||
_seasonProvider = seasonProvider;
|
||||
|
@ -31,6 +33,7 @@ protected IndexerProviderBase(SeriesProvider seriesProvider, SeasonProvider seas
|
|||
_httpProvider = httpProvider;
|
||||
_indexerProvider = indexerProvider;
|
||||
_historyProvider = historyProvider;
|
||||
_sabProvider = sabProvider;
|
||||
_logger = LogManager.GetLogger(GetType().ToString());
|
||||
}
|
||||
|
||||
|
@ -123,25 +126,33 @@ internal void ProcessItem(SyndicationItem feedItem)
|
|||
|
||||
var episodes = _episodeProvider.GetEpisodeByParseResult(parseResult);
|
||||
|
||||
if (InHistory(episodes, parseResult, feedItem))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
var sabTitle = _sabProvider.GetSabTitle(parseResult);
|
||||
|
||||
if (_sabProvider.IsInQueue(sabTitle))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (!_sabProvider.AddByUrl(NzbDownloadUrl(feedItem), sabTitle))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
foreach (var episode in episodes)
|
||||
{
|
||||
if (_historyProvider.Exists(episode.EpisodeId, parseResult.Quality, parseResult.Proper))
|
||||
_historyProvider.Add(new History
|
||||
{
|
||||
_logger.Debug("Episode in history: {0}", feedItem.Title.Text);
|
||||
}
|
||||
else
|
||||
{
|
||||
//TODO: Add episode to sab
|
||||
|
||||
_historyProvider.Add(new History
|
||||
{
|
||||
Date = DateTime.Now,
|
||||
EpisodeId = episode.EpisodeId,
|
||||
IsProper = parseResult.Proper,
|
||||
NzbTitle = feedItem.Title.Text,
|
||||
Quality = parseResult.Quality
|
||||
});
|
||||
}
|
||||
Date = DateTime.Now,
|
||||
EpisodeId = episode.EpisodeId,
|
||||
IsProper = parseResult.Proper,
|
||||
NzbTitle = feedItem.Title.Text,
|
||||
Quality = parseResult.Quality
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -188,5 +199,17 @@ protected virtual EpisodeParseResult CustomParser(SyndicationItem item, EpisodeP
|
|||
/// <param name = "item">RSS Feed item to generate the link for</param>
|
||||
/// <returns>Download link URL</returns>
|
||||
protected abstract string NzbDownloadUrl(SyndicationItem item);
|
||||
|
||||
private bool InHistory(IList<Episode> episodes, EpisodeParseResult parseResult, SyndicationItem feedItem)
|
||||
{
|
||||
foreach (var episode in episodes)
|
||||
{
|
||||
if (_historyProvider.Exists(episode.EpisodeId, parseResult.Quality, parseResult.Proper))
|
||||
{
|
||||
_logger.Debug("Episode in history: {0}", feedItem.Title.Text);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue