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 @@ internal static bool ParseProper(string title)
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 @@ public IndexerProviderBase(SeriesProvider seriesProvider, SeasonProvider seasonP
///
public abstract string Name { get; }
-
///
/// Generates direct link to download an NZB
///
@@ -50,7 +49,6 @@ public IndexerProviderBase(SeriesProvider seriesProvider, SeasonProvider seasonP
/// Download link URL
protected abstract string NzbDownloadUrl(SyndicationItem item);
-
///
/// Parses the RSS feed item and.
///
@@ -74,6 +72,16 @@ protected EpisodeParseResult ParseFeed(SyndicationItem item)
return null;
}
+ ///
+ /// This method can be overwritten to provide indexer specific info parsing
+ ///
+ /// RSS item that needs to be parsed
+ /// Result of the built in parse function.
+ ///
+ protected virtual EpisodeParseResult CustomParser(SyndicationItem item, EpisodeParseResult currentResult)
+ {
+ return currentResult;
+ }
///
/// 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 @@ protected override string NzbDownloadUrl(SyndicationItem item)
{
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