From 217f98c4a97387012def01b494d0462e9397f218 Mon Sep 17 00:00:00 2001 From: "kay.one" Date: Sat, 23 Apr 2011 13:53:13 -0700 Subject: [PATCH] Moved GetSabTitle from episodeprovider to sabprovider, removed seriesprovider dependency --- NzbDrone.Core.Test/EpisodeProviderTest.cs | 53 +++---------------- NzbDrone.Core.Test/SabControllerTest.cs | 35 ++++++++++++ NzbDrone.Core/Model/EpisodeParseResult.cs | 2 + NzbDrone.Core/Providers/EpisodeProvider.cs | 24 --------- .../Providers/Indexer/IndexerProviderBase.cs | 3 ++ NzbDrone.Core/Providers/SabProvider.cs | 26 +++++++++ 6 files changed, 74 insertions(+), 69 deletions(-) diff --git a/NzbDrone.Core.Test/EpisodeProviderTest.cs b/NzbDrone.Core.Test/EpisodeProviderTest.cs index b9da6abba..694d1dfa8 100644 --- a/NzbDrone.Core.Test/EpisodeProviderTest.cs +++ b/NzbDrone.Core.Test/EpisodeProviderTest.cs @@ -77,23 +77,23 @@ namespace NzbDrone.Core.Test Proper = isReportProper }; - var epFile = new EpisodeFile() - { - Proper = isFileProper, - Quality = fileQuality - }; + var epFile = new EpisodeFile + { + Proper = isFileProper, + Quality = fileQuality + }; var episodeInfo = new Episode { SeriesId = 12, SeasonNumber = 2, EpisodeNumber = 3, - Series = new Series() { QualityProfileId = 1 }, + Series = new Series { QualityProfileId = 1 }, EpisodeFile = epFile }; - var seriesQualityProfile = new QualityProfile() + var seriesQualityProfile = new QualityProfile { Allowed = new List { QualityTypes.TV, QualityTypes.DVD, QualityTypes.Bluray720, QualityTypes.Bluray1080 }, Cutoff = QualityTypes.Bluray720, @@ -180,44 +180,7 @@ namespace NzbDrone.Core.Test Assert.Count(2, episodes); } - [Test] - [Row(1, new[] { 2 }, "My Episode Title", QualityTypes.DVD, false, "My Series Name - 1x2 - My Episode Title DVD")] - [Row(1, new[] { 2 }, "My Episode Title", QualityTypes.DVD, true, "My Series Name - 1x2 - My Episode Title DVD [Proper]")] - [Row(1, new[] { 2 }, "", QualityTypes.DVD, true, "My Series Name - 1x2 - DVD [Proper]")] - [Row(1, new[] { 2, 4 }, "My Episode Title", QualityTypes.HDTV, false, "My Series Name - 1x2-1x4 - My Episode Title HDTV")] - [Row(1, new[] { 2, 4 }, "My Episode Title", QualityTypes.HDTV, true, "My Series Name - 1x2-1x4 - My Episode Title HDTV [Proper]")] - [Row(1, new[] { 2, 4 }, "", QualityTypes.HDTV, true, "My Series Name - 1x2-1x4 - HDTV [Proper]")] - public void sab_title(int seasons, int[] episodes, string title, QualityTypes quality, bool proper, string excpected) - { - //Arrange - var fakeSeries = new Series() - { - SeriesId = 12, - Path = "C:\\TV Shows\\My Series Name" - }; - - var mocker = new AutoMoqer(); - mocker.GetMock(MockBehavior.Strict) - .Setup(c => c.GetSeries(12)) - .Returns(fakeSeries); - - var parsResult = new EpisodeParseResult() - { - SeriesId = 12, - AirDate = DateTime.Now, - Episodes = episodes.ToList(), - Proper = proper, - Quality = quality, - SeasonNumber = seasons, - EpisodeTitle = title - }; - - //Act - var actual = mocker.Resolve().GetSabTitle(parsResult); - - //Assert - Assert.AreEqual(excpected, actual); - } + [Test] diff --git a/NzbDrone.Core.Test/SabControllerTest.cs b/NzbDrone.Core.Test/SabControllerTest.cs index b22337c89..06ada43fe 100644 --- a/NzbDrone.Core.Test/SabControllerTest.cs +++ b/NzbDrone.Core.Test/SabControllerTest.cs @@ -1,9 +1,14 @@ using System; using System.IO; +using System.Linq; using AutoMoq; using MbUnit.Framework; +using Moq; +using NzbDrone.Core.Model; using NzbDrone.Core.Providers; using NzbDrone.Core.Providers.Core; +using NzbDrone.Core.Repository; +using NzbDrone.Core.Repository.Quality; namespace NzbDrone.Core.Test { @@ -194,5 +199,35 @@ namespace NzbDrone.Core.Test //Assert Assert.AreEqual(false, result); } + + [Test] + [Row(1, new[] { 2 }, "My Episode Title", QualityTypes.DVD, false, "My Series Name - 1x2 - My Episode Title DVD")] + [Row(1, new[] { 2 }, "My Episode Title", QualityTypes.DVD, true, "My Series Name - 1x2 - My Episode Title DVD [Proper]")] + [Row(1, new[] { 2 }, "", QualityTypes.DVD, true, "My Series Name - 1x2 - DVD [Proper]")] + [Row(1, new[] { 2, 4 }, "My Episode Title", QualityTypes.HDTV, false, "My Series Name - 1x2-1x4 - My Episode Title HDTV")] + [Row(1, new[] { 2, 4 }, "My Episode Title", QualityTypes.HDTV, true, "My Series Name - 1x2-1x4 - My Episode Title HDTV [Proper]")] + [Row(1, new[] { 2, 4 }, "", QualityTypes.HDTV, true, "My Series Name - 1x2-1x4 - HDTV [Proper]")] + public void sab_title(int seasons, int[] episodes, string title, QualityTypes quality, bool proper, string excpected) + { + var mocker = new AutoMoqer(); + + var parsResult = new EpisodeParseResult() + { + SeriesId = 12, + AirDate = DateTime.Now, + Episodes = episodes.ToList(), + Proper = proper, + Quality = quality, + SeasonNumber = seasons, + EpisodeTitle = title, + FolderName = "My Series Name" + }; + + //Act + var actual = mocker.Resolve().GetSabTitle(parsResult); + + //Assert + Assert.AreEqual(excpected, actual); + } } } \ No newline at end of file diff --git a/NzbDrone.Core/Model/EpisodeParseResult.cs b/NzbDrone.Core/Model/EpisodeParseResult.cs index 0cbd32756..749bb8670 100644 --- a/NzbDrone.Core/Model/EpisodeParseResult.cs +++ b/NzbDrone.Core/Model/EpisodeParseResult.cs @@ -9,6 +9,8 @@ namespace NzbDrone.Core.Model internal string CleanTitle { get; set; } public int SeriesId { get; set; } + public string FolderName { get; set; } + internal int SeasonNumber { get; set; } internal List Episodes { get; set; } diff --git a/NzbDrone.Core/Providers/EpisodeProvider.cs b/NzbDrone.Core/Providers/EpisodeProvider.cs index de9073b02..b88da8539 100644 --- a/NzbDrone.Core/Providers/EpisodeProvider.cs +++ b/NzbDrone.Core/Providers/EpisodeProvider.cs @@ -66,30 +66,6 @@ namespace NzbDrone.Core.Providers } - public virtual String GetSabTitle(EpisodeParseResult parseResult) - { - //Show Name - 1x01-1x02 - Episode Name - //Show Name - 1x01 - Episode Name - var episodeString = new List(); - - foreach (var episode in parseResult.Episodes) - { - episodeString.Add(String.Format("{0}x{1}", parseResult.SeasonNumber, episode)); - } - - var epNumberString = String.Join("-", episodeString); - var series = _series.GetSeries(parseResult.SeriesId); - var folderName = new DirectoryInfo(series.Path).Name; - - var result = String.Format("{0} - {1} - {2} {3}", folderName, epNumberString, parseResult.EpisodeTitle, parseResult.Quality); - - if (parseResult.Proper) - { - result += " [Proper]"; - } - - return result; - } /// /// Comprehensive check on whether or not this episode is needed. diff --git a/NzbDrone.Core/Providers/Indexer/IndexerProviderBase.cs b/NzbDrone.Core/Providers/Indexer/IndexerProviderBase.cs index 797148584..f67c0a4cf 100644 --- a/NzbDrone.Core/Providers/Indexer/IndexerProviderBase.cs +++ b/NzbDrone.Core/Providers/Indexer/IndexerProviderBase.cs @@ -1,4 +1,5 @@ using System; +using System.IO; using System.ServiceModel.Syndication; using NLog; using NzbDrone.Core.Model; @@ -160,6 +161,8 @@ namespace NzbDrone.Core.Providers.Indexer if (seriesInfo != null) { episodeParseResult.SeriesId = seriesInfo.SeriesId; + episodeParseResult.FolderName = new DirectoryInfo(seriesInfo.Path).Name; ; + episodeParseResult.CleanTitle = seriesInfo.Title; return CustomParser(item, episodeParseResult); } diff --git a/NzbDrone.Core/Providers/SabProvider.cs b/NzbDrone.Core/Providers/SabProvider.cs index e5b926893..6eefaf9d0 100644 --- a/NzbDrone.Core/Providers/SabProvider.cs +++ b/NzbDrone.Core/Providers/SabProvider.cs @@ -1,8 +1,11 @@ using System; +using System.Collections.Generic; +using System.IO; using System.Linq; using System.Web; using System.Xml.Linq; using NLog; +using NzbDrone.Core.Model; using NzbDrone.Core.Providers.Core; namespace NzbDrone.Core.Providers @@ -109,5 +112,28 @@ namespace NzbDrone.Core.Providers string.Format(@"http://{0}/api?$Action&apikey={1}&ma_username={2}&ma_password={3}", sabnzbdInfo, apiKey, username, password).Replace("$Action", action); } + + public String GetSabTitle(EpisodeParseResult parseResult) + { + //Show Name - 1x01-1x02 - Episode Name + //Show Name - 1x01 - Episode Name + var episodeString = new List(); + + foreach (var episode in parseResult.Episodes) + { + episodeString.Add(String.Format("{0}x{1}", parseResult.SeasonNumber, episode)); + } + + var epNumberString = String.Join("-", episodeString); + + var result = String.Format("{0} - {1} - {2} {3}", parseResult.FolderName, epNumberString, parseResult.EpisodeTitle, parseResult.Quality); + + if (parseResult.Proper) + { + result += " [Proper]"; + } + + return result; + } } } \ No newline at end of file