From 64bbf8a9b5630748b6ef41c02a2e676e45882595 Mon Sep 17 00:00:00 2001 From: Mark McDowall <markus.mcd5@gmail.com> Date: Wed, 20 Apr 2011 16:29:12 -0700 Subject: [PATCH 1/2] Newzbin override for getting proper and quality. --- NzbDrone.Core/Parser.cs | 2 +- .../Providers/Indexer/IndexerProviderBase.cs | 12 ++++++++++-- NzbDrone.Core/Providers/Indexer/NewzbinProvider.cs | 12 ++++++++++++ 3 files changed, 23 insertions(+), 3 deletions(-) diff --git a/NzbDrone.Core/Parser.cs b/NzbDrone.Core/Parser.cs index fda84e562..957847dec 100644 --- a/NzbDrone.Core/Parser.cs +++ b/NzbDrone.Core/Parser.cs @@ -206,7 +206,7 @@ namespace NzbDrone.Core return title.ToLower().Contains("proper"); } - private static QualityTypes ParseQuality(string name) + internal static QualityTypes ParseQuality(string name) { Logger.Trace("Trying to parse quality for {0}", name); diff --git a/NzbDrone.Core/Providers/Indexer/IndexerProviderBase.cs b/NzbDrone.Core/Providers/Indexer/IndexerProviderBase.cs index 93ef5b2b4..3633191e1 100644 --- a/NzbDrone.Core/Providers/Indexer/IndexerProviderBase.cs +++ b/NzbDrone.Core/Providers/Indexer/IndexerProviderBase.cs @@ -42,7 +42,6 @@ namespace NzbDrone.Core.Providers.Indexer /// </summary> public abstract string Name { get; } - /// <summary> /// Generates direct link to download an NZB /// </summary> @@ -50,7 +49,6 @@ namespace NzbDrone.Core.Providers.Indexer /// <returns>Download link URL</returns> protected abstract string NzbDownloadUrl(SyndicationItem item); - /// <summary> /// Parses the RSS feed item and. /// </summary> @@ -74,6 +72,16 @@ namespace NzbDrone.Core.Providers.Indexer return null; } + /// <summary> + /// This method can be overwritten to provide indexer specific info parsing + /// </summary> + /// <param name="item">RSS item that needs to be parsed</param> + /// <param name="currentResult">Result of the built in parse function.</param> + /// <returns></returns> + protected virtual EpisodeParseResult CustomParser(SyndicationItem item, EpisodeParseResult currentResult) + { + return currentResult; + } /// <summary> /// Fetches RSS feed and process each news item. diff --git a/NzbDrone.Core/Providers/Indexer/NewzbinProvider.cs b/NzbDrone.Core/Providers/Indexer/NewzbinProvider.cs index 87c71cdd6..00d26ed8f 100644 --- a/NzbDrone.Core/Providers/Indexer/NewzbinProvider.cs +++ b/NzbDrone.Core/Providers/Indexer/NewzbinProvider.cs @@ -1,4 +1,5 @@ using System.ServiceModel.Syndication; +using NzbDrone.Core.Model; using NzbDrone.Core.Providers.Core; using SubSonic.Repository; @@ -32,5 +33,16 @@ namespace NzbDrone.Core.Providers.Indexer { return item.Id; } + + protected override EpisodeParseResult CustomParser(SyndicationItem item, EpisodeParseResult currentResult) + { + var quality = Parser.ParseQuality(item.Summary.Text); + var proper = Parser.ParseProper(item.Summary.Text); + + currentResult.Quality = quality; + currentResult.Proper = proper; + + return currentResult; + } } } \ No newline at end of file From f3457a730c1c3cfd28af91390137fbda6d03d767 Mon Sep 17 00:00:00 2001 From: Mark McDowall <markus.mcd5@gmail.com> Date: Wed, 20 Apr 2011 16:30:50 -0700 Subject: [PATCH 2/2] CustomParser will run now. --- NzbDrone.Core/Providers/Indexer/IndexerProviderBase.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/NzbDrone.Core/Providers/Indexer/IndexerProviderBase.cs b/NzbDrone.Core/Providers/Indexer/IndexerProviderBase.cs index 3633191e1..2dbd31b71 100644 --- a/NzbDrone.Core/Providers/Indexer/IndexerProviderBase.cs +++ b/NzbDrone.Core/Providers/Indexer/IndexerProviderBase.cs @@ -59,6 +59,8 @@ namespace NzbDrone.Core.Providers.Indexer var episodeParseResult = Parser.ParseEpisodeInfo(item.Title.Text); if (episodeParseResult == null) return null; + episodeParseResult = CustomParser(item, episodeParseResult); + var seriesInfo = _seriesProvider.FindSeries(episodeParseResult.SeriesTitle); if (seriesInfo != null)