mirror of https://github.com/Sonarr/Sonarr
Added nzbs.org using the provider model.
This commit is contained in:
parent
375a0c333e
commit
16234d6b79
|
@ -129,7 +129,7 @@
|
||||||
<PredefinedRule Inspect="True" Prefix="" Suffix="" Style="aaBb" ElementKind="Locals" />
|
<PredefinedRule Inspect="True" Prefix="" Suffix="" Style="aaBb" ElementKind="Locals" />
|
||||||
<PredefinedRule Inspect="True" Prefix="" Suffix="" Style="aaBb" ElementKind="LocalConstants" />
|
<PredefinedRule Inspect="True" Prefix="" Suffix="" Style="aaBb" ElementKind="LocalConstants" />
|
||||||
<PredefinedRule Inspect="True" Prefix="" Suffix="" Style="aaBb" ElementKind="Parameters" />
|
<PredefinedRule Inspect="True" Prefix="" Suffix="" Style="aaBb" ElementKind="Parameters" />
|
||||||
<PredefinedRule Inspect="True" Prefix="" Suffix="" Style="AaBb" ElementKind="PublicFields" />
|
<PredefinedRule Inspect="True" Prefix="_" Suffix="" Style="aaBb" ElementKind="PublicFields" />
|
||||||
<PredefinedRule Inspect="True" Prefix="_" Suffix="" Style="aaBb" ElementKind="PrivateInstanceFields" />
|
<PredefinedRule Inspect="True" Prefix="_" Suffix="" Style="aaBb" ElementKind="PrivateInstanceFields" />
|
||||||
<PredefinedRule Inspect="True" Prefix="_" Suffix="" Style="aaBb" ElementKind="PrivateStaticFields" />
|
<PredefinedRule Inspect="True" Prefix="_" Suffix="" Style="aaBb" ElementKind="PrivateStaticFields" />
|
||||||
<PredefinedRule Inspect="True" Prefix="" Suffix="" Style="AA_BB" ElementKind="Constants" />
|
<PredefinedRule Inspect="True" Prefix="" Suffix="" Style="AA_BB" ElementKind="Constants" />
|
||||||
|
|
|
@ -173,8 +173,9 @@
|
||||||
<Compile Include="Model\SceneNameModel.cs" />
|
<Compile Include="Model\SceneNameModel.cs" />
|
||||||
<Compile Include="Model\SeasonParseResult.cs" />
|
<Compile Include="Model\SeasonParseResult.cs" />
|
||||||
<Compile Include="Model\UpcomingEpisodesModel.cs" />
|
<Compile Include="Model\UpcomingEpisodesModel.cs" />
|
||||||
<Compile Include="Providers\FeedProviderBase.cs" />
|
<Compile Include="Providers\Feed\FeedProviderBase.cs" />
|
||||||
<Compile Include="Providers\ExternalNotificationProvider.cs" />
|
<Compile Include="Providers\ExternalNotificationProvider.cs" />
|
||||||
|
<Compile Include="Providers\Feed\NzbsOrgFeedProvider.cs" />
|
||||||
<Compile Include="Providers\HistoryProvider.cs" />
|
<Compile Include="Providers\HistoryProvider.cs" />
|
||||||
<Compile Include="Providers\IBacklogProvider.cs" />
|
<Compile Include="Providers\IBacklogProvider.cs" />
|
||||||
<Compile Include="Providers\IExtenalNotificationProvider.cs" />
|
<Compile Include="Providers\IExtenalNotificationProvider.cs" />
|
||||||
|
@ -275,7 +276,6 @@
|
||||||
<Content Include="Libraries\System.Data.SQLite.XML" />
|
<Content Include="Libraries\System.Data.SQLite.XML" />
|
||||||
<Content Include="Libraries\TvdbLib.dll" />
|
<Content Include="Libraries\TvdbLib.dll" />
|
||||||
<Content Include="Libraries\TvdbLib.XML" />
|
<Content Include="Libraries\TvdbLib.XML" />
|
||||||
<Content Include="Libraries\UPnP.dll" />
|
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Include="Libraries\nlog.xsd">
|
<None Include="Libraries\nlog.xsd">
|
||||||
|
|
|
@ -2,21 +2,24 @@
|
||||||
using System.Xml;
|
using System.Xml;
|
||||||
using NLog;
|
using NLog;
|
||||||
using NzbDrone.Core.Model;
|
using NzbDrone.Core.Model;
|
||||||
|
using NzbDrone.Core.Providers.Core;
|
||||||
|
|
||||||
namespace NzbDrone.Core.Providers
|
namespace NzbDrone.Core.Providers.Feed
|
||||||
{
|
{
|
||||||
abstract class FeedProviderBase
|
abstract class FeedProviderBase
|
||||||
{
|
{
|
||||||
private readonly ISeriesProvider _seriesProvider;
|
protected readonly ISeriesProvider _seriesProvider;
|
||||||
private readonly ISeasonProvider _seasonProvider;
|
protected readonly ISeasonProvider _seasonProvider;
|
||||||
private readonly IEpisodeProvider _episodeProvider;
|
protected readonly IEpisodeProvider _episodeProvider;
|
||||||
private static readonly Logger Logger = LogManager.GetCurrentClassLogger();
|
protected readonly IConfigProvider _configProvider;
|
||||||
|
protected static readonly Logger Logger = LogManager.GetCurrentClassLogger();
|
||||||
|
|
||||||
protected FeedProviderBase(ISeriesProvider seriesProvider, ISeasonProvider seasonProvider, IEpisodeProvider episodeProvider)
|
protected FeedProviderBase(ISeriesProvider seriesProvider, ISeasonProvider seasonProvider, IEpisodeProvider episodeProvider, IConfigProvider configProvider)
|
||||||
{
|
{
|
||||||
_seriesProvider = seriesProvider;
|
_seriesProvider = seriesProvider;
|
||||||
_seasonProvider = seasonProvider;
|
_seasonProvider = seasonProvider;
|
||||||
_episodeProvider = episodeProvider;
|
_episodeProvider = episodeProvider;
|
||||||
|
_configProvider = configProvider;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -72,6 +75,7 @@ namespace NzbDrone.Core.Providers
|
||||||
|
|
||||||
foreach (var url in URL)
|
foreach (var url in URL)
|
||||||
{
|
{
|
||||||
|
Logger.Debug("Downloading RSS " + url);
|
||||||
var feed = SyndicationFeed.Load(XmlReader.Create(url)).Items;
|
var feed = SyndicationFeed.Load(XmlReader.Create(url)).Items;
|
||||||
|
|
||||||
foreach (var item in feed)
|
foreach (var item in feed)
|
||||||
|
@ -85,6 +89,8 @@ namespace NzbDrone.Core.Providers
|
||||||
|
|
||||||
private void ProcessItem(SyndicationItem feedItem)
|
private void ProcessItem(SyndicationItem feedItem)
|
||||||
{
|
{
|
||||||
|
Logger.Info("Processing RSS feed item " + feedItem.Title);
|
||||||
|
|
||||||
var parseResult = ParseFeed(feedItem);
|
var parseResult = ParseFeed(feedItem);
|
||||||
|
|
||||||
if (!_seriesProvider.IsMonitored(parseResult.SeriesId))
|
if (!_seriesProvider.IsMonitored(parseResult.SeriesId))
|
||||||
|
@ -106,8 +112,6 @@ namespace NzbDrone.Core.Providers
|
||||||
{
|
{
|
||||||
Logger.Debug("Episode {0} is not needed. skipping.", parseResult);
|
Logger.Debug("Episode {0} is not needed. skipping.", parseResult);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,35 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.ServiceModel.Syndication;
|
||||||
|
using System.Text;
|
||||||
|
using NzbDrone.Core.Providers.Core;
|
||||||
|
|
||||||
|
namespace NzbDrone.Core.Providers.Feed
|
||||||
|
{
|
||||||
|
class NzbsOrgFeedProvider : FeedProviderBase
|
||||||
|
{
|
||||||
|
public NzbsOrgFeedProvider(ISeriesProvider seriesProvider, ISeasonProvider seasonProvider, IEpisodeProvider episodeProvider, IConfigProvider configProvider)
|
||||||
|
: base(seriesProvider, seasonProvider, episodeProvider, configProvider)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override string[] URL
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return new[] { string.Format("http://nzbs.org/rss.php?type=1&i={0}&h={1}", _configProvider.NzbsOrgUId, _configProvider.NzbsOrgHash) };
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override string Name
|
||||||
|
{
|
||||||
|
get { return "Nzbs.Org"; }
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override string NzbDownloadUrl(SyndicationItem item)
|
||||||
|
{
|
||||||
|
return item.Id.Replace("action=view", "action=getnzb");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -12,15 +12,13 @@ namespace NzbDrone.Core.Providers
|
||||||
public class PostProcessingProvider : IPostProcessingProvider
|
public class PostProcessingProvider : IPostProcessingProvider
|
||||||
{
|
{
|
||||||
private readonly ISeriesProvider _seriesProvider;
|
private readonly ISeriesProvider _seriesProvider;
|
||||||
private readonly IConfigProvider _configProvider;
|
|
||||||
private readonly IMediaFileProvider _mediaFileProvider;
|
private readonly IMediaFileProvider _mediaFileProvider;
|
||||||
private readonly IRenameProvider _renameProvider;
|
private readonly IRenameProvider _renameProvider;
|
||||||
|
|
||||||
public PostProcessingProvider(ISeriesProvider seriesProvider, IConfigProvider configProvider,
|
public PostProcessingProvider(ISeriesProvider seriesProvider,
|
||||||
IMediaFileProvider mediaFileProvider, IRenameProvider renameProvider)
|
IMediaFileProvider mediaFileProvider, IRenameProvider renameProvider)
|
||||||
{
|
{
|
||||||
_seriesProvider = seriesProvider;
|
_seriesProvider = seriesProvider;
|
||||||
_configProvider = configProvider;
|
|
||||||
_mediaFileProvider = mediaFileProvider;
|
_mediaFileProvider = mediaFileProvider;
|
||||||
_renameProvider = renameProvider;
|
_renameProvider = renameProvider;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue