From cd96d546e8c7cb656501eaf5ab2cd0bb6898f920 Mon Sep 17 00:00:00 2001 From: "kay.one" Date: Sat, 2 Jul 2011 11:41:23 -0700 Subject: [PATCH] limited newzbin search to English only. --- NzbDrone.Core.Test/IndexerTests.cs | 27 ++++++++++++---------- NzbDrone.Core/Providers/Indexer/Newzbin.cs | 8 ++++--- 2 files changed, 20 insertions(+), 15 deletions(-) diff --git a/NzbDrone.Core.Test/IndexerTests.cs b/NzbDrone.Core.Test/IndexerTests.cs index 30aea11b5..69670f5b2 100644 --- a/NzbDrone.Core.Test/IndexerTests.cs +++ b/NzbDrone.Core.Test/IndexerTests.cs @@ -21,7 +21,7 @@ namespace NzbDrone.Core.Test // ReSharper disable InconsistentNaming public class IndexerTests : TestBase { - + [TestCase("nzbsorg.xml", 0)] [TestCase("nzbsrus.xml", 6)] [TestCase("newzbin.xml", 1)] @@ -60,16 +60,20 @@ namespace NzbDrone.Core.Test public void newzbin_rss_fetch() { var mocker = new AutoMoqer(); - - mocker.GetMock() - .Setup(h => h.DownloadStream(It.IsAny(), It.IsAny())) - .Returns(File.OpenRead(".\\Files\\Rss\\newzbin.xml")); - + mocker.Resolve(); var fakeSettings = Builder.CreateNew().Build(); mocker.GetMock() .Setup(c => c.GetSettings(It.IsAny())) .Returns(fakeSettings); + mocker.GetMock() + .SetupGet(c => c.NewzbinUsername) + .Returns("nzbdrone"); + + mocker.GetMock() + .SetupGet(c => c.NewzbinPassword) + .Returns("smartar39865"); + var newzbinProvider = mocker.Resolve(); var parseResults = newzbinProvider.FetchRss(); @@ -84,11 +88,10 @@ namespace NzbDrone.Core.Test parseResults.Should().OnlyContain(s => s.Indexer == newzbinProvider.Name); parseResults.Should().OnlyContain(s => !String.IsNullOrEmpty(s.NzbTitle)); - - ExceptionVerification.ExcpectedWarns(1); + ExceptionVerification.IgnoreWarns(); } - + [TestCase("Adventure.Inc.S03E19.DVDRip.XviD-OSiTV", 3, 19, QualityTypes.DVD)] public void custome_parser_partial_success(string title, int season, int episode, QualityTypes quality) { @@ -179,8 +182,8 @@ namespace NzbDrone.Core.Test result.Should().OnlyContain(r => r.EpisodeNumbers.Contains(23)); } - [TestCase("simpsons",21,23)] - [TestCase("Hawaii Five-0", 1, 5)] + [TestCase("simpsons", 21, 23)] + [TestCase("Hawaii Five-0 2010", 1, 5)] public void newzbin_search_returns_valid_results(string title, int season, int episode) { var mocker = new AutoMoqer(); @@ -198,7 +201,7 @@ namespace NzbDrone.Core.Test var result = mocker.Resolve().FetchEpisode(title, season, episode); result.Should().NotBeEmpty(); - result.Should().OnlyContain(r => r.CleanTitle == title); + result.Should().OnlyContain(r => r.CleanTitle == Parser.NormalizeTitle(title)); result.Should().OnlyContain(r => r.SeasonNumber == season); result.Should().OnlyContain(r => r.EpisodeNumbers.Contains(episode)); } diff --git a/NzbDrone.Core/Providers/Indexer/Newzbin.cs b/NzbDrone.Core/Providers/Indexer/Newzbin.cs index 53075271b..51f539894 100644 --- a/NzbDrone.Core/Providers/Indexer/Newzbin.cs +++ b/NzbDrone.Core/Providers/Indexer/Newzbin.cs @@ -10,19 +10,21 @@ namespace NzbDrone.Core.Providers.Indexer { public class Newzbin : IndexerBase { - [Inject] + [Inject] public Newzbin(HttpProvider httpProvider, ConfigProvider configProvider) : base(httpProvider, configProvider) { } + private const string UrlParams = "feed=rss&hauth=1&ps_rb_language=4096"; + protected override string[] Urls { get { return new[] { - "http://www.newzbin.com/browse/category/p/tv?feed=rss&hauth=1" + "http://www.newzbin.com/browse/category/p/tv?" + UrlParams }; } } @@ -38,7 +40,7 @@ namespace NzbDrone.Core.Providers.Indexer protected override IList GetSearchUrls(string seriesTitle, int seasonNumber, int episodeNumber) { - return new List { String.Format(@"http://www.newzbin.com/search/query/?q={0}+{1}x{2:00}&fpn=p&searchaction=Go&category=8&feed=rss&hauth=1", GetQueryTitle(seriesTitle), seasonNumber, episodeNumber) }; + return new List { String.Format(@"http://www.newzbin.com/search/query/?q={0}+{1}x{2:00}&fpn=p&searchaction=Go&category=8&{3}", GetQueryTitle(seriesTitle), seasonNumber, episodeNumber, UrlParams) }; } public override string Name