mirror of
https://github.com/Sonarr/Sonarr.git
synced 2025-01-29 11:23:02 +02:00
Merge remote-tracking branch 'origin/quality'
This commit is contained in:
commit
de62dc6f56
@ -21,7 +21,7 @@ namespace NzbDrone.Core.Test
|
|||||||
parseResult.EpisodeNumbers = new List<int> { 3 };
|
parseResult.EpisodeNumbers = new List<int> { 3 };
|
||||||
parseResult.FullSeason = false;
|
parseResult.FullSeason = false;
|
||||||
parseResult.AirDate = null;
|
parseResult.AirDate = null;
|
||||||
parseResult.Quality = new Quality(QualityTypes.HDTV, false);
|
parseResult.Quality = new QualityModel(QualityTypes.HDTV, false);
|
||||||
|
|
||||||
|
|
||||||
parseResult.ToString().Should().Be("My Series - S12E03 HDTV");
|
parseResult.ToString().Should().Be("My Series - S12E03 HDTV");
|
||||||
@ -36,7 +36,7 @@ namespace NzbDrone.Core.Test
|
|||||||
parseResult.EpisodeNumbers = new List<int> { 3 };
|
parseResult.EpisodeNumbers = new List<int> { 3 };
|
||||||
parseResult.FullSeason = false;
|
parseResult.FullSeason = false;
|
||||||
parseResult.AirDate = null;
|
parseResult.AirDate = null;
|
||||||
parseResult.Quality = new Quality(QualityTypes.HDTV, true);
|
parseResult.Quality = new QualityModel(QualityTypes.HDTV, true);
|
||||||
|
|
||||||
|
|
||||||
parseResult.ToString().Should().Be("My Series - S12E03 HDTV [proper]");
|
parseResult.ToString().Should().Be("My Series - S12E03 HDTV [proper]");
|
||||||
@ -51,7 +51,7 @@ namespace NzbDrone.Core.Test
|
|||||||
parseResult.EpisodeNumbers = new List<int> { 3, 4, 5 };
|
parseResult.EpisodeNumbers = new List<int> { 3, 4, 5 };
|
||||||
parseResult.FullSeason = false;
|
parseResult.FullSeason = false;
|
||||||
parseResult.AirDate = null;
|
parseResult.AirDate = null;
|
||||||
parseResult.Quality = new Quality(QualityTypes.HDTV, false);
|
parseResult.Quality = new QualityModel(QualityTypes.HDTV, false);
|
||||||
|
|
||||||
|
|
||||||
parseResult.ToString().Should().Be("My Series - S12E03-04-05 HDTV");
|
parseResult.ToString().Should().Be("My Series - S12E03-04-05 HDTV");
|
||||||
@ -66,7 +66,7 @@ namespace NzbDrone.Core.Test
|
|||||||
parseResult.EpisodeNumbers = new List<int> { 3, 4, 5 };
|
parseResult.EpisodeNumbers = new List<int> { 3, 4, 5 };
|
||||||
parseResult.FullSeason = false;
|
parseResult.FullSeason = false;
|
||||||
parseResult.AirDate = null;
|
parseResult.AirDate = null;
|
||||||
parseResult.Quality = new Quality(QualityTypes.HDTV, true);
|
parseResult.Quality = new QualityModel(QualityTypes.HDTV, true);
|
||||||
|
|
||||||
|
|
||||||
parseResult.ToString().Should().Be("My Series - S12E03-04-05 HDTV [proper]");
|
parseResult.ToString().Should().Be("My Series - S12E03-04-05 HDTV [proper]");
|
||||||
@ -81,7 +81,7 @@ namespace NzbDrone.Core.Test
|
|||||||
parseResult.SeasonNumber = 12;
|
parseResult.SeasonNumber = 12;
|
||||||
parseResult.FullSeason = true;
|
parseResult.FullSeason = true;
|
||||||
parseResult.AirDate = null;
|
parseResult.AirDate = null;
|
||||||
parseResult.Quality = new Quality(QualityTypes.HDTV, false);
|
parseResult.Quality = new QualityModel(QualityTypes.HDTV, false);
|
||||||
|
|
||||||
|
|
||||||
parseResult.ToString().Should().Be("My Series - Season 12 HDTV");
|
parseResult.ToString().Should().Be("My Series - Season 12 HDTV");
|
||||||
@ -96,7 +96,7 @@ namespace NzbDrone.Core.Test
|
|||||||
parseResult.SeasonNumber = 12;
|
parseResult.SeasonNumber = 12;
|
||||||
parseResult.FullSeason = true;
|
parseResult.FullSeason = true;
|
||||||
parseResult.AirDate = null;
|
parseResult.AirDate = null;
|
||||||
parseResult.Quality = new Quality(QualityTypes.HDTV, true);
|
parseResult.Quality = new QualityModel(QualityTypes.HDTV, true);
|
||||||
|
|
||||||
|
|
||||||
parseResult.ToString().Should().Be("My Series - Season 12 HDTV [proper]");
|
parseResult.ToString().Should().Be("My Series - Season 12 HDTV [proper]");
|
||||||
@ -110,7 +110,7 @@ namespace NzbDrone.Core.Test
|
|||||||
parseResult.SeasonNumber = 12;
|
parseResult.SeasonNumber = 12;
|
||||||
parseResult.FullSeason = true;
|
parseResult.FullSeason = true;
|
||||||
parseResult.AirDate = new DateTime(2010, 12, 30);
|
parseResult.AirDate = new DateTime(2010, 12, 30);
|
||||||
parseResult.Quality = new Quality(QualityTypes.HDTV, false);
|
parseResult.Quality = new QualityModel(QualityTypes.HDTV, false);
|
||||||
|
|
||||||
|
|
||||||
parseResult.ToString().Should().Be("My Series - 2010-12-30 HDTV");
|
parseResult.ToString().Should().Be("My Series - 2010-12-30 HDTV");
|
||||||
@ -124,7 +124,7 @@ namespace NzbDrone.Core.Test
|
|||||||
parseResult.SeasonNumber = 12;
|
parseResult.SeasonNumber = 12;
|
||||||
parseResult.FullSeason = true;
|
parseResult.FullSeason = true;
|
||||||
parseResult.AirDate = new DateTime(2010, 12, 30);
|
parseResult.AirDate = new DateTime(2010, 12, 30);
|
||||||
parseResult.Quality = new Quality(QualityTypes.HDTV, true);
|
parseResult.Quality = new QualityModel(QualityTypes.HDTV, true);
|
||||||
|
|
||||||
|
|
||||||
parseResult.ToString().Should().Be("My Series - 2010-12-30 HDTV [proper]");
|
parseResult.ToString().Should().Be("My Series - 2010-12-30 HDTV [proper]");
|
||||||
|
@ -138,10 +138,14 @@ namespace NzbDrone.Core.Test
|
|||||||
ExceptionVerification.IgnoreWarns();
|
ExceptionVerification.IgnoreWarns();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
[TestCase("Adventure.Inc.S03E19.DVDRip.XviD-OSiTV", 3, 19, QualityTypes.DVD)]
|
public void custome_parser_partial_success()
|
||||||
public void custome_parser_partial_success(string title, int season, int episode, QualityTypes quality)
|
|
||||||
{
|
{
|
||||||
|
const string title = "Adventure.Inc.S03E19.DVDRip.XviD-OSiTV";
|
||||||
|
const int season = 3;
|
||||||
|
const int episode = 19;
|
||||||
|
var quality = QualityTypes.DVD;
|
||||||
|
|
||||||
const string summary = "My fake summary";
|
const string summary = "My fake summary";
|
||||||
|
|
||||||
var fakeSettings = Builder<IndexerDefinition>.CreateNew().Build();
|
var fakeSettings = Builder<IndexerDefinition>.CreateNew().Build();
|
||||||
@ -160,10 +164,9 @@ namespace NzbDrone.Core.Test
|
|||||||
Assert.AreEqual(LanguageType.Finnish, result.Language);
|
Assert.AreEqual(LanguageType.Finnish, result.Language);
|
||||||
Assert.AreEqual(season, result.SeasonNumber);
|
Assert.AreEqual(season, result.SeasonNumber);
|
||||||
Assert.AreEqual(episode, result.EpisodeNumbers[0]);
|
Assert.AreEqual(episode, result.EpisodeNumbers[0]);
|
||||||
Assert.AreEqual(quality, result.Quality.QualityType);
|
Assert.AreEqual(quality, result.Quality.Quality);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
[TestCase("Adventure.Inc.DVDRip.XviD-OSiTV")]
|
[TestCase("Adventure.Inc.DVDRip.XviD-OSiTV")]
|
||||||
public void custome_parser_full_parse(string title)
|
public void custome_parser_full_parse(string title)
|
||||||
{
|
{
|
||||||
|
@ -137,12 +137,14 @@
|
|||||||
</Reference>
|
</Reference>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<Compile Include="QualityTypesTest.cs" />
|
||||||
<Compile Include="EpisodeParseResultTest.cs" />
|
<Compile Include="EpisodeParseResultTest.cs" />
|
||||||
<Compile Include="Integeration\ServiceIntegerationFixture.cs" />
|
<Compile Include="Integeration\ServiceIntegerationFixture.cs" />
|
||||||
<Compile Include="JobTests\BacklogSearchJobTest.cs" />
|
<Compile Include="JobTests\BacklogSearchJobTest.cs" />
|
||||||
<Compile Include="JobTests\BannerDownloadJobTest.cs" />
|
<Compile Include="JobTests\BannerDownloadJobTest.cs" />
|
||||||
<Compile Include="JobTests\RssSyncJobTest.cs" />
|
<Compile Include="JobTests\RssSyncJobTest.cs" />
|
||||||
<Compile Include="JobTests\RecentBacklogSearchJobTest.cs" />
|
<Compile Include="JobTests\RecentBacklogSearchJobTest.cs" />
|
||||||
|
<Compile Include="ParserFixture\QualityParserTests.cs" />
|
||||||
<Compile Include="ProviderTests\ConfigProviderTests\ConfigCachingFixture.cs" />
|
<Compile Include="ProviderTests\ConfigProviderTests\ConfigCachingFixture.cs" />
|
||||||
<Compile Include="ProviderTests\BannerProviderTest.cs" />
|
<Compile Include="ProviderTests\BannerProviderTest.cs" />
|
||||||
<Compile Include="ProviderTests\DecisionEngineTests\AllowedReleaseGroupSpecificationFixture.cs" />
|
<Compile Include="ProviderTests\DecisionEngineTests\AllowedReleaseGroupSpecificationFixture.cs" />
|
||||||
@ -226,7 +228,7 @@
|
|||||||
<Compile Include="ProviderTests\ConfigProviderTests\ConfigProviderFixture.cs" />
|
<Compile Include="ProviderTests\ConfigProviderTests\ConfigProviderFixture.cs" />
|
||||||
<Compile Include="ProviderTests\EpisodeProviderTest.cs" />
|
<Compile Include="ProviderTests\EpisodeProviderTest.cs" />
|
||||||
<Compile Include="Framework\TestDbHelper.cs" />
|
<Compile Include="Framework\TestDbHelper.cs" />
|
||||||
<Compile Include="ParserTest.cs" />
|
<Compile Include="ParserFixture\ParserTest.cs" />
|
||||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
<Compile Include="QualityProfileTest.cs" />
|
<Compile Include="QualityProfileTest.cs" />
|
||||||
<Compile Include="ProviderTests\DownloadClientTests\SabProviderTests\SabProviderFixture.cs" />
|
<Compile Include="ProviderTests\DownloadClientTests\SabProviderTests\SabProviderFixture.cs" />
|
||||||
|
@ -23,5 +23,8 @@
|
|||||||
<NamedTestSelector>
|
<NamedTestSelector>
|
||||||
<TestName>NzbDrone.Core.Test.Integeration.ServiceIntegerationFixture.should_be_able_to_submit_exceptions</TestName>
|
<TestName>NzbDrone.Core.Test.Integeration.ServiceIntegerationFixture.should_be_able_to_submit_exceptions</TestName>
|
||||||
</NamedTestSelector>
|
</NamedTestSelector>
|
||||||
|
<NamedTestSelector>
|
||||||
|
<TestName>NzbDrone.Core.Test.ProviderTests.DiskScanProviderTests.ImportFileFixture.import_unparsable_file_should_skip</TestName>
|
||||||
|
</NamedTestSelector>
|
||||||
</IgnoredTests>
|
</IgnoredTests>
|
||||||
</ProjectConfiguration>
|
</ProjectConfiguration>
|
@ -11,7 +11,7 @@ using NzbDrone.Core.Repository.Quality;
|
|||||||
using NzbDrone.Core.Test.Framework;
|
using NzbDrone.Core.Test.Framework;
|
||||||
using NzbDrone.Test.Common;
|
using NzbDrone.Test.Common;
|
||||||
|
|
||||||
namespace NzbDrone.Core.Test
|
namespace NzbDrone.Core.Test.ParserFixture
|
||||||
{
|
{
|
||||||
[TestFixture]
|
[TestFixture]
|
||||||
// ReSharper disable InconsistentNaming
|
// ReSharper disable InconsistentNaming
|
||||||
@ -126,73 +126,6 @@ namespace NzbDrone.Core.Test
|
|||||||
ExceptionVerification.IgnoreWarns();
|
ExceptionVerification.IgnoreWarns();
|
||||||
}
|
}
|
||||||
|
|
||||||
[TestCase("WEEDS.S03E01-06.DUAL.BDRip.XviD.AC3.-HELLYWOOD", QualityTypes.DVD, false)]
|
|
||||||
[TestCase("WEEDS.S03E01-06.DUAL.BDRip.X-viD.AC3.-HELLYWOOD", QualityTypes.DVD, false)]
|
|
||||||
[TestCase("WEEDS.S03E01-06.DUAL.BDRip.AC3.-HELLYWOOD", QualityTypes.DVD, false)]
|
|
||||||
[TestCase("Two.and.a.Half.Men.S08E05.720p.HDTV.X264-DIMENSION", QualityTypes.HDTV, false)]
|
|
||||||
[TestCase("this has no extention or periods HDTV", QualityTypes.SDTV, false)]
|
|
||||||
[TestCase("Chuck.S04E05.HDTV.XviD-LOL", QualityTypes.SDTV, false)]
|
|
||||||
[TestCase("The.Girls.Next.Door.S03E06.DVDRip.XviD-WiDE", QualityTypes.DVD, false)]
|
|
||||||
[TestCase("The.Girls.Next.Door.S03E06.DVD.Rip.XviD-WiDE", QualityTypes.DVD, false)]
|
|
||||||
[TestCase("The.Girls.Next.Door.S03E06.HDTV-WiDE", QualityTypes.SDTV, false)]
|
|
||||||
[TestCase("Degrassi.S10E27.WS.DSR.XviD-2HD", QualityTypes.SDTV, false)]
|
|
||||||
[TestCase("Sonny.With.a.Chance.S02E15.720p.WEB-DL.DD5.1.H.264-SURFER", QualityTypes.WEBDL, false)]
|
|
||||||
[TestCase("Sonny.With.a.Chance.S02E15.720p", QualityTypes.HDTV, false)]
|
|
||||||
[TestCase("Sonny.With.a.Chance.S02E15.mkv", QualityTypes.HDTV, false)]
|
|
||||||
[TestCase("Sonny.With.a.Chance.S02E15.avi", QualityTypes.SDTV, false)]
|
|
||||||
[TestCase("Sonny.With.a.Chance.S02E15.xvid", QualityTypes.SDTV, false)]
|
|
||||||
[TestCase("Sonny.With.a.Chance.S02E15.divx", QualityTypes.SDTV, false)]
|
|
||||||
[TestCase("Sonny.With.a.Chance.S02E15", QualityTypes.Unknown, false)]
|
|
||||||
[TestCase("Chuck - S01E04 - So Old - Playdate - 720p TV.mkv", QualityTypes.HDTV, false)]
|
|
||||||
[TestCase("Chuck - S22E03 - MoneyBART - HD TV.mkv", QualityTypes.HDTV, false)]
|
|
||||||
[TestCase("Chuck - S01E03 - Come Fly With Me - 720p BluRay.mkv", QualityTypes.Bluray720p, false)]
|
|
||||||
[TestCase("Chuck - S01E03 - Come Fly With Me - 1080p BluRay.mkv", QualityTypes.Bluray1080p, false)]
|
|
||||||
[TestCase("Chuck - S11E06 - D-Yikes! - 720p WEB-DL.mkv", QualityTypes.WEBDL, false)]
|
|
||||||
[TestCase("WEEDS.S03E01-06.DUAL.BDRip.XviD.AC3.-HELLYWOOD.avi", QualityTypes.DVD, false)]
|
|
||||||
[TestCase("WEEDS.S03E01-06.DUAL.BDRip.XviD.AC3.-HELLYWOOD.avi", QualityTypes.DVD, false)]
|
|
||||||
[TestCase("Law & Order: Special Victims Unit - 11x11 - Quickie", QualityTypes.Unknown, false)]
|
|
||||||
[TestCase("(<a href=\"http://www.newzbin.com/browse/post/6076286/nzb/\">NZB</a>)", QualityTypes.Unknown, false)]
|
|
||||||
[TestCase("S07E23 - [HDTV].mkv ", QualityTypes.HDTV, false)]
|
|
||||||
[TestCase("S07E23 - [WEBDL].mkv ", QualityTypes.WEBDL, false)]
|
|
||||||
[TestCase("S07E23.mkv ", QualityTypes.HDTV, false)]
|
|
||||||
[TestCase("S07E23 .avi ", QualityTypes.SDTV, false)]
|
|
||||||
[TestCase("WEEDS.S03E01-06.DUAL.XviD.Bluray.AC3.-HELLYWOOD.avi", QualityTypes.DVD, false)]
|
|
||||||
[TestCase("WEEDS.S03E01-06.DUAL.Bluray.AC3.-HELLYWOOD.avi", QualityTypes.Bluray720p, false)]
|
|
||||||
[TestCase("The Voice S01E11 The Finals 1080i HDTV DD5.1 MPEG2-TrollHD", QualityTypes.Unknown, false)]
|
|
||||||
[TestCase("Nikita S02E01 HDTV XviD 2HD", QualityTypes.SDTV, false)]
|
|
||||||
[TestCase("Gossip Girl S05E11 PROPER HDTV XviD 2HD", QualityTypes.SDTV, true)]
|
|
||||||
[TestCase("The Jonathan Ross Show S02E08 HDTV x264 FTP", QualityTypes.SDTV, false)]
|
|
||||||
[TestCase("White.Van.Man.2011.S02E01.WS.PDTV.x264-TLA", QualityTypes.SDTV, false)]
|
|
||||||
[TestCase("White.Van.Man.2011.S02E01.WS.PDTV.x264-REPACK-TLA", QualityTypes.SDTV, true)]
|
|
||||||
[TestCase("WEEDS.S03E01-06.DUAL.XviD.Bluray.AC3-REPACK.-HELLYWOOD.avi", QualityTypes.DVD, true)]
|
|
||||||
[TestCase("Pawn Stars S04E87 REPACK 720p HDTV x264 aAF", QualityTypes.HDTV, true)]
|
|
||||||
[TestCase("The Real Housewives of Vancouver S01E04 DSR x264 2HD", QualityTypes.SDTV, false)]
|
|
||||||
[TestCase("Vanguard S01E04 Mexicos Death Train DSR x264 MiNDTHEGAP", QualityTypes.SDTV, false)]
|
|
||||||
[TestCase("Vanguard S01E04 Mexicos Death Train 720 WEB DL", QualityTypes.WEBDL, false)]
|
|
||||||
[TestCase("Hawaii Five 0 S02E21 720p WEB DL DD5 1 H 264", QualityTypes.WEBDL, false)]
|
|
||||||
[TestCase("Castle S04E22 720p WEB DL DD5 1 H 264 NFHD", QualityTypes.WEBDL, false)]
|
|
||||||
[TestCase("Fringe S04E22 720p WEB-DL DD5.1 H264-EbP.mkv", QualityTypes.WEBDL, false)]
|
|
||||||
[TestCase("Fringe.S04E22.720p.WEB.DL.DD5.1.H264-EbP", QualityTypes.WEBDL, false)]
|
|
||||||
public void quality_parse(string postTitle, object quality, bool proper)
|
|
||||||
{
|
|
||||||
var result = Parser.ParseQuality(postTitle);
|
|
||||||
result.QualityType.Should().Be(quality);
|
|
||||||
result.Proper.Should().Be(proper);
|
|
||||||
}
|
|
||||||
|
|
||||||
[Test]
|
|
||||||
public void parsing_our_own_quality_enum()
|
|
||||||
{
|
|
||||||
var qualityEnums = Enum.GetValues(typeof(QualityTypes));
|
|
||||||
|
|
||||||
foreach (var qualityEnum in qualityEnums)
|
|
||||||
{
|
|
||||||
var fileName = String.Format("My series S01E01 [{0}]", qualityEnum);
|
|
||||||
var result = Parser.ParseQuality(fileName);
|
|
||||||
result.QualityType.Should().Be(qualityEnum);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//[Timeout(1000)]
|
//[Timeout(1000)]
|
||||||
[TestCase("WEEDS.S03E01-06.DUAL.BDRip.XviD.AC3.-HELLYWOOD", "WEEDS", 3, new[] { 1, 2, 3, 4, 5, 6 })]
|
[TestCase("WEEDS.S03E01-06.DUAL.BDRip.XviD.AC3.-HELLYWOOD", "WEEDS", 3, new[] { 1, 2, 3, 4, 5, 6 })]
|
||||||
[TestCase("Two.and.a.Half.Men.103.104.720p.HDTV.X264-DIMENSION", "Two.and.a.Half.Men", 1, new[] { 3, 4 })]
|
[TestCase("Two.and.a.Half.Men.103.104.720p.HDTV.X264-DIMENSION", "Two.and.a.Half.Men", 1, new[] { 3, 4 })]
|
101
NzbDrone.Core.Test/ParserFixture/QualityParserTests.cs
Normal file
101
NzbDrone.Core.Test/ParserFixture/QualityParserTests.cs
Normal file
@ -0,0 +1,101 @@
|
|||||||
|
// ReSharper disable RedundantUsingDirective
|
||||||
|
using System;
|
||||||
|
using System.Linq;
|
||||||
|
using FluentAssertions;
|
||||||
|
using Moq;
|
||||||
|
using NUnit.Framework;
|
||||||
|
using NzbDrone.Common;
|
||||||
|
using NzbDrone.Common.Contract;
|
||||||
|
using NzbDrone.Core.Model;
|
||||||
|
using NzbDrone.Core.Repository.Quality;
|
||||||
|
using NzbDrone.Core.Test.Framework;
|
||||||
|
using NzbDrone.Test.Common;
|
||||||
|
|
||||||
|
namespace NzbDrone.Core.Test.ParserFixture
|
||||||
|
{
|
||||||
|
[TestFixture]
|
||||||
|
// ReSharper disable InconsistentNaming
|
||||||
|
public class QualityParserTests : CoreTest
|
||||||
|
{
|
||||||
|
public static object[] QualityParserCases =
|
||||||
|
{
|
||||||
|
new object[] { "WEEDS.S03E01-06.DUAL.BDRip.XviD.AC3.-HELLYWOOD", QualityTypes.DVD, false },
|
||||||
|
new object[] { "WEEDS.S03E01-06.DUAL.BDRip.X-viD.AC3.-HELLYWOOD", QualityTypes.DVD, false },
|
||||||
|
new object[] { "WEEDS.S03E01-06.DUAL.BDRip.AC3.-HELLYWOOD", QualityTypes.DVD, false },
|
||||||
|
new object[] { "Two.and.a.Half.Men.S08E05.720p.HDTV.X264-DIMENSION", QualityTypes.HDTV, false },
|
||||||
|
new object[] { "this has no extention or periods HDTV", QualityTypes.SDTV, false },
|
||||||
|
new object[] { "Chuck.S04E05.HDTV.XviD-LOL", QualityTypes.SDTV, false },
|
||||||
|
new object[] { "The.Girls.Next.Door.S03E06.DVDRip.XviD-WiDE", QualityTypes.DVD, false },
|
||||||
|
new object[] { "The.Girls.Next.Door.S03E06.DVD.Rip.XviD-WiDE", QualityTypes.DVD, false },
|
||||||
|
new object[] { "The.Girls.Next.Door.S03E06.HDTV-WiDE", QualityTypes.SDTV, false },
|
||||||
|
new object[] { "Degrassi.S10E27.WS.DSR.XviD-2HD", QualityTypes.SDTV, false },
|
||||||
|
new object[] { "Sonny.With.a.Chance.S02E15.720p.WEB-DL.DD5.1.H.264-SURFER", QualityTypes.WEBDL720p, false },
|
||||||
|
new object[] { "Sonny.With.a.Chance.S02E15.720p", QualityTypes.HDTV, false },
|
||||||
|
new object[] { "Sonny.With.a.Chance.S02E15.mkv", QualityTypes.HDTV, false },
|
||||||
|
new object[] { "Sonny.With.a.Chance.S02E15.avi", QualityTypes.SDTV, false },
|
||||||
|
new object[] { "Sonny.With.a.Chance.S02E15.xvid", QualityTypes.SDTV, false },
|
||||||
|
new object[] { "Sonny.With.a.Chance.S02E15.divx", QualityTypes.SDTV, false },
|
||||||
|
new object[] { "Sonny.With.a.Chance.S02E15", QualityTypes.Unknown, false },
|
||||||
|
new object[] { "Chuck - S01E04 - So Old - Playdate - 720p TV.mkv", QualityTypes.HDTV, false },
|
||||||
|
new object[] { "Chuck - S22E03 - MoneyBART - HD TV.mkv", QualityTypes.HDTV, false },
|
||||||
|
new object[] { "Chuck - S01E03 - Come Fly With Me - 720p BluRay.mkv", QualityTypes.Bluray720p, false },
|
||||||
|
new object[] { "Chuck - S01E03 - Come Fly With Me - 1080p BluRay.mkv", QualityTypes.Bluray1080p, false },
|
||||||
|
new object[] { "Chuck - S11E06 - D-Yikes! - 720p WEB-DL.mkv", QualityTypes.WEBDL720p, false },
|
||||||
|
new object[] { "WEEDS.S03E01-06.DUAL.BDRip.XviD.AC3.-HELLYWOOD.avi", QualityTypes.DVD, false },
|
||||||
|
new object[] { "WEEDS.S03E01-06.DUAL.BDRip.XviD.AC3.-HELLYWOOD.avi", QualityTypes.DVD, false },
|
||||||
|
new object[] { "Law & Order: Special Victims Unit - 11x11 - Quickie", QualityTypes.Unknown, false },
|
||||||
|
new object[] { "(<a href=\"http://www.newzbin.com/browse/post/6076286/nzb/\">NZB</a>)", QualityTypes.Unknown, false },
|
||||||
|
new object[] { "S07E23 - [HDTV].mkv ", QualityTypes.HDTV, false },
|
||||||
|
new object[] { "S07E23 - [WEBDL].mkv ", QualityTypes.WEBDL720p, false },
|
||||||
|
new object[] { "S07E23.mkv ", QualityTypes.HDTV, false },
|
||||||
|
new object[] { "S07E23 .avi ", QualityTypes.SDTV, false },
|
||||||
|
new object[] { "WEEDS.S03E01-06.DUAL.XviD.Bluray.AC3.-HELLYWOOD.avi", QualityTypes.DVD, false },
|
||||||
|
new object[] { "WEEDS.S03E01-06.DUAL.Bluray.AC3.-HELLYWOOD.avi", QualityTypes.Bluray720p, false },
|
||||||
|
new object[] { "The Voice S01E11 The Finals 1080i HDTV DD5.1 MPEG2-TrollHD", QualityTypes.Unknown, false },
|
||||||
|
new object[] { "Nikita S02E01 HDTV XviD 2HD", QualityTypes.SDTV, false },
|
||||||
|
new object[] { "Gossip Girl S05E11 PROPER HDTV XviD 2HD", QualityTypes.SDTV, true },
|
||||||
|
new object[] { "The Jonathan Ross Show S02E08 HDTV x264 FTP", QualityTypes.SDTV, false },
|
||||||
|
new object[] { "White.Van.Man.2011.S02E01.WS.PDTV.x264-TLA", QualityTypes.SDTV, false },
|
||||||
|
new object[] { "White.Van.Man.2011.S02E01.WS.PDTV.x264-REPACK-TLA", QualityTypes.SDTV, true },
|
||||||
|
new object[] { "WEEDS.S03E01-06.DUAL.XviD.Bluray.AC3-REPACK.-HELLYWOOD.avi", QualityTypes.DVD, true },
|
||||||
|
new object[] { "Pawn Stars S04E87 REPACK 720p HDTV x264 aAF", QualityTypes.HDTV, true },
|
||||||
|
new object[] { "The Real Housewives of Vancouver S01E04 DSR x264 2HD", QualityTypes.SDTV, false },
|
||||||
|
new object[] { "Vanguard S01E04 Mexicos Death Train DSR x264 MiNDTHEGAP", QualityTypes.SDTV, false },
|
||||||
|
new object[] { "Vanguard S01E04 Mexicos Death Train 720 WEB DL", QualityTypes.WEBDL720p, false },
|
||||||
|
new object[] { "Hawaii Five 0 S02E21 720p WEB DL DD5 1 H 264", QualityTypes.WEBDL720p, false },
|
||||||
|
new object[] { "Castle S04E22 720p WEB DL DD5 1 H 264 NFHD", QualityTypes.WEBDL720p, false },
|
||||||
|
new object[] { "Fringe S04E22 720p WEB-DL DD5.1 H264-EbP.mkv", QualityTypes.WEBDL720p, false },
|
||||||
|
new object[] { "CSI NY S09E03 1080p WEB DL DD5 1 H264 NFHD", QualityTypes.WEBDL1080p, false },
|
||||||
|
new object[] { "Two and a Half Men S10E03 1080p WEB DL DD5 1 H 264 NFHD", QualityTypes.WEBDL1080p, false },
|
||||||
|
new object[] { "Criminal.Minds.S08E01.1080p.WEB-DL.DD5.1.H264-NFHD", QualityTypes.WEBDL1080p, false },
|
||||||
|
new object[] { "Its.Always.Sunny.in.Philadelphia.S08E01.1080p.WEB-DL.proper.AAC2.0.H.264", QualityTypes.WEBDL1080p, true },
|
||||||
|
new object[] { "Two and a Half Men S10E03 1080p WEB DL DD5 1 H 264 REPACK NFHD", QualityTypes.WEBDL1080p, true },
|
||||||
|
};
|
||||||
|
|
||||||
|
public static object[] SelfQualityParserCases =
|
||||||
|
{
|
||||||
|
new object[] { QualityTypes.SDTV },
|
||||||
|
new object[] { QualityTypes.DVD },
|
||||||
|
new object[] { QualityTypes.HDTV },
|
||||||
|
new object[] { QualityTypes.WEBDL720p },
|
||||||
|
new object[] { QualityTypes.Bluray720p },
|
||||||
|
new object[] { QualityTypes.Bluray1080p }
|
||||||
|
};
|
||||||
|
|
||||||
|
[Test, TestCaseSource("QualityParserCases")]
|
||||||
|
public void quality_parse(string postTitle, QualityTypes quality, bool proper)
|
||||||
|
{
|
||||||
|
var result = Parser.ParseQuality(postTitle);
|
||||||
|
result.Quality.Should().Be(quality);
|
||||||
|
result.Proper.Should().Be(proper);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test, TestCaseSource("SelfQualityParserCases")]
|
||||||
|
public void parsing_our_own_quality_enum(QualityTypes quality)
|
||||||
|
{
|
||||||
|
var fileName = String.Format("My series S01E01 [{0}]", quality);
|
||||||
|
var result = Parser.ParseQuality(fileName);
|
||||||
|
result.Quality.Should().Be(quality);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -33,7 +33,7 @@ namespace NzbDrone.Core.Test.ProviderTests.DecisionEngineTests
|
|||||||
{
|
{
|
||||||
SeriesTitle = "Title",
|
SeriesTitle = "Title",
|
||||||
Language = LanguageType.English,
|
Language = LanguageType.English,
|
||||||
Quality = new Quality(QualityTypes.SDTV, true),
|
Quality = new QualityModel(QualityTypes.SDTV, true),
|
||||||
EpisodeNumbers = new List<int> { 3, 4 },
|
EpisodeNumbers = new List<int> { 3, 4 },
|
||||||
SeasonNumber = 12,
|
SeasonNumber = 12,
|
||||||
AirDate = DateTime.Now.AddDays(-12).Date
|
AirDate = DateTime.Now.AddDays(-12).Date
|
||||||
@ -43,7 +43,7 @@ namespace NzbDrone.Core.Test.ProviderTests.DecisionEngineTests
|
|||||||
{
|
{
|
||||||
SeriesTitle = "Title",
|
SeriesTitle = "Title",
|
||||||
Language = LanguageType.English,
|
Language = LanguageType.English,
|
||||||
Quality = new Quality(QualityTypes.SDTV, true),
|
Quality = new QualityModel(QualityTypes.SDTV, true),
|
||||||
EpisodeNumbers = new List<int> { 3 },
|
EpisodeNumbers = new List<int> { 3 },
|
||||||
SeasonNumber = 12,
|
SeasonNumber = 12,
|
||||||
AirDate = DateTime.Now.AddDays(-12).Date
|
AirDate = DateTime.Now.AddDays(-12).Date
|
||||||
|
@ -30,7 +30,7 @@ namespace NzbDrone.Core.Test.ProviderTests.DecisionEngineTests
|
|||||||
{
|
{
|
||||||
SeriesTitle = "Title",
|
SeriesTitle = "Title",
|
||||||
Language = LanguageType.English,
|
Language = LanguageType.English,
|
||||||
Quality = new Quality(QualityTypes.SDTV, true),
|
Quality = new QualityModel(QualityTypes.SDTV, true),
|
||||||
EpisodeNumbers = new List<int> { 3 },
|
EpisodeNumbers = new List<int> { 3 },
|
||||||
SeasonNumber = 12,
|
SeasonNumber = 12,
|
||||||
AirDate = DateTime.Now.AddDays(-12).Date,
|
AirDate = DateTime.Now.AddDays(-12).Date,
|
||||||
|
@ -18,10 +18,21 @@ namespace NzbDrone.Core.Test.ProviderTests.DecisionEngineTests
|
|||||||
public class QualityAllowedByProfileSpecificationFixtrue : CoreTest
|
public class QualityAllowedByProfileSpecificationFixtrue : CoreTest
|
||||||
{
|
{
|
||||||
private QualityAllowedByProfileSpecification _qualityAllowedByProfile;
|
private QualityAllowedByProfileSpecification _qualityAllowedByProfile;
|
||||||
|
|
||||||
|
|
||||||
private EpisodeParseResult parseResult;
|
private EpisodeParseResult parseResult;
|
||||||
|
|
||||||
|
public static object[] AllowedTestCases =
|
||||||
|
{
|
||||||
|
new object[] { QualityTypes.DVD },
|
||||||
|
new object[] { QualityTypes.HDTV },
|
||||||
|
new object[] { QualityTypes.Bluray1080p }
|
||||||
|
};
|
||||||
|
|
||||||
|
public static object[] DeniedTestCases =
|
||||||
|
{
|
||||||
|
new object[] { QualityTypes.SDTV },
|
||||||
|
new object[] { QualityTypes.WEBDL720p },
|
||||||
|
new object[] { QualityTypes.Bluray720p }
|
||||||
|
};
|
||||||
|
|
||||||
[SetUp]
|
[SetUp]
|
||||||
public void Setup()
|
public void Setup()
|
||||||
@ -35,35 +46,28 @@ namespace NzbDrone.Core.Test.ProviderTests.DecisionEngineTests
|
|||||||
parseResult = new EpisodeParseResult
|
parseResult = new EpisodeParseResult
|
||||||
{
|
{
|
||||||
Series = fakeSeries,
|
Series = fakeSeries,
|
||||||
Quality = new Quality(QualityTypes.DVD, true),
|
Quality = new QualityModel(QualityTypes.DVD, true),
|
||||||
EpisodeNumbers = new List<int> { 3 },
|
EpisodeNumbers = new List<int> { 3 },
|
||||||
SeasonNumber = 12,
|
SeasonNumber = 12,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Test, TestCaseSource("AllowedTestCases")]
|
||||||
|
|
||||||
[TestCase(QualityTypes.DVD)]
|
|
||||||
[TestCase(QualityTypes.HDTV)]
|
|
||||||
[TestCase(QualityTypes.Bluray1080p)]
|
|
||||||
public void should_allow_if_quality_is_defined_in_profile(QualityTypes qualityType)
|
public void should_allow_if_quality_is_defined_in_profile(QualityTypes qualityType)
|
||||||
{
|
{
|
||||||
parseResult.Quality.QualityType = qualityType;
|
parseResult.Quality.Quality = qualityType;
|
||||||
parseResult.Series.QualityProfile.Allowed = new List<QualityTypes> { QualityTypes.DVD, QualityTypes.HDTV, QualityTypes.Bluray1080p };
|
parseResult.Series.QualityProfile.Allowed = new List<QualityTypes> { QualityTypes.DVD, QualityTypes.HDTV, QualityTypes.Bluray1080p };
|
||||||
|
|
||||||
_qualityAllowedByProfile.IsSatisfiedBy(parseResult).Should().BeTrue();
|
_qualityAllowedByProfile.IsSatisfiedBy(parseResult).Should().BeTrue();
|
||||||
}
|
}
|
||||||
|
|
||||||
[TestCase(QualityTypes.SDTV)]
|
[Test, TestCaseSource("DeniedTestCases")]
|
||||||
[TestCase(QualityTypes.WEBDL)]
|
|
||||||
[TestCase(QualityTypes.Bluray720p)]
|
|
||||||
public void should_not_allow_if_quality_is_not_defined_in_profile(QualityTypes qualityType)
|
public void should_not_allow_if_quality_is_not_defined_in_profile(QualityTypes qualityType)
|
||||||
{
|
{
|
||||||
parseResult.Quality.QualityType = qualityType;
|
parseResult.Quality.Quality = qualityType;
|
||||||
parseResult.Series.QualityProfile.Allowed = new List<QualityTypes> { QualityTypes.DVD, QualityTypes.HDTV, QualityTypes.Bluray1080p };
|
parseResult.Series.QualityProfile.Allowed = new List<QualityTypes> { QualityTypes.DVD, QualityTypes.HDTV, QualityTypes.Bluray1080p };
|
||||||
|
|
||||||
_qualityAllowedByProfile.IsSatisfiedBy(parseResult).Should().BeFalse();
|
_qualityAllowedByProfile.IsSatisfiedBy(parseResult).Should().BeFalse();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,6 +1,7 @@
|
|||||||
// ReSharper disable RedundantUsingDirective
|
// ReSharper disable RedundantUsingDirective
|
||||||
|
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using FluentAssertions;
|
||||||
using NUnit.Framework;
|
using NUnit.Framework;
|
||||||
using NzbDrone.Core.Model;
|
using NzbDrone.Core.Model;
|
||||||
using NzbDrone.Core.Providers.DecisionEngine;
|
using NzbDrone.Core.Providers.DecisionEngine;
|
||||||
@ -13,18 +14,23 @@ namespace NzbDrone.Core.Test.ProviderTests.DecisionEngineTests
|
|||||||
// ReSharper disable InconsistentNaming
|
// ReSharper disable InconsistentNaming
|
||||||
public class QualityUpgradeSpecificationFixture : CoreTest
|
public class QualityUpgradeSpecificationFixture : CoreTest
|
||||||
{
|
{
|
||||||
|
public static object[] IsUpgradeTestCases =
|
||||||
[TestCase(QualityTypes.SDTV, false, QualityTypes.SDTV, true, QualityTypes.SDTV, Result = true)]
|
|
||||||
[TestCase(QualityTypes.WEBDL, false, QualityTypes.WEBDL, true, QualityTypes.WEBDL, Result = true)]
|
|
||||||
[TestCase(QualityTypes.SDTV, false, QualityTypes.SDTV, false, QualityTypes.SDTV, Result = false)]
|
|
||||||
[TestCase(QualityTypes.SDTV, false, QualityTypes.DVD, true, QualityTypes.SDTV, Result = false)]
|
|
||||||
[TestCase(QualityTypes.WEBDL, false, QualityTypes.HDTV, true, QualityTypes.Bluray720p, Result = false)]
|
|
||||||
[TestCase(QualityTypes.WEBDL, false, QualityTypes.HDTV, true, QualityTypes.WEBDL, Result = false)]
|
|
||||||
[TestCase(QualityTypes.WEBDL, false, QualityTypes.WEBDL, false, QualityTypes.WEBDL, Result = false)]
|
|
||||||
[TestCase(QualityTypes.SDTV, false, QualityTypes.SDTV, true, QualityTypes.SDTV, Result = true)]
|
|
||||||
public bool IsUpgradeTest(QualityTypes current, bool currentProper, QualityTypes newQuality, bool newProper, QualityTypes cutoff)
|
|
||||||
{
|
{
|
||||||
return new QualityUpgradeSpecification().IsSatisfiedBy(new Quality(current, currentProper), new Quality(newQuality, newProper), cutoff);
|
new object[] { QualityTypes.SDTV, false, QualityTypes.SDTV, true, QualityTypes.SDTV, true },
|
||||||
|
new object[] { QualityTypes.WEBDL720p, false, QualityTypes.WEBDL720p, true, QualityTypes.WEBDL720p, true },
|
||||||
|
new object[] { QualityTypes.SDTV, false, QualityTypes.SDTV, false, QualityTypes.SDTV, false },
|
||||||
|
new object[] { QualityTypes.SDTV, false, QualityTypes.DVD, true, QualityTypes.SDTV, false },
|
||||||
|
new object[] { QualityTypes.WEBDL720p, false, QualityTypes.HDTV, true, QualityTypes.Bluray720p, false },
|
||||||
|
new object[] { QualityTypes.WEBDL720p, false, QualityTypes.HDTV, true, QualityTypes.WEBDL720p, false },
|
||||||
|
new object[] { QualityTypes.WEBDL720p, false, QualityTypes.WEBDL720p, false, QualityTypes.WEBDL720p, false },
|
||||||
|
new object[] { QualityTypes.SDTV, false, QualityTypes.SDTV, true, QualityTypes.SDTV, true }
|
||||||
|
};
|
||||||
|
|
||||||
|
[Test, TestCaseSource("IsUpgradeTestCases")]
|
||||||
|
public void IsUpgradeTest(QualityTypes current, bool currentProper, QualityTypes newQuality, bool newProper, QualityTypes cutoff, bool expected)
|
||||||
|
{
|
||||||
|
new QualityUpgradeSpecification().IsSatisfiedBy(new QualityModel(current, currentProper), new QualityModel(newQuality, newProper), cutoff)
|
||||||
|
.Should().Be(expected);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -38,7 +38,7 @@ namespace NzbDrone.Core.Test.ProviderTests.DecisionEngineTests
|
|||||||
parseResultMulti = new EpisodeParseResult
|
parseResultMulti = new EpisodeParseResult
|
||||||
{
|
{
|
||||||
Series = fakeSeries,
|
Series = fakeSeries,
|
||||||
Quality = new Quality(QualityTypes.DVD, true),
|
Quality = new QualityModel(QualityTypes.DVD, true),
|
||||||
EpisodeNumbers = new List<int> { 3, 4 },
|
EpisodeNumbers = new List<int> { 3, 4 },
|
||||||
SeasonNumber = 12,
|
SeasonNumber = 12,
|
||||||
};
|
};
|
||||||
@ -46,7 +46,7 @@ namespace NzbDrone.Core.Test.ProviderTests.DecisionEngineTests
|
|||||||
parseResultSingle = new EpisodeParseResult
|
parseResultSingle = new EpisodeParseResult
|
||||||
{
|
{
|
||||||
Series = fakeSeries,
|
Series = fakeSeries,
|
||||||
Quality = new Quality(QualityTypes.DVD, true),
|
Quality = new QualityModel(QualityTypes.DVD, true),
|
||||||
EpisodeNumbers = new List<int> { 3 },
|
EpisodeNumbers = new List<int> { 3 },
|
||||||
SeasonNumber = 12,
|
SeasonNumber = 12,
|
||||||
};
|
};
|
||||||
|
@ -22,8 +22,8 @@ namespace NzbDrone.Core.Test.ProviderTests.DecisionEngineTests
|
|||||||
|
|
||||||
private EpisodeParseResult parseResultMulti;
|
private EpisodeParseResult parseResultMulti;
|
||||||
private EpisodeParseResult parseResultSingle;
|
private EpisodeParseResult parseResultSingle;
|
||||||
private Quality firstQuality;
|
private QualityModel firstQuality;
|
||||||
private Quality secondQuality;
|
private QualityModel secondQuality;
|
||||||
|
|
||||||
[SetUp]
|
[SetUp]
|
||||||
public void Setup()
|
public void Setup()
|
||||||
@ -38,7 +38,7 @@ namespace NzbDrone.Core.Test.ProviderTests.DecisionEngineTests
|
|||||||
parseResultMulti = new EpisodeParseResult
|
parseResultMulti = new EpisodeParseResult
|
||||||
{
|
{
|
||||||
Series = fakeSeries,
|
Series = fakeSeries,
|
||||||
Quality = new Quality(QualityTypes.DVD, true),
|
Quality = new QualityModel(QualityTypes.DVD, true),
|
||||||
EpisodeNumbers = new List<int> { 3, 4 },
|
EpisodeNumbers = new List<int> { 3, 4 },
|
||||||
SeasonNumber = 12,
|
SeasonNumber = 12,
|
||||||
};
|
};
|
||||||
@ -46,13 +46,13 @@ namespace NzbDrone.Core.Test.ProviderTests.DecisionEngineTests
|
|||||||
parseResultSingle = new EpisodeParseResult
|
parseResultSingle = new EpisodeParseResult
|
||||||
{
|
{
|
||||||
Series = fakeSeries,
|
Series = fakeSeries,
|
||||||
Quality = new Quality(QualityTypes.DVD, true),
|
Quality = new QualityModel(QualityTypes.DVD, true),
|
||||||
EpisodeNumbers = new List<int> { 3 },
|
EpisodeNumbers = new List<int> { 3 },
|
||||||
SeasonNumber = 12,
|
SeasonNumber = 12,
|
||||||
};
|
};
|
||||||
|
|
||||||
firstQuality = new Quality(QualityTypes.Bluray1080p, true);
|
firstQuality = new QualityModel(QualityTypes.Bluray1080p, true);
|
||||||
secondQuality = new Quality(QualityTypes.Bluray1080p, true);
|
secondQuality = new QualityModel(QualityTypes.Bluray1080p, true);
|
||||||
|
|
||||||
var singleEpisodeList = new List<Episode> { new Episode { SeasonNumber = 12, EpisodeNumber = 3 } };
|
var singleEpisodeList = new List<Episode> { new Episode { SeasonNumber = 12, EpisodeNumber = 3 } };
|
||||||
var doubleEpisodeList = new List<Episode> {
|
var doubleEpisodeList = new List<Episode> {
|
||||||
@ -66,17 +66,17 @@ namespace NzbDrone.Core.Test.ProviderTests.DecisionEngineTests
|
|||||||
|
|
||||||
Mocker.GetMock<HistoryProvider>().Setup(c => c.GetBestQualityInHistory(fakeSeries.SeriesId, 12, 3)).Returns(firstQuality);
|
Mocker.GetMock<HistoryProvider>().Setup(c => c.GetBestQualityInHistory(fakeSeries.SeriesId, 12, 3)).Returns(firstQuality);
|
||||||
Mocker.GetMock<HistoryProvider>().Setup(c => c.GetBestQualityInHistory(fakeSeries.SeriesId, 12, 4)).Returns(secondQuality);
|
Mocker.GetMock<HistoryProvider>().Setup(c => c.GetBestQualityInHistory(fakeSeries.SeriesId, 12, 4)).Returns(secondQuality);
|
||||||
Mocker.GetMock<HistoryProvider>().Setup(c => c.GetBestQualityInHistory(fakeSeries.SeriesId, 12, 5)).Returns<Quality>(null);
|
Mocker.GetMock<HistoryProvider>().Setup(c => c.GetBestQualityInHistory(fakeSeries.SeriesId, 12, 5)).Returns<QualityModel>(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void WithFirstReportUpgradable()
|
private void WithFirstReportUpgradable()
|
||||||
{
|
{
|
||||||
firstQuality.QualityType = QualityTypes.SDTV;
|
firstQuality.Quality = QualityTypes.SDTV;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void WithSecondReportUpgradable()
|
private void WithSecondReportUpgradable()
|
||||||
{
|
{
|
||||||
secondQuality.QualityType = QualityTypes.SDTV;
|
secondQuality.Quality = QualityTypes.SDTV;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@ namespace NzbDrone.Core.Test.ProviderTests.DecisionEngineTests
|
|||||||
{
|
{
|
||||||
private void WithWebdlCutoff()
|
private void WithWebdlCutoff()
|
||||||
{
|
{
|
||||||
var profile = new QualityProfile { Cutoff = QualityTypes.WEBDL };
|
var profile = new QualityProfile { Cutoff = QualityTypes.WEBDL720p };
|
||||||
Mocker.GetMock<QualityProvider>().Setup(s => s.Get(It.IsAny<int>())).Returns(profile);
|
Mocker.GetMock<QualityProvider>().Setup(s => s.Get(It.IsAny<int>())).Returns(profile);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -77,7 +77,7 @@ namespace NzbDrone.Core.Test.ProviderTests.DecisionEngineTests
|
|||||||
{
|
{
|
||||||
WithWebdlCutoff();
|
WithWebdlCutoff();
|
||||||
|
|
||||||
_episodeFile.Quality = QualityTypes.WEBDL;
|
_episodeFile.Quality = QualityTypes.WEBDL720p;
|
||||||
|
|
||||||
//Act
|
//Act
|
||||||
bool result = Mocker.Resolve<UpgradePossibleSpecification>().IsSatisfiedBy(_episode);
|
bool result = Mocker.Resolve<UpgradePossibleSpecification>().IsSatisfiedBy(_episode);
|
||||||
|
@ -20,6 +20,13 @@ namespace NzbDrone.Core.Test.ProviderTests.DiskScanProviderTests
|
|||||||
// ReSharper disable InconsistentNaming
|
// ReSharper disable InconsistentNaming
|
||||||
public class ImportFileFixture : CoreTest
|
public class ImportFileFixture : CoreTest
|
||||||
{
|
{
|
||||||
|
public static object[] ImportTestCases =
|
||||||
|
{
|
||||||
|
new object[] { QualityTypes.SDTV },
|
||||||
|
new object[] { QualityTypes.DVD },
|
||||||
|
new object[] { QualityTypes.HDTV }
|
||||||
|
};
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
public void import_new_file_should_succeed()
|
public void import_new_file_should_succeed()
|
||||||
{
|
{
|
||||||
@ -49,9 +56,7 @@ namespace NzbDrone.Core.Test.ProviderTests.DiskScanProviderTests
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[TestCase(QualityTypes.SDTV, false)]
|
[Test, TestCaseSource("ImportTestCases")]
|
||||||
[TestCase(QualityTypes.DVD, true)]
|
|
||||||
[TestCase(QualityTypes.HDTV, false)]
|
|
||||||
public void import_new_file_with_better_same_quality_should_succeed(QualityTypes currentFileQuality, bool currentFileProper)
|
public void import_new_file_with_better_same_quality_should_succeed(QualityTypes currentFileQuality, bool currentFileProper)
|
||||||
{
|
{
|
||||||
const string newFile = @"WEEDS.S03E01.DUAL.1080p.HELLYWOOD.mkv";
|
const string newFile = @"WEEDS.S03E01.DUAL.1080p.HELLYWOOD.mkv";
|
||||||
@ -262,9 +267,6 @@ namespace NzbDrone.Core.Test.ProviderTests.DiskScanProviderTests
|
|||||||
.Build())
|
.Build())
|
||||||
.Build();
|
.Build();
|
||||||
|
|
||||||
//Mocks
|
|
||||||
|
|
||||||
|
|
||||||
Mocker.GetMock<DiskProvider>()
|
Mocker.GetMock<DiskProvider>()
|
||||||
.Setup(e => e.GetSize(fileName)).Returns(12345).Verifiable();
|
.Setup(e => e.GetSize(fileName)).Returns(12345).Verifiable();
|
||||||
|
|
||||||
|
@ -91,7 +91,7 @@ namespace NzbDrone.Core.Test.ProviderTests.DiskScanProviderTests
|
|||||||
var file = Builder<EpisodeFile>.CreateNew()
|
var file = Builder<EpisodeFile>.CreateNew()
|
||||||
.With(f => f.SeriesId = fakeSeries.SeriesId)
|
.With(f => f.SeriesId = fakeSeries.SeriesId)
|
||||||
.With(f => f.Path = currentFilename)
|
.With(f => f.Path = currentFilename)
|
||||||
.With(f => f.Quality = QualityTypes.WEBDL)
|
.With(f => f.Quality = QualityTypes.WEBDL720p)
|
||||||
.With(f => f.Proper = false)
|
.With(f => f.Proper = false)
|
||||||
.Build();
|
.Build();
|
||||||
|
|
||||||
@ -112,7 +112,7 @@ namespace NzbDrone.Core.Test.ProviderTests.DiskScanProviderTests
|
|||||||
.Returns(fi);
|
.Returns(fi);
|
||||||
|
|
||||||
Mocker.GetMock<DownloadProvider>()
|
Mocker.GetMock<DownloadProvider>()
|
||||||
.Setup(s => s.GetDownloadTitle(It.Is<EpisodeParseResult>(e => e.Quality == new Quality{ QualityType = QualityTypes.WEBDL, Proper = false })))
|
.Setup(s => s.GetDownloadTitle(It.Is<EpisodeParseResult>(e => e.Quality == new QualityModel{ Quality = QualityTypes.WEBDL720p, Proper = false })))
|
||||||
.Returns(message);
|
.Returns(message);
|
||||||
|
|
||||||
Mocker.GetMock<ExternalNotificationProvider>()
|
Mocker.GetMock<ExternalNotificationProvider>()
|
||||||
|
@ -128,7 +128,7 @@ namespace NzbDrone.Core.Test.ProviderTests.DownloadClientTests.SabProviderTests
|
|||||||
EpisodeTitle = "Title",
|
EpisodeTitle = "Title",
|
||||||
EpisodeNumbers = new List<int> { 5 },
|
EpisodeNumbers = new List<int> { 5 },
|
||||||
SeasonNumber = 1,
|
SeasonNumber = 1,
|
||||||
Quality = new Quality { QualityType = QualityTypes.SDTV, Proper = false },
|
Quality = new QualityModel { Quality = QualityTypes.SDTV, Proper = false },
|
||||||
Series = new Series { Title = "30 Rock", CleanTitle = Parser.NormalizeTitle("30 Rock") },
|
Series = new Series { Title = "30 Rock", CleanTitle = Parser.NormalizeTitle("30 Rock") },
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -145,7 +145,7 @@ namespace NzbDrone.Core.Test.ProviderTests.DownloadClientTests.SabProviderTests
|
|||||||
|
|
||||||
var parseResult = new EpisodeParseResult
|
var parseResult = new EpisodeParseResult
|
||||||
{
|
{
|
||||||
Quality = new Quality { QualityType = QualityTypes.Bluray720p, Proper = false },
|
Quality = new QualityModel { Quality = QualityTypes.Bluray720p, Proper = false },
|
||||||
AirDate = new DateTime(2011, 12, 01),
|
AirDate = new DateTime(2011, 12, 01),
|
||||||
Series = new Series { Title = "The Dailyshow", CleanTitle = Parser.NormalizeTitle("The Dailyshow"), IsDaily = true },
|
Series = new Series { Title = "The Dailyshow", CleanTitle = Parser.NormalizeTitle("The Dailyshow"), IsDaily = true },
|
||||||
};
|
};
|
||||||
@ -164,7 +164,7 @@ namespace NzbDrone.Core.Test.ProviderTests.DownloadClientTests.SabProviderTests
|
|||||||
|
|
||||||
var parseResult = new EpisodeParseResult
|
var parseResult = new EpisodeParseResult
|
||||||
{
|
{
|
||||||
Quality = new Quality { QualityType = QualityTypes.Bluray720p, Proper = false },
|
Quality = new QualityModel { Quality = QualityTypes.Bluray720p, Proper = false },
|
||||||
FullSeason = true,
|
FullSeason = true,
|
||||||
SeasonNumber = 5,
|
SeasonNumber = 5,
|
||||||
Series = new Series { Title = "My Name is earl", CleanTitle = Parser.NormalizeTitle("My Name is earl") },
|
Series = new Series { Title = "My Name is earl", CleanTitle = Parser.NormalizeTitle("My Name is earl") },
|
||||||
@ -175,13 +175,18 @@ namespace NzbDrone.Core.Test.ProviderTests.DownloadClientTests.SabProviderTests
|
|||||||
result.Should().BeTrue();
|
result.Should().BeTrue();
|
||||||
}
|
}
|
||||||
|
|
||||||
[TestCase(2, new[] { 5 }, "30 Rock", QualityTypes.Bluray1080p, true, Description = "Same Series, Different Season, Episode")]
|
public static object[] DifferentEpisodeCases =
|
||||||
[TestCase(1, new[] { 6 }, "30 Rock", QualityTypes.Bluray1080p, true, Description = "Same series, different episodes")]
|
{
|
||||||
[TestCase(1, new[] { 6, 7, 8 }, "30 Rock", QualityTypes.Bluray1080p, true, Description = "Same series, different episodes")]
|
new object[] { 2, new[] { 5 }, "30 Rock", QualityTypes.Bluray1080p, true }, //Same Series, Different Season, Episode
|
||||||
[TestCase(1, new[] { 6 }, "Some other show", QualityTypes.Bluray1080p, true, Description = "Different series, same season, episode")]
|
new object[] { 1, new[] { 6 }, "30 Rock", QualityTypes.Bluray1080p, true }, //Same series, different episodes
|
||||||
[TestCase(1, new[] { 5 }, "Rock", QualityTypes.Bluray1080p, true, Description = "Similar series, same season, episodes")]
|
new object[] { 1, new[] { 6, 7, 8 }, "30 Rock", QualityTypes.Bluray1080p, true }, //Same series, different episodes
|
||||||
[TestCase(1, new[] { 5 }, "30 Rock", QualityTypes.Bluray720p, false, Description = "Same series, higher quality")]
|
new object[] { 1, new[] { 6 }, "Some other show", QualityTypes.Bluray1080p, true }, //Different series, same season, episode
|
||||||
[TestCase(1, new[] { 5 }, "30 Rock", QualityTypes.HDTV, true, Description = "Same series, higher quality")]
|
new object[] { 1, new[] { 5 }, "Rock", QualityTypes.Bluray1080p, true }, //Similar series, same season, episodes
|
||||||
|
new object[] { 1, new[] { 5 }, "30 Rock", QualityTypes.Bluray720p, false }, //Same series, higher quality
|
||||||
|
new object[] { 1, new[] { 5 }, "30 Rock", QualityTypes.HDTV, true } //Same series, higher quality
|
||||||
|
};
|
||||||
|
|
||||||
|
[Test, TestCaseSource("DifferentEpisodeCases")]
|
||||||
public void IsInQueue_should_not_find_diffrent_episode_queue(int season, int[] episodes, string title, QualityTypes qualityType, bool proper)
|
public void IsInQueue_should_not_find_diffrent_episode_queue(int season, int[] episodes, string title, QualityTypes qualityType, bool proper)
|
||||||
{
|
{
|
||||||
WithFullQueue();
|
WithFullQueue();
|
||||||
@ -191,7 +196,7 @@ namespace NzbDrone.Core.Test.ProviderTests.DownloadClientTests.SabProviderTests
|
|||||||
EpisodeTitle = "Title",
|
EpisodeTitle = "Title",
|
||||||
EpisodeNumbers = new List<int>(episodes),
|
EpisodeNumbers = new List<int>(episodes),
|
||||||
SeasonNumber = season,
|
SeasonNumber = season,
|
||||||
Quality = new Quality { QualityType = qualityType, Proper = proper },
|
Quality = new QualityModel { Quality = qualityType, Proper = proper },
|
||||||
Series = new Series { Title = title, CleanTitle = Parser.NormalizeTitle(title) },
|
Series = new Series { Title = title, CleanTitle = Parser.NormalizeTitle(title) },
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -200,12 +205,17 @@ namespace NzbDrone.Core.Test.ProviderTests.DownloadClientTests.SabProviderTests
|
|||||||
result.Should().BeFalse();
|
result.Should().BeFalse();
|
||||||
}
|
}
|
||||||
|
|
||||||
[TestCase(1, new[] { 5 }, "30 Rock", QualityTypes.SDTV, false, Description = "Same Series, lower quality")]
|
public static object[] LowerQualityCases =
|
||||||
[TestCase(1, new[] { 5 }, "30 rocK", QualityTypes.SDTV, false, Description = "Same Series, different casing")]
|
{
|
||||||
[TestCase(1, new[] { 5 }, "30 RocK", QualityTypes.HDTV, false, Description = "Same Series, same quality")]
|
new object[] { 1, new[] { 5 }, "30 Rock", QualityTypes.SDTV, false }, //Same Series, lower quality
|
||||||
[TestCase(1, new[] { 5, 6 }, "30 RocK", QualityTypes.HDTV, false, Description = "Same Series, same quality, one different episode")]
|
new object[] { 1, new[] { 5 }, "30 rocK", QualityTypes.SDTV, false }, //Same Series, different casing
|
||||||
[TestCase(1, new[] { 5, 6 }, "30 RocK", QualityTypes.HDTV, false, Description = "Same Series, same quality, one different episode")]
|
new object[] { 1, new[] { 5 }, "30 RocK", QualityTypes.HDTV, false }, //Same Series, same quality
|
||||||
[TestCase(4, new[] { 8 }, "Parks and Recreation", QualityTypes.WEBDL, false, Description = "Same Series, same quality")]
|
new object[] { 1, new[] { 5, 6 }, "30 RocK", QualityTypes.HDTV, false }, //Same Series, same quality, one different episode
|
||||||
|
new object[] { 1, new[] { 5, 6 }, "30 RocK", QualityTypes.HDTV, false }, //Same Series, same quality, one different episode
|
||||||
|
new object[] { 4, new[] { 8 }, "Parks and Recreation", QualityTypes.WEBDL720p }, false, //Same Series, same quality
|
||||||
|
};
|
||||||
|
|
||||||
|
[Test, TestCaseSource("LowerQualityCases")]
|
||||||
public void IsInQueue_should_find_same_or_lower_quality_episode_queue(int season, int[] episodes, string title, QualityTypes qualityType, bool proper)
|
public void IsInQueue_should_find_same_or_lower_quality_episode_queue(int season, int[] episodes, string title, QualityTypes qualityType, bool proper)
|
||||||
{
|
{
|
||||||
WithFullQueue();
|
WithFullQueue();
|
||||||
@ -215,7 +225,7 @@ namespace NzbDrone.Core.Test.ProviderTests.DownloadClientTests.SabProviderTests
|
|||||||
EpisodeTitle = "Title",
|
EpisodeTitle = "Title",
|
||||||
EpisodeNumbers = new List<int>(episodes),
|
EpisodeNumbers = new List<int>(episodes),
|
||||||
SeasonNumber = season,
|
SeasonNumber = season,
|
||||||
Quality = new Quality { QualityType = qualityType, Proper = proper },
|
Quality = new QualityModel { Quality = qualityType, Proper = proper },
|
||||||
Series = new Series { Title = title, CleanTitle = Parser.NormalizeTitle(title) },
|
Series = new Series { Title = title, CleanTitle = Parser.NormalizeTitle(title) },
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -224,10 +234,15 @@ namespace NzbDrone.Core.Test.ProviderTests.DownloadClientTests.SabProviderTests
|
|||||||
result.Should().BeTrue();
|
result.Should().BeTrue();
|
||||||
}
|
}
|
||||||
|
|
||||||
[TestCase(5, new[] { 13 }, "The Big Bang Theory", QualityTypes.SDTV, false, Description = "Same Series, lower quality")]
|
public static object[] DuplicateItemsCases =
|
||||||
[TestCase(5, new[] { 13 }, "The Big Bang Theory", QualityTypes.HDTV, false, Description = "Same Series, same quality")]
|
{
|
||||||
[TestCase(5, new[] { 13 }, "The Big Bang Theory", QualityTypes.HDTV, true, Description = "Same Series, same quality")]
|
new object[] { 5, new[] { 13 }, "The Big Bang Theory", QualityTypes.SDTV, false }, //Same Series, lower quality
|
||||||
[TestCase(5, new[] { 13, 14 }, "The Big Bang Theory", QualityTypes.HDTV, false, Description = "Same Series, same quality, one diffrent episode")]
|
new object[] { 5, new[] { 13 }, "The Big Bang Theory", QualityTypes.HDTV, false }, //Same Series, same quality
|
||||||
|
new object[] { 5, new[] { 13 }, "The Big Bang Theory", QualityTypes.HDTV, true }, //Same Series, same quality
|
||||||
|
new object[] { 5, new[] { 13, 14 }, "The Big Bang Theory", QualityTypes.HDTV, false } //Same Series, same quality, one diffrent episode
|
||||||
|
};
|
||||||
|
|
||||||
|
[Test, TestCaseSource("DuplicateItemsCases")]
|
||||||
public void IsInQueue_should_find_items_marked_as_duplicate(int season, int[] episodes, string title, QualityTypes qualityType, bool proper)
|
public void IsInQueue_should_find_items_marked_as_duplicate(int season, int[] episodes, string title, QualityTypes qualityType, bool proper)
|
||||||
{
|
{
|
||||||
WithFullQueue();
|
WithFullQueue();
|
||||||
@ -237,7 +252,7 @@ namespace NzbDrone.Core.Test.ProviderTests.DownloadClientTests.SabProviderTests
|
|||||||
EpisodeTitle = "Title",
|
EpisodeTitle = "Title",
|
||||||
EpisodeNumbers = new List<int>(episodes),
|
EpisodeNumbers = new List<int>(episodes),
|
||||||
SeasonNumber = season,
|
SeasonNumber = season,
|
||||||
Quality = new Quality { QualityType = qualityType, Proper = proper },
|
Quality = new QualityModel { Quality = qualityType, Proper = proper },
|
||||||
Series = new Series { Title = title, CleanTitle = Parser.NormalizeTitle(title) },
|
Series = new Series { Title = title, CleanTitle = Parser.NormalizeTitle(title) },
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -246,10 +261,15 @@ namespace NzbDrone.Core.Test.ProviderTests.DownloadClientTests.SabProviderTests
|
|||||||
result.Should().BeTrue();
|
result.Should().BeTrue();
|
||||||
}
|
}
|
||||||
|
|
||||||
[TestCase(3, new[] { 14, 15 }, "My Name Is Earl", QualityTypes.Bluray720p, false)]
|
public static object[] DoubleEpisodeCases =
|
||||||
[TestCase(3, new[] { 15 }, "My Name Is Earl", QualityTypes.DVD, false)]
|
{
|
||||||
[TestCase(3, new[] { 14 }, "My Name Is Earl", QualityTypes.HDTV, false)]
|
new object[] { 3, new[] { 14, 15 }, "My Name Is Earl", QualityTypes.Bluray720p, false },
|
||||||
[TestCase(3, new[] { 15, 16 }, "My Name Is Earl", QualityTypes.SDTV, false)]
|
new object[] { 3, new[] { 15 }, "My Name Is Earl", QualityTypes.DVD, false },
|
||||||
|
new object[] { 3, new[] { 14 }, "My Name Is Earl", QualityTypes.HDTV, false },
|
||||||
|
new object[] { 3, new[] { 15, 16 }, "My Name Is Earl", QualityTypes.SDTV, false }
|
||||||
|
};
|
||||||
|
|
||||||
|
[Test, TestCaseSource("DoubleEpisodeCases")]
|
||||||
public void IsInQueue_should_find_double_episodes_(int season, int[] episodes, string title, QualityTypes qualityType, bool proper)
|
public void IsInQueue_should_find_double_episodes_(int season, int[] episodes, string title, QualityTypes qualityType, bool proper)
|
||||||
{
|
{
|
||||||
WithFullQueue();
|
WithFullQueue();
|
||||||
@ -259,7 +279,7 @@ namespace NzbDrone.Core.Test.ProviderTests.DownloadClientTests.SabProviderTests
|
|||||||
EpisodeTitle = "Title",
|
EpisodeTitle = "Title",
|
||||||
EpisodeNumbers = new List<int>(episodes),
|
EpisodeNumbers = new List<int>(episodes),
|
||||||
SeasonNumber = season,
|
SeasonNumber = season,
|
||||||
Quality = new Quality { QualityType = qualityType, Proper = proper },
|
Quality = new QualityModel { Quality = qualityType, Proper = proper },
|
||||||
Series = new Series { Title = title, CleanTitle = Parser.NormalizeTitle(title) },
|
Series = new Series { Title = title, CleanTitle = Parser.NormalizeTitle(title) },
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -278,7 +298,7 @@ namespace NzbDrone.Core.Test.ProviderTests.DownloadClientTests.SabProviderTests
|
|||||||
EpisodeTitle = "Title",
|
EpisodeTitle = "Title",
|
||||||
EpisodeNumbers = new List<int> { 1 },
|
EpisodeNumbers = new List<int> { 1 },
|
||||||
SeasonNumber = 2,
|
SeasonNumber = 2,
|
||||||
Quality = new Quality { QualityType = QualityTypes.Bluray1080p, Proper = true },
|
Quality = new QualityModel { Quality = QualityTypes.Bluray1080p, Proper = true },
|
||||||
Series = new Series { Title = "Test", CleanTitle = Parser.NormalizeTitle("Test") },
|
Series = new Series { Title = "Test", CleanTitle = Parser.NormalizeTitle("Test") },
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -20,6 +20,15 @@ namespace NzbDrone.Core.Test.ProviderTests
|
|||||||
[TestFixture]
|
[TestFixture]
|
||||||
public class DownloadProviderFixture : CoreTest
|
public class DownloadProviderFixture : CoreTest
|
||||||
{
|
{
|
||||||
|
public static object[] SabNamingCases =
|
||||||
|
{
|
||||||
|
new object[] { 1, new[] { 2 }, "My Episode Title", QualityTypes.DVD, false, "My Series Name - 1x02 - My Episode Title [DVD]" },
|
||||||
|
new object[] { 1, new[] { 2 }, "My Episode Title", QualityTypes.DVD, true, "My Series Name - 1x02 - My Episode Title [DVD] [Proper]" },
|
||||||
|
new object[] { 1, new[] { 2 }, "", QualityTypes.DVD, true, "My Series Name - 1x02 - [DVD] [Proper]" },
|
||||||
|
new object[] { 1, new[] { 2, 4 }, "My Episode Title", QualityTypes.HDTV, false, "My Series Name - 1x02-1x04 - My Episode Title [HDTV]" },
|
||||||
|
new object[] { 1, new[] { 2, 4 }, "My Episode Title", QualityTypes.HDTV, true, "My Series Name - 1x02-1x04 - My Episode Title [HDTV] [Proper]" },
|
||||||
|
new object[] { 1, new[] { 2, 4 }, "", QualityTypes.HDTV, true, "My Series Name - 1x02-1x04 - [HDTV] [Proper]" },
|
||||||
|
};
|
||||||
|
|
||||||
private void SetDownloadClient(DownloadClientType clientType)
|
private void SetDownloadClient(DownloadClientType clientType)
|
||||||
{
|
{
|
||||||
@ -40,7 +49,7 @@ namespace NzbDrone.Core.Test.ProviderTests
|
|||||||
.Setup(c => c.GetEpisodesByParseResult(It.IsAny<EpisodeParseResult>())).Returns(episodes);
|
.Setup(c => c.GetEpisodesByParseResult(It.IsAny<EpisodeParseResult>())).Returns(episodes);
|
||||||
|
|
||||||
return Builder<EpisodeParseResult>.CreateNew()
|
return Builder<EpisodeParseResult>.CreateNew()
|
||||||
.With(c => c.Quality = new Quality(QualityTypes.DVD, false))
|
.With(c => c.Quality = new QualityModel(QualityTypes.DVD, false))
|
||||||
.With(c => c.Series = Builder<Series>.CreateNew().Build())
|
.With(c => c.Series = Builder<Series>.CreateNew().Build())
|
||||||
.With(c => c.EpisodeNumbers = new List<int>{2})
|
.With(c => c.EpisodeNumbers = new List<int>{2})
|
||||||
.Build();
|
.Build();
|
||||||
@ -68,7 +77,6 @@ namespace NzbDrone.Core.Test.ProviderTests
|
|||||||
.Returns(false);
|
.Returns(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
public void Download_report_should_send_to_sab_add_to_history_mark_as_grabbed()
|
public void Download_report_should_send_to_sab_add_to_history_mark_as_grabbed()
|
||||||
{
|
{
|
||||||
@ -162,8 +170,6 @@ namespace NzbDrone.Core.Test.ProviderTests
|
|||||||
.Verify(c => c.OnGrab(It.IsAny<String>()), Times.Never());
|
.Verify(c => c.OnGrab(It.IsAny<String>()), Times.Never());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
public void should_return_sab_as_active_client()
|
public void should_return_sab_as_active_client()
|
||||||
{
|
{
|
||||||
@ -178,14 +184,8 @@ namespace NzbDrone.Core.Test.ProviderTests
|
|||||||
Mocker.Resolve<DownloadProvider>().GetActiveDownloadClient().Should().BeAssignableTo<BlackholeProvider>();
|
Mocker.Resolve<DownloadProvider>().GetActiveDownloadClient().Should().BeAssignableTo<BlackholeProvider>();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Test, TestCaseSource("SabNamingCases")]
|
||||||
[TestCase(1, new[] { 2 }, "My Episode Title", QualityTypes.DVD, false, Result = "My Series Name - 1x02 - My Episode Title [DVD]")]
|
public void create_proper_sab_titles(int seasons, int[] episodes, string title, QualityTypes quality, bool proper, string expected)
|
||||||
[TestCase(1, new[] { 2 }, "My Episode Title", QualityTypes.DVD, true, Result = "My Series Name - 1x02 - My Episode Title [DVD] [Proper]")]
|
|
||||||
[TestCase(1, new[] { 2 }, "", QualityTypes.DVD, true, Result = "My Series Name - 1x02 - [DVD] [Proper]")]
|
|
||||||
[TestCase(1, new[] { 2, 4 }, "My Episode Title", QualityTypes.HDTV, false, Result = "My Series Name - 1x02-1x04 - My Episode Title [HDTV]")]
|
|
||||||
[TestCase(1, new[] { 2, 4 }, "My Episode Title", QualityTypes.HDTV, true, Result = "My Series Name - 1x02-1x04 - My Episode Title [HDTV] [Proper]")]
|
|
||||||
[TestCase(1, new[] { 2, 4 }, "", QualityTypes.HDTV, true, Result = "My Series Name - 1x02-1x04 - [HDTV] [Proper]")]
|
|
||||||
public string create_proper_sab_titles(int seasons, int[] episodes, string title, QualityTypes quality, bool proper)
|
|
||||||
{
|
{
|
||||||
var series = Builder<Series>.CreateNew()
|
var series = Builder<Series>.CreateNew()
|
||||||
.With(c => c.Title = "My Series Name")
|
.With(c => c.Title = "My Series Name")
|
||||||
@ -195,13 +195,13 @@ namespace NzbDrone.Core.Test.ProviderTests
|
|||||||
{
|
{
|
||||||
AirDate = DateTime.Now,
|
AirDate = DateTime.Now,
|
||||||
EpisodeNumbers = episodes.ToList(),
|
EpisodeNumbers = episodes.ToList(),
|
||||||
Quality = new Quality(quality, proper),
|
Quality = new QualityModel(quality, proper),
|
||||||
SeasonNumber = seasons,
|
SeasonNumber = seasons,
|
||||||
Series = series,
|
Series = series,
|
||||||
EpisodeTitle = title
|
EpisodeTitle = title
|
||||||
};
|
};
|
||||||
|
|
||||||
return Mocker.Resolve<DownloadProvider>().GetDownloadTitle(parsResult);
|
Mocker.Resolve<DownloadProvider>().GetDownloadTitle(parsResult).Should().Be(expected);
|
||||||
}
|
}
|
||||||
|
|
||||||
[TestCase(true, Result = "My Series Name - Season 1 [Bluray720p] [Proper]")]
|
[TestCase(true, Result = "My Series Name - Season 1 [Bluray720p] [Proper]")]
|
||||||
@ -215,7 +215,7 @@ namespace NzbDrone.Core.Test.ProviderTests
|
|||||||
var parsResult = new EpisodeParseResult()
|
var parsResult = new EpisodeParseResult()
|
||||||
{
|
{
|
||||||
AirDate = DateTime.Now,
|
AirDate = DateTime.Now,
|
||||||
Quality = new Quality(QualityTypes.Bluray720p, proper),
|
Quality = new QualityModel(QualityTypes.Bluray720p, proper),
|
||||||
SeasonNumber = 1,
|
SeasonNumber = 1,
|
||||||
Series = series,
|
Series = series,
|
||||||
EpisodeTitle = "My Episode Title",
|
EpisodeTitle = "My Episode Title",
|
||||||
@ -237,7 +237,7 @@ namespace NzbDrone.Core.Test.ProviderTests
|
|||||||
var parsResult = new EpisodeParseResult
|
var parsResult = new EpisodeParseResult
|
||||||
{
|
{
|
||||||
AirDate = new DateTime(2011, 12, 1),
|
AirDate = new DateTime(2011, 12, 1),
|
||||||
Quality = new Quality(QualityTypes.Bluray720p, proper),
|
Quality = new QualityModel(QualityTypes.Bluray720p, proper),
|
||||||
Series = series,
|
Series = series,
|
||||||
EpisodeTitle = "My Episode Title",
|
EpisodeTitle = "My Episode Title",
|
||||||
};
|
};
|
||||||
|
@ -88,7 +88,7 @@ namespace NzbDrone.Core.Test.ProviderTests
|
|||||||
WithRealDb();
|
WithRealDb();
|
||||||
|
|
||||||
var fakeSeries = Builder<Series>.CreateNew().Build();
|
var fakeSeries = Builder<Series>.CreateNew().Build();
|
||||||
var fakeFile = Builder<EpisodeFile>.CreateNew().With(f => f.EpisodeFileId).Build();
|
var fakeFile = Builder<EpisodeFile>.CreateNew().With(f => f.EpisodeFileId).With(c => c.Quality = QualityTypes.SDTV).Build();
|
||||||
var fakeEpisodes = Builder<Episode>.CreateListOfSize(5)
|
var fakeEpisodes = Builder<Episode>.CreateListOfSize(5)
|
||||||
.All().With(e => e.SeriesId = 1).TheFirst(1).With(e => e.EpisodeFileId = 1).With(e => e.EpisodeFile = fakeFile).Build();
|
.All().With(e => e.SeriesId = 1).TheFirst(1).With(e => e.EpisodeFileId = 1).With(e => e.EpisodeFile = fakeFile).Build();
|
||||||
|
|
||||||
@ -858,7 +858,7 @@ namespace NzbDrone.Core.Test.ProviderTests
|
|||||||
WithRealDb();
|
WithRealDb();
|
||||||
|
|
||||||
var fakeSeries = Builder<Series>.CreateNew().Build();
|
var fakeSeries = Builder<Series>.CreateNew().Build();
|
||||||
var fakeFile = Builder<EpisodeFile>.CreateNew().With(f => f.EpisodeFileId).Build();
|
var fakeFile = Builder<EpisodeFile>.CreateNew().With(f => f.EpisodeFileId).With(c => c.Quality = QualityTypes.SDTV).Build();
|
||||||
var fakeEpisodes = Builder<Episode>.CreateListOfSize(5)
|
var fakeEpisodes = Builder<Episode>.CreateListOfSize(5)
|
||||||
.All().With(e => e.SeriesId = 1).TheFirst(1).With(e => e.EpisodeFileId = 1).With(e => e.EpisodeFile = fakeFile).Build();
|
.All().With(e => e.SeriesId = 1).TheFirst(1).With(e => e.EpisodeFileId = 1).With(e => e.EpisodeFile = fakeFile).Build();
|
||||||
|
|
||||||
@ -902,7 +902,7 @@ namespace NzbDrone.Core.Test.ProviderTests
|
|||||||
WithRealDb();
|
WithRealDb();
|
||||||
|
|
||||||
var fakeSeries = Builder<Series>.CreateNew().Build();
|
var fakeSeries = Builder<Series>.CreateNew().Build();
|
||||||
var fakeFile = Builder<EpisodeFile>.CreateNew().With(f => f.EpisodeFileId).Build();
|
var fakeFile = Builder<EpisodeFile>.CreateNew().With(f => f.EpisodeFileId).With(c => c.Quality = QualityTypes.SDTV).Build();
|
||||||
var fakeEpisodes = Builder<Episode>.CreateListOfSize(5)
|
var fakeEpisodes = Builder<Episode>.CreateListOfSize(5)
|
||||||
.All().With(e => e.SeriesId = 1).TheFirst(1).With(e => e.EpisodeFileId = 1).With(e => e.EpisodeFile = fakeFile).Build();
|
.All().With(e => e.SeriesId = 1).TheFirst(1).With(e => e.EpisodeFileId = 1).With(e => e.EpisodeFile = fakeFile).Build();
|
||||||
|
|
||||||
@ -1224,6 +1224,7 @@ namespace NzbDrone.Core.Test.ProviderTests
|
|||||||
|
|
||||||
var episodeFile = Builder<EpisodeFile>.CreateNew()
|
var episodeFile = Builder<EpisodeFile>.CreateNew()
|
||||||
.With(c => c.EpisodeFileId = 1)
|
.With(c => c.EpisodeFileId = 1)
|
||||||
|
.With(c => c.Quality = QualityTypes.SDTV)
|
||||||
.Build();
|
.Build();
|
||||||
|
|
||||||
var episodes = Builder<Episode>.CreateListOfSize(2)
|
var episodes = Builder<Episode>.CreateListOfSize(2)
|
||||||
|
@ -19,7 +19,10 @@ namespace NzbDrone.Core.Test.ProviderTests
|
|||||||
{
|
{
|
||||||
WithRealDb();
|
WithRealDb();
|
||||||
//Setup
|
//Setup
|
||||||
var historyItem = Builder<History>.CreateListOfSize(10).Build();
|
var historyItem = Builder<History>.CreateListOfSize(10)
|
||||||
|
.All()
|
||||||
|
.With(c => c.Quality = QualityTypes.SDTV)
|
||||||
|
.Build();
|
||||||
|
|
||||||
Db.InsertMany(historyItem);
|
Db.InsertMany(historyItem);
|
||||||
|
|
||||||
@ -39,7 +42,15 @@ namespace NzbDrone.Core.Test.ProviderTests
|
|||||||
|
|
||||||
var episodes = Builder<Episode>.CreateListOfSize(10).Build();
|
var episodes = Builder<Episode>.CreateListOfSize(10).Build();
|
||||||
|
|
||||||
var historyItems = Builder<History>.CreateListOfSize(10).TheFirst(5).With(h => h.SeriesId = seriesOne.SeriesId).TheLast(5).With(h => h.SeriesId = seriesTwo.SeriesId).Build();
|
var historyItems = Builder<History>
|
||||||
|
.CreateListOfSize(10)
|
||||||
|
.All()
|
||||||
|
.With(c => c.Quality = QualityTypes.SDTV)
|
||||||
|
.TheFirst(5)
|
||||||
|
.With(h => h.SeriesId = seriesOne.SeriesId)
|
||||||
|
.TheLast(5)
|
||||||
|
.With(h => h.SeriesId = seriesTwo.SeriesId)
|
||||||
|
.Build();
|
||||||
|
|
||||||
|
|
||||||
Db.InsertMany(historyItems);
|
Db.InsertMany(historyItems);
|
||||||
@ -65,7 +76,11 @@ namespace NzbDrone.Core.Test.ProviderTests
|
|||||||
{
|
{
|
||||||
WithRealDb();
|
WithRealDb();
|
||||||
|
|
||||||
var historyItem = Builder<History>.CreateListOfSize(10).Build();
|
var historyItem = Builder<History>
|
||||||
|
.CreateListOfSize(10)
|
||||||
|
.All()
|
||||||
|
.With(c => c.Quality = QualityTypes.SDTV)
|
||||||
|
.Build();
|
||||||
Db.InsertMany(historyItem);
|
Db.InsertMany(historyItem);
|
||||||
|
|
||||||
//Act
|
//Act
|
||||||
@ -82,6 +97,8 @@ namespace NzbDrone.Core.Test.ProviderTests
|
|||||||
WithRealDb();
|
WithRealDb();
|
||||||
|
|
||||||
var historyItem = Builder<History>.CreateListOfSize(30)
|
var historyItem = Builder<History>.CreateListOfSize(30)
|
||||||
|
.All()
|
||||||
|
.With(c => c.Quality = QualityTypes.SDTV)
|
||||||
.TheFirst(10).With(c => c.Date = DateTime.Now)
|
.TheFirst(10).With(c => c.Date = DateTime.Now)
|
||||||
.TheNext(20).With(c => c.Date = DateTime.Now.AddDays(-31))
|
.TheNext(20).With(c => c.Date = DateTime.Now.AddDays(-31))
|
||||||
.Build();
|
.Build();
|
||||||
@ -129,7 +146,7 @@ namespace NzbDrone.Core.Test.ProviderTests
|
|||||||
|
|
||||||
//Assert
|
//Assert
|
||||||
result.Should().NotBeNull();
|
result.Should().NotBeNull();
|
||||||
result.QualityType.Should().Be(QualityTypes.Bluray720p);
|
result.Quality.Should().Be(QualityTypes.Bluray720p);
|
||||||
result.Proper.Should().BeTrue();
|
result.Proper.Should().BeTrue();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -184,7 +201,7 @@ namespace NzbDrone.Core.Test.ProviderTests
|
|||||||
|
|
||||||
//Assert
|
//Assert
|
||||||
result.Should().NotBeNull();
|
result.Should().NotBeNull();
|
||||||
result.QualityType.Should().Be(QualityTypes.Bluray720p);
|
result.Quality.Should().Be(QualityTypes.Bluray720p);
|
||||||
result.Proper.Should().BeTrue();
|
result.Proper.Should().BeTrue();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -195,7 +212,7 @@ namespace NzbDrone.Core.Test.ProviderTests
|
|||||||
|
|
||||||
var episode = Builder<Episode>.CreateNew().Build();
|
var episode = Builder<Episode>.CreateNew().Build();
|
||||||
|
|
||||||
const QualityTypes quality = QualityTypes.HDTV;
|
QualityTypes quality = QualityTypes.HDTV;
|
||||||
const bool proper = true;
|
const bool proper = true;
|
||||||
|
|
||||||
var history = new History
|
var history = new History
|
||||||
|
@ -12,6 +12,7 @@ using NzbDrone.Core.Model;
|
|||||||
using NzbDrone.Core.Providers;
|
using NzbDrone.Core.Providers;
|
||||||
using NzbDrone.Core.Providers.Core;
|
using NzbDrone.Core.Providers.Core;
|
||||||
using NzbDrone.Core.Repository;
|
using NzbDrone.Core.Repository;
|
||||||
|
using NzbDrone.Core.Repository.Quality;
|
||||||
using NzbDrone.Core.Test.Framework;
|
using NzbDrone.Core.Test.Framework;
|
||||||
using NzbDrone.Test.Common.AutoMoq;
|
using NzbDrone.Test.Common.AutoMoq;
|
||||||
|
|
||||||
@ -25,10 +26,14 @@ namespace NzbDrone.Core.Test.ProviderTests
|
|||||||
public void get_series_files()
|
public void get_series_files()
|
||||||
{
|
{
|
||||||
var firstSeriesFiles = Builder<EpisodeFile>.CreateListOfSize(10)
|
var firstSeriesFiles = Builder<EpisodeFile>.CreateListOfSize(10)
|
||||||
.All().With(s => s.SeriesId = 12).Build();
|
.All()
|
||||||
|
.With(c => c.Quality = QualityTypes.SDTV)
|
||||||
|
.With(s => s.SeriesId = 12).Build();
|
||||||
|
|
||||||
var secondSeriesFiles = Builder<EpisodeFile>.CreateListOfSize(10)
|
var secondSeriesFiles = Builder<EpisodeFile>.CreateListOfSize(10)
|
||||||
.All().With(s => s.SeriesId = 20).Build();
|
.All()
|
||||||
|
.With(c => c.Quality = QualityTypes.SDTV)
|
||||||
|
.With(s => s.SeriesId = 20).Build();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -51,12 +56,14 @@ namespace NzbDrone.Core.Test.ProviderTests
|
|||||||
{
|
{
|
||||||
var firstSeriesFiles = Builder<EpisodeFile>.CreateListOfSize(10)
|
var firstSeriesFiles = Builder<EpisodeFile>.CreateListOfSize(10)
|
||||||
.All()
|
.All()
|
||||||
|
.With(c => c.Quality = QualityTypes.SDTV)
|
||||||
.With(s => s.SeriesId = 12)
|
.With(s => s.SeriesId = 12)
|
||||||
.With(s => s.SeasonNumber = 1)
|
.With(s => s.SeasonNumber = 1)
|
||||||
.Build();
|
.Build();
|
||||||
|
|
||||||
var secondSeriesFiles = Builder<EpisodeFile>.CreateListOfSize(10)
|
var secondSeriesFiles = Builder<EpisodeFile>.CreateListOfSize(10)
|
||||||
.All()
|
.All()
|
||||||
|
.With(c => c.Quality = QualityTypes.SDTV)
|
||||||
.With(s => s.SeriesId = 12)
|
.With(s => s.SeriesId = 12)
|
||||||
.With(s => s.SeasonNumber = 2)
|
.With(s => s.SeasonNumber = 2)
|
||||||
.Build();
|
.Build();
|
||||||
@ -143,7 +150,11 @@ namespace NzbDrone.Core.Test.ProviderTests
|
|||||||
public void DeleteEpisodeFile()
|
public void DeleteEpisodeFile()
|
||||||
{
|
{
|
||||||
//Setup
|
//Setup
|
||||||
var episodeFiles = Builder<EpisodeFile>.CreateListOfSize(10).Build();
|
var episodeFiles = Builder<EpisodeFile>
|
||||||
|
.CreateListOfSize(10)
|
||||||
|
.All()
|
||||||
|
.With(c => c.Quality = QualityTypes.SDTV)
|
||||||
|
.Build();
|
||||||
|
|
||||||
|
|
||||||
var database = TestDbHelper.GetEmptyDatabase();
|
var database = TestDbHelper.GetEmptyDatabase();
|
||||||
@ -180,6 +191,7 @@ namespace NzbDrone.Core.Test.ProviderTests
|
|||||||
//Setup
|
//Setup
|
||||||
WithRealDb();
|
WithRealDb();
|
||||||
var episodeFile = Builder<EpisodeFile>.CreateNew()
|
var episodeFile = Builder<EpisodeFile>.CreateNew()
|
||||||
|
.With(c => c.Quality = QualityTypes.SDTV)
|
||||||
.With(f => f.Path = path.NormalizePath())
|
.With(f => f.Path = path.NormalizePath())
|
||||||
.Build();
|
.Build();
|
||||||
|
|
||||||
|
@ -9,6 +9,7 @@ using NzbDrone.Core.Model;
|
|||||||
using NzbDrone.Core.Providers;
|
using NzbDrone.Core.Providers;
|
||||||
using NzbDrone.Core.Providers.Core;
|
using NzbDrone.Core.Providers.Core;
|
||||||
using NzbDrone.Core.Repository;
|
using NzbDrone.Core.Repository;
|
||||||
|
using NzbDrone.Core.Repository.Quality;
|
||||||
using NzbDrone.Core.Test.Framework;
|
using NzbDrone.Core.Test.Framework;
|
||||||
|
|
||||||
namespace NzbDrone.Core.Test.ProviderTests.MediaFileProviderTests
|
namespace NzbDrone.Core.Test.ProviderTests.MediaFileProviderTests
|
||||||
@ -116,7 +117,11 @@ namespace NzbDrone.Core.Test.ProviderTests.MediaFileProviderTests
|
|||||||
public void DeleteOrphanedEpisodeFiles()
|
public void DeleteOrphanedEpisodeFiles()
|
||||||
{
|
{
|
||||||
//Setup
|
//Setup
|
||||||
var episodeFiles = Builder<EpisodeFile>.CreateListOfSize(10).Build();
|
var episodeFiles = Builder<EpisodeFile>
|
||||||
|
.CreateListOfSize(10)
|
||||||
|
.All()
|
||||||
|
.With(e => e.Quality = QualityTypes.DVD)
|
||||||
|
.Build();
|
||||||
var episodes = Builder<Episode>.CreateListOfSize(5).Build();
|
var episodes = Builder<Episode>.CreateListOfSize(5).Build();
|
||||||
|
|
||||||
Db.InsertMany(episodes);
|
Db.InsertMany(episodes);
|
||||||
|
@ -29,26 +29,24 @@ namespace NzbDrone.Core.Test.ProviderTests
|
|||||||
//Assert
|
//Assert
|
||||||
var types = Mocker.Resolve<QualityTypeProvider>().All();
|
var types = Mocker.Resolve<QualityTypeProvider>().All();
|
||||||
|
|
||||||
types.Should().HaveCount(6);
|
types.Should().HaveCount(7);
|
||||||
types.Should().Contain(e => e.Name == "SDTV" && e.QualityTypeId == 1);
|
types.Should().Contain(e => e.Name == "SDTV" && e.QualityTypeId == 1);
|
||||||
types.Should().Contain(e => e.Name == "DVD" && e.QualityTypeId == 2);
|
types.Should().Contain(e => e.Name == "DVD" && e.QualityTypeId == 2);
|
||||||
types.Should().Contain(e => e.Name == "HDTV" && e.QualityTypeId == 4);
|
types.Should().Contain(e => e.Name == "HDTV" && e.QualityTypeId == 4);
|
||||||
types.Should().Contain(e => e.Name == "WEBDL" && e.QualityTypeId == 5);
|
types.Should().Contain(e => e.Name == "WEBDL720p" && e.QualityTypeId == 5);
|
||||||
|
types.Should().Contain(e => e.Name == "WEBDL1080p" && e.QualityTypeId == 3);
|
||||||
types.Should().Contain(e => e.Name == "Bluray720p" && e.QualityTypeId == 6);
|
types.Should().Contain(e => e.Name == "Bluray720p" && e.QualityTypeId == 6);
|
||||||
types.Should().Contain(e => e.Name == "Bluray1080p" && e.QualityTypeId == 7);
|
types.Should().Contain(e => e.Name == "Bluray1080p" && e.QualityTypeId == 7);
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
public void SetupDefault_already_exists()
|
public void SetupDefault_already_exists_should_insert_missing()
|
||||||
{
|
{
|
||||||
|
|
||||||
var db = TestDbHelper.GetEmptyDatabase();
|
var db = TestDbHelper.GetEmptyDatabase();
|
||||||
Mocker.SetConstant(db);
|
Mocker.SetConstant(db);
|
||||||
|
|
||||||
var fakeQualityType = Builder<QualityType>.CreateNew()
|
db.Insert(new QualityType { QualityTypeId = 1, Name = "SDTV", MinSize = 0, MaxSize = 100 });
|
||||||
.Build();
|
|
||||||
|
|
||||||
db.Insert(fakeQualityType);
|
|
||||||
|
|
||||||
//Act
|
//Act
|
||||||
Mocker.Resolve<QualityTypeProvider>().SetupDefault();
|
Mocker.Resolve<QualityTypeProvider>().SetupDefault();
|
||||||
@ -56,7 +54,7 @@ namespace NzbDrone.Core.Test.ProviderTests
|
|||||||
//Assert
|
//Assert
|
||||||
var types = Mocker.Resolve<QualityTypeProvider>().All();
|
var types = Mocker.Resolve<QualityTypeProvider>().All();
|
||||||
|
|
||||||
types.Should().HaveCount(1);
|
types.Should().HaveCount(7);
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
|
@ -37,6 +37,8 @@ namespace NzbDrone.Core.Test.ProviderTests
|
|||||||
.Build();
|
.Build();
|
||||||
|
|
||||||
var items = Builder<SearchHistoryItem>.CreateListOfSize(10)
|
var items = Builder<SearchHistoryItem>.CreateListOfSize(10)
|
||||||
|
.All()
|
||||||
|
.With(c => c.Quality = QualityTypes.SDTV)
|
||||||
.Build().ToList();
|
.Build().ToList();
|
||||||
|
|
||||||
_searchHistory = Builder<SearchHistory>.CreateNew()
|
_searchHistory = Builder<SearchHistory>.CreateNew()
|
||||||
@ -77,6 +79,7 @@ namespace NzbDrone.Core.Test.ProviderTests
|
|||||||
{
|
{
|
||||||
var items = Builder<SearchHistoryItem>.CreateListOfSize(10)
|
var items = Builder<SearchHistoryItem>.CreateListOfSize(10)
|
||||||
.All()
|
.All()
|
||||||
|
.With(c => c.Quality = QualityTypes.SDTV)
|
||||||
.With(i => i.Id == searchHistory.Id)
|
.With(i => i.Id == searchHistory.Id)
|
||||||
.Build();
|
.Build();
|
||||||
|
|
||||||
@ -97,6 +100,7 @@ namespace NzbDrone.Core.Test.ProviderTests
|
|||||||
{
|
{
|
||||||
var items = Builder<SearchHistoryItem>.CreateListOfSize(10)
|
var items = Builder<SearchHistoryItem>.CreateListOfSize(10)
|
||||||
.All()
|
.All()
|
||||||
|
.With(c => c.Quality = QualityTypes.SDTV)
|
||||||
.With(i => i.Id == searchHistory.Id)
|
.With(i => i.Id == searchHistory.Id)
|
||||||
.Build();
|
.Build();
|
||||||
|
|
||||||
|
@ -93,16 +93,16 @@ namespace NzbDrone.Core.Test.ProviderTests.SearchProviderTests
|
|||||||
var parseResults = Builder<EpisodeParseResult>.CreateListOfSize(5)
|
var parseResults = Builder<EpisodeParseResult>.CreateListOfSize(5)
|
||||||
.All()
|
.All()
|
||||||
.With(c => c.AirDate = DateTime.Today)
|
.With(c => c.AirDate = DateTime.Today)
|
||||||
.With(c => c.Quality = new Quality(QualityTypes.DVD, true))
|
.With(c => c.Quality = new QualityModel(QualityTypes.DVD, true))
|
||||||
.Random(1)
|
.Random(1)
|
||||||
.With(c => c.Quality = new Quality(QualityTypes.Bluray1080p, true))
|
.With(c => c.Quality = new QualityModel(QualityTypes.Bluray1080p, true))
|
||||||
.Build();
|
.Build();
|
||||||
|
|
||||||
WithMatchingSeries();
|
WithMatchingSeries();
|
||||||
WithSuccessfulDownload();
|
WithSuccessfulDownload();
|
||||||
|
|
||||||
Mocker.GetMock<AllowedDownloadSpecification>()
|
Mocker.GetMock<AllowedDownloadSpecification>()
|
||||||
.Setup(s => s.IsSatisfiedBy(It.Is<EpisodeParseResult>(d => d.Quality.QualityType == QualityTypes.Bluray1080p)))
|
.Setup(s => s.IsSatisfiedBy(It.Is<EpisodeParseResult>(d => d.Quality.Quality == QualityTypes.Bluray1080p)))
|
||||||
.Returns(ReportRejectionType.None);
|
.Returns(ReportRejectionType.None);
|
||||||
|
|
||||||
//Act
|
//Act
|
||||||
@ -123,7 +123,7 @@ namespace NzbDrone.Core.Test.ProviderTests.SearchProviderTests
|
|||||||
var parseResults = Builder<EpisodeParseResult>.CreateListOfSize(5)
|
var parseResults = Builder<EpisodeParseResult>.CreateListOfSize(5)
|
||||||
.All()
|
.All()
|
||||||
.With(c => c.AirDate = DateTime.Today)
|
.With(c => c.AirDate = DateTime.Today)
|
||||||
.With(c => c.Quality = new Quality(QualityTypes.DVD, true))
|
.With(c => c.Quality = new QualityModel(QualityTypes.DVD, true))
|
||||||
.Build();
|
.Build();
|
||||||
|
|
||||||
WithMatchingSeries();
|
WithMatchingSeries();
|
||||||
@ -147,7 +147,7 @@ namespace NzbDrone.Core.Test.ProviderTests.SearchProviderTests
|
|||||||
var parseResults = Builder<EpisodeParseResult>.CreateListOfSize(5)
|
var parseResults = Builder<EpisodeParseResult>.CreateListOfSize(5)
|
||||||
.All()
|
.All()
|
||||||
.With(e => e.AirDate = DateTime.Today)
|
.With(e => e.AirDate = DateTime.Today)
|
||||||
.With(e => e.Quality = new Quality(QualityTypes.HDTV, false))
|
.With(e => e.Quality = new QualityModel(QualityTypes.HDTV, false))
|
||||||
.Build();
|
.Build();
|
||||||
|
|
||||||
WithNullSeries();
|
WithNullSeries();
|
||||||
@ -168,7 +168,7 @@ namespace NzbDrone.Core.Test.ProviderTests.SearchProviderTests
|
|||||||
var parseResults = Builder<EpisodeParseResult>.CreateListOfSize(5)
|
var parseResults = Builder<EpisodeParseResult>.CreateListOfSize(5)
|
||||||
.All()
|
.All()
|
||||||
.With(e => e.AirDate = DateTime.Today)
|
.With(e => e.AirDate = DateTime.Today)
|
||||||
.With(e => e.Quality = new Quality(QualityTypes.HDTV, false))
|
.With(e => e.Quality = new QualityModel(QualityTypes.HDTV, false))
|
||||||
.Build();
|
.Build();
|
||||||
|
|
||||||
WithMisMatchedSeries();
|
WithMisMatchedSeries();
|
||||||
@ -189,7 +189,7 @@ namespace NzbDrone.Core.Test.ProviderTests.SearchProviderTests
|
|||||||
var parseResults = Builder<EpisodeParseResult>.CreateListOfSize(2)
|
var parseResults = Builder<EpisodeParseResult>.CreateListOfSize(2)
|
||||||
.All()
|
.All()
|
||||||
.With(e => e.AirDate = DateTime.Today)
|
.With(e => e.AirDate = DateTime.Today)
|
||||||
.With(c => c.Quality = new Quality(QualityTypes.DVD, true))
|
.With(c => c.Quality = new QualityModel(QualityTypes.DVD, true))
|
||||||
.Build();
|
.Build();
|
||||||
|
|
||||||
WithMatchingSeries();
|
WithMatchingSeries();
|
||||||
@ -212,20 +212,20 @@ namespace NzbDrone.Core.Test.ProviderTests.SearchProviderTests
|
|||||||
var parseResults = Builder<EpisodeParseResult>.CreateListOfSize(2)
|
var parseResults = Builder<EpisodeParseResult>.CreateListOfSize(2)
|
||||||
.All()
|
.All()
|
||||||
.With(e => e.AirDate = DateTime.Today)
|
.With(e => e.AirDate = DateTime.Today)
|
||||||
.With(c => c.Quality = new Quality(QualityTypes.DVD, true))
|
.With(c => c.Quality = new QualityModel(QualityTypes.DVD, true))
|
||||||
.TheLast(1)
|
.TheLast(1)
|
||||||
.With(c => c.Quality = new Quality(QualityTypes.SDTV, true))
|
.With(c => c.Quality = new QualityModel(QualityTypes.SDTV, true))
|
||||||
.Build();
|
.Build();
|
||||||
|
|
||||||
WithMatchingSeries();
|
WithMatchingSeries();
|
||||||
WithQualityNeeded();
|
WithQualityNeeded();
|
||||||
|
|
||||||
Mocker.GetMock<DownloadProvider>()
|
Mocker.GetMock<DownloadProvider>()
|
||||||
.Setup(s => s.DownloadReport(It.Is<EpisodeParseResult>(d => d.Quality.QualityType == QualityTypes.DVD)))
|
.Setup(s => s.DownloadReport(It.Is<EpisodeParseResult>(d => d.Quality.Quality == QualityTypes.DVD)))
|
||||||
.Returns(false);
|
.Returns(false);
|
||||||
|
|
||||||
Mocker.GetMock<DownloadProvider>()
|
Mocker.GetMock<DownloadProvider>()
|
||||||
.Setup(s => s.DownloadReport(It.Is<EpisodeParseResult>(d => d.Quality.QualityType == QualityTypes.SDTV)))
|
.Setup(s => s.DownloadReport(It.Is<EpisodeParseResult>(d => d.Quality.Quality == QualityTypes.SDTV)))
|
||||||
.Returns(true);
|
.Returns(true);
|
||||||
|
|
||||||
//Act
|
//Act
|
||||||
@ -244,7 +244,7 @@ namespace NzbDrone.Core.Test.ProviderTests.SearchProviderTests
|
|||||||
var parseResults = Builder<EpisodeParseResult>.CreateListOfSize(5)
|
var parseResults = Builder<EpisodeParseResult>.CreateListOfSize(5)
|
||||||
.All()
|
.All()
|
||||||
.With(e => e.AirDate = null)
|
.With(e => e.AirDate = null)
|
||||||
.With(e => e.Quality = new Quality(QualityTypes.HDTV, false))
|
.With(e => e.Quality = new QualityModel(QualityTypes.HDTV, false))
|
||||||
.Build();
|
.Build();
|
||||||
|
|
||||||
WithMatchingSeries();
|
WithMatchingSeries();
|
||||||
@ -265,7 +265,7 @@ namespace NzbDrone.Core.Test.ProviderTests.SearchProviderTests
|
|||||||
var parseResults = Builder<EpisodeParseResult>.CreateListOfSize(5)
|
var parseResults = Builder<EpisodeParseResult>.CreateListOfSize(5)
|
||||||
.All()
|
.All()
|
||||||
.With(e => e.AirDate = DateTime.Today.AddDays(10))
|
.With(e => e.AirDate = DateTime.Today.AddDays(10))
|
||||||
.With(e => e.Quality = new Quality(QualityTypes.HDTV, false))
|
.With(e => e.Quality = new QualityModel(QualityTypes.HDTV, false))
|
||||||
.Build();
|
.Build();
|
||||||
|
|
||||||
WithMatchingSeries();
|
WithMatchingSeries();
|
||||||
|
@ -91,10 +91,10 @@ namespace NzbDrone.Core.Test.ProviderTests.SearchProviderTests
|
|||||||
.All()
|
.All()
|
||||||
.With(e => e.SeasonNumber = 1)
|
.With(e => e.SeasonNumber = 1)
|
||||||
.With(e => e.EpisodeNumbers = new List<int> { 1 })
|
.With(e => e.EpisodeNumbers = new List<int> { 1 })
|
||||||
.With(c => c.Quality = new Quality(QualityTypes.DVD, true))
|
.With(c => c.Quality = new QualityModel(QualityTypes.DVD, true))
|
||||||
.With(c => c.Age = 10)
|
.With(c => c.Age = 10)
|
||||||
.Random(1)
|
.Random(1)
|
||||||
.With(c => c.Quality = new Quality(QualityTypes.Bluray1080p, true))
|
.With(c => c.Quality = new QualityModel(QualityTypes.Bluray1080p, true))
|
||||||
.With(c => c.Age = 100)
|
.With(c => c.Age = 100)
|
||||||
.Build();
|
.Build();
|
||||||
|
|
||||||
@ -102,7 +102,7 @@ namespace NzbDrone.Core.Test.ProviderTests.SearchProviderTests
|
|||||||
WithSuccessfulDownload();
|
WithSuccessfulDownload();
|
||||||
|
|
||||||
Mocker.GetMock<AllowedDownloadSpecification>()
|
Mocker.GetMock<AllowedDownloadSpecification>()
|
||||||
.Setup(s => s.IsSatisfiedBy(It.Is<EpisodeParseResult>(d => d.Quality.QualityType == QualityTypes.Bluray1080p)))
|
.Setup(s => s.IsSatisfiedBy(It.Is<EpisodeParseResult>(d => d.Quality.Quality == QualityTypes.Bluray1080p)))
|
||||||
.Returns(ReportRejectionType.None);
|
.Returns(ReportRejectionType.None);
|
||||||
|
|
||||||
//Act
|
//Act
|
||||||
@ -125,7 +125,7 @@ namespace NzbDrone.Core.Test.ProviderTests.SearchProviderTests
|
|||||||
.All()
|
.All()
|
||||||
.With(e => e.SeasonNumber = 1)
|
.With(e => e.SeasonNumber = 1)
|
||||||
.With(e => e.EpisodeNumbers = new List<int> { 1 })
|
.With(e => e.EpisodeNumbers = new List<int> { 1 })
|
||||||
.With(c => c.Quality = new Quality(QualityTypes.Bluray1080p, true))
|
.With(c => c.Quality = new QualityModel(QualityTypes.Bluray1080p, true))
|
||||||
.With(c => c.Age = 300)
|
.With(c => c.Age = 300)
|
||||||
.Build();
|
.Build();
|
||||||
|
|
||||||
@ -157,7 +157,7 @@ namespace NzbDrone.Core.Test.ProviderTests.SearchProviderTests
|
|||||||
.All()
|
.All()
|
||||||
.With(e => e.SeasonNumber = 1)
|
.With(e => e.SeasonNumber = 1)
|
||||||
.With(e => e.EpisodeNumbers = new List<int> { 1 })
|
.With(e => e.EpisodeNumbers = new List<int> { 1 })
|
||||||
.With(c => c.Quality = new Quality(QualityTypes.DVD, true))
|
.With(c => c.Quality = new QualityModel(QualityTypes.DVD, true))
|
||||||
.Build();
|
.Build();
|
||||||
|
|
||||||
WithMatchingSeries();
|
WithMatchingSeries();
|
||||||
@ -183,7 +183,7 @@ namespace NzbDrone.Core.Test.ProviderTests.SearchProviderTests
|
|||||||
.All()
|
.All()
|
||||||
.With(e => e.SeasonNumber = 1)
|
.With(e => e.SeasonNumber = 1)
|
||||||
.With(e => e.EpisodeNumbers = new List<int> { 1 })
|
.With(e => e.EpisodeNumbers = new List<int> { 1 })
|
||||||
.With(e => e.Quality = new Quality(QualityTypes.HDTV, false))
|
.With(e => e.Quality = new QualityModel(QualityTypes.HDTV, false))
|
||||||
.Build();
|
.Build();
|
||||||
|
|
||||||
WithNullSeries();
|
WithNullSeries();
|
||||||
@ -206,7 +206,7 @@ namespace NzbDrone.Core.Test.ProviderTests.SearchProviderTests
|
|||||||
.All()
|
.All()
|
||||||
.With(e => e.SeasonNumber = 1)
|
.With(e => e.SeasonNumber = 1)
|
||||||
.With(e => e.EpisodeNumbers = new List<int> { 1 })
|
.With(e => e.EpisodeNumbers = new List<int> { 1 })
|
||||||
.With(e => e.Quality = new Quality(QualityTypes.HDTV, false))
|
.With(e => e.Quality = new QualityModel(QualityTypes.HDTV, false))
|
||||||
.Build();
|
.Build();
|
||||||
|
|
||||||
WithMisMatchedSeries();
|
WithMisMatchedSeries();
|
||||||
@ -229,7 +229,7 @@ namespace NzbDrone.Core.Test.ProviderTests.SearchProviderTests
|
|||||||
.All()
|
.All()
|
||||||
.With(e => e.SeasonNumber = 2)
|
.With(e => e.SeasonNumber = 2)
|
||||||
.With(e => e.EpisodeNumbers = new List<int> { 1 })
|
.With(e => e.EpisodeNumbers = new List<int> { 1 })
|
||||||
.With(e => e.Quality = new Quality(QualityTypes.HDTV, false))
|
.With(e => e.Quality = new QualityModel(QualityTypes.HDTV, false))
|
||||||
.Build();
|
.Build();
|
||||||
|
|
||||||
WithMatchingSeries();
|
WithMatchingSeries();
|
||||||
@ -252,7 +252,7 @@ namespace NzbDrone.Core.Test.ProviderTests.SearchProviderTests
|
|||||||
.All()
|
.All()
|
||||||
.With(e => e.SeasonNumber = 1)
|
.With(e => e.SeasonNumber = 1)
|
||||||
.With(e => e.EpisodeNumbers = new List<int> { 2 })
|
.With(e => e.EpisodeNumbers = new List<int> { 2 })
|
||||||
.With(e => e.Quality = new Quality(QualityTypes.HDTV, false))
|
.With(e => e.Quality = new QualityModel(QualityTypes.HDTV, false))
|
||||||
.Build();
|
.Build();
|
||||||
|
|
||||||
WithMatchingSeries();
|
WithMatchingSeries();
|
||||||
@ -275,7 +275,7 @@ namespace NzbDrone.Core.Test.ProviderTests.SearchProviderTests
|
|||||||
.All()
|
.All()
|
||||||
.With(e => e.SeasonNumber = 1)
|
.With(e => e.SeasonNumber = 1)
|
||||||
.With(e => e.EpisodeNumbers = new List<int> { 5 })
|
.With(e => e.EpisodeNumbers = new List<int> { 5 })
|
||||||
.With(c => c.Quality = new Quality(QualityTypes.DVD, true))
|
.With(c => c.Quality = new QualityModel(QualityTypes.DVD, true))
|
||||||
.TheLast(1)
|
.TheLast(1)
|
||||||
.With(e => e.EpisodeNumbers = new List<int> { 1, 2, 3, 4, 5 })
|
.With(e => e.EpisodeNumbers = new List<int> { 1, 2, 3, 4, 5 })
|
||||||
.Build();
|
.Build();
|
||||||
@ -302,20 +302,20 @@ namespace NzbDrone.Core.Test.ProviderTests.SearchProviderTests
|
|||||||
.All()
|
.All()
|
||||||
.With(e => e.SeasonNumber = 1)
|
.With(e => e.SeasonNumber = 1)
|
||||||
.With(e => e.EpisodeNumbers = new List<int> { 1 })
|
.With(e => e.EpisodeNumbers = new List<int> { 1 })
|
||||||
.With(c => c.Quality = new Quality(QualityTypes.DVD, true))
|
.With(c => c.Quality = new QualityModel(QualityTypes.DVD, true))
|
||||||
.TheLast(1)
|
.TheLast(1)
|
||||||
.With(c => c.Quality = new Quality(QualityTypes.SDTV, true))
|
.With(c => c.Quality = new QualityModel(QualityTypes.SDTV, true))
|
||||||
.Build();
|
.Build();
|
||||||
|
|
||||||
WithMatchingSeries();
|
WithMatchingSeries();
|
||||||
WithQualityNeeded();
|
WithQualityNeeded();
|
||||||
|
|
||||||
Mocker.GetMock<DownloadProvider>()
|
Mocker.GetMock<DownloadProvider>()
|
||||||
.Setup(s => s.DownloadReport(It.Is<EpisodeParseResult>(d => d.Quality.QualityType == QualityTypes.DVD)))
|
.Setup(s => s.DownloadReport(It.Is<EpisodeParseResult>(d => d.Quality.Quality == QualityTypes.DVD)))
|
||||||
.Returns(false);
|
.Returns(false);
|
||||||
|
|
||||||
Mocker.GetMock<DownloadProvider>()
|
Mocker.GetMock<DownloadProvider>()
|
||||||
.Setup(s => s.DownloadReport(It.Is<EpisodeParseResult>(d => d.Quality.QualityType == QualityTypes.SDTV)))
|
.Setup(s => s.DownloadReport(It.Is<EpisodeParseResult>(d => d.Quality.Quality == QualityTypes.SDTV)))
|
||||||
.Returns(true);
|
.Returns(true);
|
||||||
|
|
||||||
//Act
|
//Act
|
||||||
@ -336,10 +336,10 @@ namespace NzbDrone.Core.Test.ProviderTests.SearchProviderTests
|
|||||||
.All()
|
.All()
|
||||||
.With(e => e.SeasonNumber = 1)
|
.With(e => e.SeasonNumber = 1)
|
||||||
.With(e => e.EpisodeNumbers = new List<int> { 1 })
|
.With(e => e.EpisodeNumbers = new List<int> { 1 })
|
||||||
.With(c => c.Quality = new Quality(QualityTypes.DVD, true))
|
.With(c => c.Quality = new QualityModel(QualityTypes.DVD, true))
|
||||||
.With(c => c.Age = 10)
|
.With(c => c.Age = 10)
|
||||||
.Random(1)
|
.Random(1)
|
||||||
.With(c => c.Quality = new Quality(QualityTypes.Bluray1080p, true))
|
.With(c => c.Quality = new QualityModel(QualityTypes.Bluray1080p, true))
|
||||||
.With(c => c.Age = 100)
|
.With(c => c.Age = 100)
|
||||||
.Build();
|
.Build();
|
||||||
|
|
||||||
@ -349,7 +349,7 @@ namespace NzbDrone.Core.Test.ProviderTests.SearchProviderTests
|
|||||||
WithSuccessfulDownload();
|
WithSuccessfulDownload();
|
||||||
|
|
||||||
Mocker.GetMock<AllowedDownloadSpecification>()
|
Mocker.GetMock<AllowedDownloadSpecification>()
|
||||||
.Setup(s => s.IsSatisfiedBy(It.Is<EpisodeParseResult>(d => d.Quality.QualityType == QualityTypes.Bluray1080p)))
|
.Setup(s => s.IsSatisfiedBy(It.Is<EpisodeParseResult>(d => d.Quality.Quality == QualityTypes.Bluray1080p)))
|
||||||
.Returns(ReportRejectionType.None);
|
.Returns(ReportRejectionType.None);
|
||||||
|
|
||||||
//Act
|
//Act
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
using System;
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
|
||||||
using FizzWare.NBuilder;
|
using FizzWare.NBuilder;
|
||||||
@ -16,6 +17,19 @@ namespace NzbDrone.Core.Test.ProviderTests
|
|||||||
[TestFixture]
|
[TestFixture]
|
||||||
public class SeriesProviderTest : CoreTest
|
public class SeriesProviderTest : CoreTest
|
||||||
{
|
{
|
||||||
|
private IList<QualityProfile> _qualityProfiles;
|
||||||
|
|
||||||
|
[SetUp]
|
||||||
|
public void Setup()
|
||||||
|
{
|
||||||
|
_qualityProfiles = Builder<QualityProfile>
|
||||||
|
.CreateListOfSize(2)
|
||||||
|
.All()
|
||||||
|
.With(p => p.Cutoff = QualityTypes.DVD)
|
||||||
|
.With(p => p.Allowed = new List<QualityTypes> { QualityTypes.SDTV, QualityTypes.DVD })
|
||||||
|
.Build();
|
||||||
|
}
|
||||||
|
|
||||||
[TestCase(true)]
|
[TestCase(true)]
|
||||||
[TestCase(false)]
|
[TestCase(false)]
|
||||||
public void Add_new_series(bool useSeasonFolder)
|
public void Add_new_series(bool useSeasonFolder)
|
||||||
@ -25,7 +39,12 @@ namespace NzbDrone.Core.Test.ProviderTests
|
|||||||
Mocker.GetMock<ConfigProvider>()
|
Mocker.GetMock<ConfigProvider>()
|
||||||
.Setup(c => c.UseSeasonFolder).Returns(useSeasonFolder);
|
.Setup(c => c.UseSeasonFolder).Returns(useSeasonFolder);
|
||||||
|
|
||||||
var fakeProfiles = Builder<QualityProfile>.CreateListOfSize(2).Build();
|
var fakeProfiles = Builder<QualityProfile>
|
||||||
|
.CreateListOfSize(2)
|
||||||
|
.All()
|
||||||
|
.With(p => p.Cutoff = QualityTypes.DVD)
|
||||||
|
.With(p => p.Allowed = new List<QualityTypes> { QualityTypes.SDTV, QualityTypes.DVD })
|
||||||
|
.Build();
|
||||||
|
|
||||||
Db.InsertMany(fakeProfiles);
|
Db.InsertMany(fakeProfiles);
|
||||||
|
|
||||||
@ -96,7 +115,12 @@ namespace NzbDrone.Core.Test.ProviderTests
|
|||||||
.With(c => c.EpisodeFileCount = 0)
|
.With(c => c.EpisodeFileCount = 0)
|
||||||
.With(c => c.SeasonCount = 0)
|
.With(c => c.SeasonCount = 0)
|
||||||
.Build();
|
.Build();
|
||||||
var fakeQuality = Builder<QualityProfile>.CreateNew().Build();
|
|
||||||
|
var fakeQuality = Builder<QualityProfile>
|
||||||
|
.CreateNew()
|
||||||
|
.With(p => p.Cutoff = QualityTypes.DVD)
|
||||||
|
.With(p => p.Allowed = new List<QualityTypes> { QualityTypes.SDTV, QualityTypes.DVD })
|
||||||
|
.Build();
|
||||||
|
|
||||||
Db.Insert(fakeSeries);
|
Db.Insert(fakeSeries);
|
||||||
Db.Insert(fakeQuality);
|
Db.Insert(fakeQuality);
|
||||||
@ -121,7 +145,12 @@ namespace NzbDrone.Core.Test.ProviderTests
|
|||||||
.With(c => c.QualityProfileId = 1)
|
.With(c => c.QualityProfileId = 1)
|
||||||
.With(c => c.CleanTitle = "laworder")
|
.With(c => c.CleanTitle = "laworder")
|
||||||
.Build();
|
.Build();
|
||||||
var fakeQuality = Builder<QualityProfile>.CreateNew().Build();
|
|
||||||
|
var fakeQuality = Builder<QualityProfile>
|
||||||
|
.CreateNew()
|
||||||
|
.With(p => p.Cutoff = QualityTypes.DVD)
|
||||||
|
.With(p => p.Allowed = new List<QualityTypes> { QualityTypes.SDTV, QualityTypes.DVD })
|
||||||
|
.Build();
|
||||||
|
|
||||||
var id = Db.Insert(fakeSeries);
|
var id = Db.Insert(fakeSeries);
|
||||||
Db.Insert(fakeQuality);
|
Db.Insert(fakeQuality);
|
||||||
@ -168,6 +197,8 @@ namespace NzbDrone.Core.Test.ProviderTests
|
|||||||
|
|
||||||
var fakeQuality = Builder<QualityProfile>.CreateNew()
|
var fakeQuality = Builder<QualityProfile>.CreateNew()
|
||||||
.With(c => c.QualityProfileId = fakeSeries.QualityProfileId)
|
.With(c => c.QualityProfileId = fakeSeries.QualityProfileId)
|
||||||
|
.With(p => p.Cutoff = QualityTypes.DVD)
|
||||||
|
.With(p => p.Allowed = new List<QualityTypes> { QualityTypes.SDTV, QualityTypes.DVD })
|
||||||
.Build();
|
.Build();
|
||||||
|
|
||||||
Db.Insert(fakeSeries);
|
Db.Insert(fakeSeries);
|
||||||
@ -197,7 +228,11 @@ namespace NzbDrone.Core.Test.ProviderTests
|
|||||||
.With(c => c.SeriesId = 11)
|
.With(c => c.SeriesId = 11)
|
||||||
.Build());
|
.Build());
|
||||||
|
|
||||||
Db.InsertMany(Builder<QualityProfile>.CreateListOfSize(3).Build());
|
Db.InsertMany(Builder<QualityProfile>.CreateListOfSize(3)
|
||||||
|
.All()
|
||||||
|
.With(p => p.Cutoff = QualityTypes.DVD)
|
||||||
|
.With(p => p.Allowed = new List<QualityTypes> { QualityTypes.SDTV, QualityTypes.DVD })
|
||||||
|
.Build());
|
||||||
|
|
||||||
//Act, Assert
|
//Act, Assert
|
||||||
var provider = Mocker.Resolve<SeriesProvider>();
|
var provider = Mocker.Resolve<SeriesProvider>();
|
||||||
@ -211,7 +246,7 @@ namespace NzbDrone.Core.Test.ProviderTests
|
|||||||
{
|
{
|
||||||
WithRealDb();
|
WithRealDb();
|
||||||
|
|
||||||
var fakeQuality = Builder<QualityProfile>.CreateNew().Build();
|
var fakeQuality = Builder<QualityProfile>.CreateNew().With(p => p.Cutoff = QualityTypes.DVD).With(p => p.Allowed = new List<QualityTypes> { QualityTypes.SDTV, QualityTypes.DVD }).Build();
|
||||||
var fakeSeries = Builder<Series>.CreateNew().With(e => e.QualityProfileId = fakeQuality.QualityProfileId).Build();
|
var fakeSeries = Builder<Series>.CreateNew().With(e => e.QualityProfileId = fakeQuality.QualityProfileId).Build();
|
||||||
var fakeEpisodes = Builder<Episode>.CreateListOfSize(10)
|
var fakeEpisodes = Builder<Episode>.CreateListOfSize(10)
|
||||||
.All().With(e => e.SeriesId = fakeSeries.SeriesId)
|
.All().With(e => e.SeriesId = fakeSeries.SeriesId)
|
||||||
@ -242,7 +277,7 @@ namespace NzbDrone.Core.Test.ProviderTests
|
|||||||
{
|
{
|
||||||
WithRealDb();
|
WithRealDb();
|
||||||
|
|
||||||
var fakeQuality = Builder<QualityProfile>.CreateNew().Build();
|
var fakeQuality = Builder<QualityProfile>.CreateNew().With(p => p.Cutoff = QualityTypes.DVD).With(p => p.Allowed = new List<QualityTypes> { QualityTypes.SDTV, QualityTypes.DVD }).Build();
|
||||||
var fakeSeries = Builder<Series>.CreateNew().With(e => e.QualityProfileId = fakeQuality.QualityProfileId).Build();
|
var fakeSeries = Builder<Series>.CreateNew().With(e => e.QualityProfileId = fakeQuality.QualityProfileId).Build();
|
||||||
var fakeEpisodes = Builder<Episode>.CreateListOfSize(10).All().With(e => e.SeriesId = fakeSeries.SeriesId).With(e => e.Ignored = true).Random(5).With(e => e.EpisodeFileId = 0).Build();
|
var fakeEpisodes = Builder<Episode>.CreateListOfSize(10).All().With(e => e.SeriesId = fakeSeries.SeriesId).With(e => e.Ignored = true).Random(5).With(e => e.EpisodeFileId = 0).Build();
|
||||||
|
|
||||||
@ -265,7 +300,7 @@ namespace NzbDrone.Core.Test.ProviderTests
|
|||||||
{
|
{
|
||||||
WithRealDb();
|
WithRealDb();
|
||||||
|
|
||||||
var fakeQuality = Builder<QualityProfile>.CreateNew().Build();
|
var fakeQuality = Builder<QualityProfile>.CreateNew().With(p => p.Cutoff = QualityTypes.DVD).With(p => p.Allowed = new List<QualityTypes> { QualityTypes.SDTV, QualityTypes.DVD }).Build();
|
||||||
var fakeSeries = Builder<Series>.CreateNew().With(e => e.QualityProfileId = fakeQuality.QualityProfileId).Build();
|
var fakeSeries = Builder<Series>.CreateNew().With(e => e.QualityProfileId = fakeQuality.QualityProfileId).Build();
|
||||||
var fakeEpisodes = Builder<Episode>.CreateListOfSize(10)
|
var fakeEpisodes = Builder<Episode>.CreateListOfSize(10)
|
||||||
.All()
|
.All()
|
||||||
@ -293,7 +328,7 @@ namespace NzbDrone.Core.Test.ProviderTests
|
|||||||
{
|
{
|
||||||
WithRealDb();
|
WithRealDb();
|
||||||
|
|
||||||
var fakeQuality = Builder<QualityProfile>.CreateNew().Build();
|
var fakeQuality = Builder<QualityProfile>.CreateNew().With(p => p.Cutoff = QualityTypes.DVD).With(p => p.Allowed = new List<QualityTypes> { QualityTypes.SDTV, QualityTypes.DVD }).Build();
|
||||||
var fakeSeries = Builder<Series>.CreateNew().With(e => e.QualityProfileId = fakeQuality.QualityProfileId).Build();
|
var fakeSeries = Builder<Series>.CreateNew().With(e => e.QualityProfileId = fakeQuality.QualityProfileId).Build();
|
||||||
var fakeEpisodes = Builder<Episode>.CreateListOfSize(10)
|
var fakeEpisodes = Builder<Episode>.CreateListOfSize(10)
|
||||||
.All()
|
.All()
|
||||||
@ -324,7 +359,7 @@ namespace NzbDrone.Core.Test.ProviderTests
|
|||||||
{
|
{
|
||||||
WithRealDb();
|
WithRealDb();
|
||||||
|
|
||||||
var fakeQuality = Builder<QualityProfile>.CreateNew().Build();
|
var fakeQuality = Builder<QualityProfile>.CreateNew().With(p => p.Cutoff = QualityTypes.DVD).With(p => p.Allowed = new List<QualityTypes> { QualityTypes.SDTV, QualityTypes.DVD }).Build();
|
||||||
|
|
||||||
var fakeSeries = Builder<Series>.CreateListOfSize(5)
|
var fakeSeries = Builder<Series>.CreateListOfSize(5)
|
||||||
.All()
|
.All()
|
||||||
@ -360,7 +395,7 @@ namespace NzbDrone.Core.Test.ProviderTests
|
|||||||
{
|
{
|
||||||
WithRealDb();
|
WithRealDb();
|
||||||
|
|
||||||
var fakeQuality = Builder<QualityProfile>.CreateNew().Build();
|
var fakeQuality = Builder<QualityProfile>.CreateNew().With(p => p.Cutoff = QualityTypes.DVD).With(p => p.Allowed = new List<QualityTypes> { QualityTypes.SDTV, QualityTypes.DVD }).Build();
|
||||||
var fakeSeries = Builder<Series>.CreateNew()
|
var fakeSeries = Builder<Series>.CreateNew()
|
||||||
.With(e => e.QualityProfileId = fakeQuality.QualityProfileId)
|
.With(e => e.QualityProfileId = fakeQuality.QualityProfileId)
|
||||||
.With(e => e.SeriesId = 1)
|
.With(e => e.SeriesId = 1)
|
||||||
@ -391,7 +426,7 @@ namespace NzbDrone.Core.Test.ProviderTests
|
|||||||
.TheFirst(1)
|
.TheFirst(1)
|
||||||
.With(c => c.Path = path)
|
.With(c => c.Path = path)
|
||||||
.Build();
|
.Build();
|
||||||
var fakeQuality = Builder<QualityProfile>.CreateNew().Build();
|
var fakeQuality = Builder<QualityProfile>.CreateNew().With(p => p.Cutoff = QualityTypes.DVD).With(p => p.Allowed = new List<QualityTypes> { QualityTypes.SDTV, QualityTypes.DVD }).Build();
|
||||||
|
|
||||||
Db.InsertMany(fakeSeries);
|
Db.InsertMany(fakeSeries);
|
||||||
Db.Insert(fakeQuality);
|
Db.Insert(fakeQuality);
|
||||||
@ -420,7 +455,7 @@ namespace NzbDrone.Core.Test.ProviderTests
|
|||||||
.TheFirst(1)
|
.TheFirst(1)
|
||||||
.With(c => c.Path = path)
|
.With(c => c.Path = path)
|
||||||
.Build();
|
.Build();
|
||||||
var fakeQuality = Builder<QualityProfile>.CreateNew().Build();
|
var fakeQuality = Builder<QualityProfile>.CreateNew().With(p => p.Cutoff = QualityTypes.DVD).With(p => p.Allowed = new List<QualityTypes> { QualityTypes.SDTV, QualityTypes.DVD }).Build();
|
||||||
|
|
||||||
Db.InsertMany(fakeSeries);
|
Db.InsertMany(fakeSeries);
|
||||||
Db.Insert(fakeQuality);
|
Db.Insert(fakeQuality);
|
||||||
@ -449,7 +484,7 @@ namespace NzbDrone.Core.Test.ProviderTests
|
|||||||
.TheFirst(1)
|
.TheFirst(1)
|
||||||
.With(c => c.Path = path)
|
.With(c => c.Path = path)
|
||||||
.Build();
|
.Build();
|
||||||
var fakeQuality = Builder<QualityProfile>.CreateNew().Build();
|
var fakeQuality = Builder<QualityProfile>.CreateNew().With(p => p.Cutoff = QualityTypes.DVD).With(p => p.Allowed = new List<QualityTypes> { QualityTypes.SDTV, QualityTypes.DVD }).Build();
|
||||||
|
|
||||||
Db.InsertMany(fakeSeries);
|
Db.InsertMany(fakeSeries);
|
||||||
Db.Insert(fakeQuality);
|
Db.Insert(fakeQuality);
|
||||||
@ -478,7 +513,7 @@ namespace NzbDrone.Core.Test.ProviderTests
|
|||||||
.TheFirst(1)
|
.TheFirst(1)
|
||||||
.With(c => c.Path = path)
|
.With(c => c.Path = path)
|
||||||
.Build();
|
.Build();
|
||||||
var fakeQuality = Builder<QualityProfile>.CreateNew().Build();
|
var fakeQuality = Builder<QualityProfile>.CreateNew().With(p => p.Cutoff = QualityTypes.DVD).With(p => p.Allowed = new List<QualityTypes> { QualityTypes.SDTV, QualityTypes.DVD }).Build();
|
||||||
|
|
||||||
Db.InsertMany(fakeSeries);
|
Db.InsertMany(fakeSeries);
|
||||||
Db.Insert(fakeQuality);
|
Db.Insert(fakeQuality);
|
||||||
@ -499,7 +534,7 @@ namespace NzbDrone.Core.Test.ProviderTests
|
|||||||
{
|
{
|
||||||
WithRealDb();
|
WithRealDb();
|
||||||
|
|
||||||
var fakeQuality = Builder<QualityProfile>.CreateNew().Build();
|
var fakeQuality = Builder<QualityProfile>.CreateNew().With(p => p.Cutoff = QualityTypes.DVD).With(p => p.Allowed = new List<QualityTypes> { QualityTypes.SDTV, QualityTypes.DVD }).Build();
|
||||||
var fakeSeries = Builder<Series>.CreateNew().With(e => e.QualityProfileId = fakeQuality.QualityProfileId).Build();
|
var fakeSeries = Builder<Series>.CreateNew().With(e => e.QualityProfileId = fakeQuality.QualityProfileId).Build();
|
||||||
var fakeEpisodes = Builder<Episode>.CreateListOfSize(2)
|
var fakeEpisodes = Builder<Episode>.CreateListOfSize(2)
|
||||||
.All()
|
.All()
|
||||||
@ -528,7 +563,7 @@ namespace NzbDrone.Core.Test.ProviderTests
|
|||||||
{
|
{
|
||||||
WithRealDb();
|
WithRealDb();
|
||||||
|
|
||||||
var fakeQuality = Builder<QualityProfile>.CreateNew().Build();
|
var fakeQuality = Builder<QualityProfile>.CreateNew().With(p => p.Cutoff = QualityTypes.DVD).With(p => p.Allowed = new List<QualityTypes> { QualityTypes.SDTV, QualityTypes.DVD }).Build();
|
||||||
var fakeSeries = Builder<Series>.CreateNew().With(e => e.QualityProfileId = fakeQuality.QualityProfileId).Build();
|
var fakeSeries = Builder<Series>.CreateNew().With(e => e.QualityProfileId = fakeQuality.QualityProfileId).Build();
|
||||||
var fakeEpisodes = Builder<Episode>.CreateListOfSize(2)
|
var fakeEpisodes = Builder<Episode>.CreateListOfSize(2)
|
||||||
.All()
|
.All()
|
||||||
@ -557,7 +592,7 @@ namespace NzbDrone.Core.Test.ProviderTests
|
|||||||
{
|
{
|
||||||
WithRealDb();
|
WithRealDb();
|
||||||
|
|
||||||
var fakeQuality = Builder<QualityProfile>.CreateNew().Build();
|
var fakeQuality = Builder<QualityProfile>.CreateNew().With(p => p.Cutoff = QualityTypes.DVD).With(p => p.Allowed = new List<QualityTypes> { QualityTypes.SDTV, QualityTypes.DVD }).Build();
|
||||||
var fakeSeries = Builder<Series>.CreateNew().With(e => e.QualityProfileId = fakeQuality.QualityProfileId).Build();
|
var fakeSeries = Builder<Series>.CreateNew().With(e => e.QualityProfileId = fakeQuality.QualityProfileId).Build();
|
||||||
var fakeEpisodes = Builder<Episode>.CreateListOfSize(2)
|
var fakeEpisodes = Builder<Episode>.CreateListOfSize(2)
|
||||||
.All()
|
.All()
|
||||||
@ -584,7 +619,7 @@ namespace NzbDrone.Core.Test.ProviderTests
|
|||||||
{
|
{
|
||||||
WithRealDb();
|
WithRealDb();
|
||||||
|
|
||||||
var fakeQuality = Builder<QualityProfile>.CreateNew().Build();
|
var fakeQuality = Builder<QualityProfile>.CreateNew().With(p => p.Cutoff = QualityTypes.DVD).With(p => p.Allowed = new List<QualityTypes> { QualityTypes.SDTV, QualityTypes.DVD }).Build();
|
||||||
var fakeSeries = Builder<Series>.CreateNew().With(e => e.QualityProfileId = fakeQuality.QualityProfileId).Build();
|
var fakeSeries = Builder<Series>.CreateNew().With(e => e.QualityProfileId = fakeQuality.QualityProfileId).Build();
|
||||||
var fakeEpisodes = Builder<Episode>.CreateListOfSize(2)
|
var fakeEpisodes = Builder<Episode>.CreateListOfSize(2)
|
||||||
.All()
|
.All()
|
||||||
@ -613,7 +648,7 @@ namespace NzbDrone.Core.Test.ProviderTests
|
|||||||
{
|
{
|
||||||
WithRealDb();
|
WithRealDb();
|
||||||
|
|
||||||
var fakeQuality = Builder<QualityProfile>.CreateNew().Build();
|
var fakeQuality = Builder<QualityProfile>.CreateNew().With(p => p.Cutoff = QualityTypes.DVD).With(p => p.Allowed = new List<QualityTypes> { QualityTypes.SDTV, QualityTypes.DVD }).Build();
|
||||||
var fakeSeries = Builder<Series>.CreateNew().With(e => e.QualityProfileId = fakeQuality.QualityProfileId).Build();
|
var fakeSeries = Builder<Series>.CreateNew().With(e => e.QualityProfileId = fakeQuality.QualityProfileId).Build();
|
||||||
var fakeEpisodes = Builder<Episode>.CreateListOfSize(2)
|
var fakeEpisodes = Builder<Episode>.CreateListOfSize(2)
|
||||||
.All()
|
.All()
|
||||||
@ -643,7 +678,7 @@ namespace NzbDrone.Core.Test.ProviderTests
|
|||||||
{
|
{
|
||||||
WithRealDb();
|
WithRealDb();
|
||||||
|
|
||||||
var fakeQuality = Builder<QualityProfile>.CreateNew().Build();
|
var fakeQuality = Builder<QualityProfile>.CreateNew().With(p => p.Cutoff = QualityTypes.DVD).With(p => p.Allowed = new List<QualityTypes> { QualityTypes.SDTV, QualityTypes.DVD }).Build();
|
||||||
var fakeSeries = Builder<Series>.CreateListOfSize(10)
|
var fakeSeries = Builder<Series>.CreateListOfSize(10)
|
||||||
.All()
|
.All()
|
||||||
.With(e => e.QualityProfileId = fakeQuality.QualityProfileId)
|
.With(e => e.QualityProfileId = fakeQuality.QualityProfileId)
|
||||||
@ -664,7 +699,7 @@ namespace NzbDrone.Core.Test.ProviderTests
|
|||||||
{
|
{
|
||||||
WithRealDb();
|
WithRealDb();
|
||||||
|
|
||||||
var fakeQuality = Builder<QualityProfile>.CreateNew().Build();
|
var fakeQuality = Builder<QualityProfile>.CreateNew().With(p => p.Cutoff = QualityTypes.DVD).With(p => p.Allowed = new List<QualityTypes> { QualityTypes.SDTV, QualityTypes.DVD }).Build();
|
||||||
var fakeSeries = Builder<Series>.CreateListOfSize(10)
|
var fakeSeries = Builder<Series>.CreateListOfSize(10)
|
||||||
.All()
|
.All()
|
||||||
.With(e => e.QualityProfileId = fakeQuality.QualityProfileId)
|
.With(e => e.QualityProfileId = fakeQuality.QualityProfileId)
|
||||||
@ -685,7 +720,7 @@ namespace NzbDrone.Core.Test.ProviderTests
|
|||||||
{
|
{
|
||||||
WithRealDb();
|
WithRealDb();
|
||||||
|
|
||||||
var fakeQuality = Builder<QualityProfile>.CreateNew().Build();
|
var fakeQuality = Builder<QualityProfile>.CreateNew().With(p => p.Cutoff = QualityTypes.DVD).With(p => p.Allowed = new List<QualityTypes> { QualityTypes.SDTV, QualityTypes.DVD }).Build();
|
||||||
var fakeSeries = Builder<Series>.CreateListOfSize(10)
|
var fakeSeries = Builder<Series>.CreateListOfSize(10)
|
||||||
.All()
|
.All()
|
||||||
.With(e => e.QualityProfileId = fakeQuality.QualityProfileId)
|
.With(e => e.QualityProfileId = fakeQuality.QualityProfileId)
|
||||||
@ -706,7 +741,7 @@ namespace NzbDrone.Core.Test.ProviderTests
|
|||||||
{
|
{
|
||||||
WithRealDb();
|
WithRealDb();
|
||||||
|
|
||||||
var fakeQuality = Builder<QualityProfile>.CreateNew().Build();
|
var fakeQuality = Builder<QualityProfile>.CreateNew().With(p => p.Cutoff = QualityTypes.DVD).With(p => p.Allowed = new List<QualityTypes> { QualityTypes.SDTV, QualityTypes.DVD }).Build();
|
||||||
var fakeSeries = Builder<Series>.CreateListOfSize(10)
|
var fakeSeries = Builder<Series>.CreateListOfSize(10)
|
||||||
.All()
|
.All()
|
||||||
.With(e => e.QualityProfileId = fakeQuality.QualityProfileId)
|
.With(e => e.QualityProfileId = fakeQuality.QualityProfileId)
|
||||||
@ -727,7 +762,7 @@ namespace NzbDrone.Core.Test.ProviderTests
|
|||||||
{
|
{
|
||||||
WithRealDb();
|
WithRealDb();
|
||||||
|
|
||||||
var fakeQuality = Builder<QualityProfile>.CreateNew().Build();
|
var fakeQuality = Builder<QualityProfile>.CreateNew().With(p => p.Cutoff = QualityTypes.DVD).With(p => p.Allowed = new List<QualityTypes> { QualityTypes.SDTV, QualityTypes.DVD }).Build();
|
||||||
var fakeSeries = Builder<Series>.CreateListOfSize(10)
|
var fakeSeries = Builder<Series>.CreateListOfSize(10)
|
||||||
.All()
|
.All()
|
||||||
.With(e => e.QualityProfileId = fakeQuality.QualityProfileId)
|
.With(e => e.QualityProfileId = fakeQuality.QualityProfileId)
|
||||||
@ -753,7 +788,7 @@ namespace NzbDrone.Core.Test.ProviderTests
|
|||||||
var newMonitored = false;
|
var newMonitored = false;
|
||||||
var newSeasonFolder = false;
|
var newSeasonFolder = false;
|
||||||
|
|
||||||
var fakeQuality = Builder<QualityProfile>.CreateNew().Build();
|
var fakeQuality = Builder<QualityProfile>.CreateNew().With(p => p.Cutoff = QualityTypes.DVD).With(p => p.Allowed = new List<QualityTypes> { QualityTypes.SDTV, QualityTypes.DVD }).Build();
|
||||||
var fakeSeries = Builder<Series>.CreateListOfSize(1)
|
var fakeSeries = Builder<Series>.CreateListOfSize(1)
|
||||||
.All()
|
.All()
|
||||||
.With(e => e.QualityProfileId = fakeQuality.QualityProfileId)
|
.With(e => e.QualityProfileId = fakeQuality.QualityProfileId)
|
||||||
@ -790,7 +825,7 @@ namespace NzbDrone.Core.Test.ProviderTests
|
|||||||
var monitored = true;
|
var monitored = true;
|
||||||
var seasonFolder = true;
|
var seasonFolder = true;
|
||||||
|
|
||||||
var fakeQuality = Builder<QualityProfile>.CreateNew().Build();
|
var fakeQuality = Builder<QualityProfile>.CreateNew().With(p => p.Cutoff = QualityTypes.DVD).With(p => p.Allowed = new List<QualityTypes> { QualityTypes.SDTV, QualityTypes.DVD }).Build();
|
||||||
var fakeSeries = Builder<Series>.CreateListOfSize(2)
|
var fakeSeries = Builder<Series>.CreateListOfSize(2)
|
||||||
.All()
|
.All()
|
||||||
.With(e => e.QualityProfileId = fakeQuality.QualityProfileId)
|
.With(e => e.QualityProfileId = fakeQuality.QualityProfileId)
|
||||||
|
@ -155,7 +155,7 @@ namespace NzbDrone.Core.Test
|
|||||||
|
|
||||||
var db = TestDbHelper.GetEmptyDatabase();
|
var db = TestDbHelper.GetEmptyDatabase();
|
||||||
Mocker.SetConstant(db);
|
Mocker.SetConstant(db);
|
||||||
var fakeProfile = Builder<QualityProfile>.CreateNew().Build();
|
var fakeProfile = Builder<QualityProfile>.CreateNew().With(p => p.Cutoff = QualityTypes.DVD).With(p => p.Allowed = new List<QualityTypes> { QualityTypes.SDTV, QualityTypes.DVD }).Build();
|
||||||
|
|
||||||
//Act
|
//Act
|
||||||
Mocker.Resolve<QualityProvider>().Add(fakeProfile);
|
Mocker.Resolve<QualityProvider>().Add(fakeProfile);
|
||||||
|
@ -13,8 +13,8 @@ namespace NzbDrone.Core.Test
|
|||||||
[Test]
|
[Test]
|
||||||
public void Icomparer_greater_test()
|
public void Icomparer_greater_test()
|
||||||
{
|
{
|
||||||
var first = new Quality(QualityTypes.DVD, true);
|
var first = new QualityModel(QualityTypes.DVD, true);
|
||||||
var second = new Quality(QualityTypes.Bluray1080p, true);
|
var second = new QualityModel(QualityTypes.Bluray1080p, true);
|
||||||
|
|
||||||
second.Should().BeGreaterThan(first);
|
second.Should().BeGreaterThan(first);
|
||||||
}
|
}
|
||||||
@ -22,8 +22,8 @@ namespace NzbDrone.Core.Test
|
|||||||
[Test]
|
[Test]
|
||||||
public void Icomparer_greater_proper()
|
public void Icomparer_greater_proper()
|
||||||
{
|
{
|
||||||
var first = new Quality(QualityTypes.Bluray1080p, false);
|
var first = new QualityModel(QualityTypes.Bluray1080p, false);
|
||||||
var second = new Quality(QualityTypes.Bluray1080p, true);
|
var second = new QualityModel(QualityTypes.Bluray1080p, true);
|
||||||
|
|
||||||
second.Should().BeGreaterThan(first);
|
second.Should().BeGreaterThan(first);
|
||||||
}
|
}
|
||||||
@ -31,8 +31,8 @@ namespace NzbDrone.Core.Test
|
|||||||
[Test]
|
[Test]
|
||||||
public void Icomparer_lesser()
|
public void Icomparer_lesser()
|
||||||
{
|
{
|
||||||
var first = new Quality(QualityTypes.DVD, true);
|
var first = new QualityModel(QualityTypes.DVD, true);
|
||||||
var second = new Quality(QualityTypes.Bluray1080p, true);
|
var second = new QualityModel(QualityTypes.Bluray1080p, true);
|
||||||
|
|
||||||
first.Should().BeLessThan(second);
|
first.Should().BeLessThan(second);
|
||||||
}
|
}
|
||||||
@ -40,8 +40,8 @@ namespace NzbDrone.Core.Test
|
|||||||
[Test]
|
[Test]
|
||||||
public void Icomparer_lesser_proper()
|
public void Icomparer_lesser_proper()
|
||||||
{
|
{
|
||||||
var first = new Quality(QualityTypes.DVD, false);
|
var first = new QualityModel(QualityTypes.DVD, false);
|
||||||
var second = new Quality(QualityTypes.DVD, true);
|
var second = new QualityModel(QualityTypes.DVD, true);
|
||||||
|
|
||||||
first.Should().BeLessThan(second);
|
first.Should().BeLessThan(second);
|
||||||
}
|
}
|
||||||
@ -49,8 +49,8 @@ namespace NzbDrone.Core.Test
|
|||||||
[Test]
|
[Test]
|
||||||
public void equal_operand()
|
public void equal_operand()
|
||||||
{
|
{
|
||||||
var first = new Quality(QualityTypes.Bluray1080p, true);
|
var first = new QualityModel(QualityTypes.Bluray1080p, true);
|
||||||
var second = new Quality(QualityTypes.Bluray1080p, true);
|
var second = new QualityModel(QualityTypes.Bluray1080p, true);
|
||||||
|
|
||||||
(first == second).Should().BeTrue();
|
(first == second).Should().BeTrue();
|
||||||
(first >= second).Should().BeTrue();
|
(first >= second).Should().BeTrue();
|
||||||
@ -60,8 +60,8 @@ namespace NzbDrone.Core.Test
|
|||||||
[Test]
|
[Test]
|
||||||
public void equal_operand_false()
|
public void equal_operand_false()
|
||||||
{
|
{
|
||||||
var first = new Quality(QualityTypes.Bluray1080p, true);
|
var first = new QualityModel(QualityTypes.Bluray1080p, true);
|
||||||
var second = new Quality(QualityTypes.Unknown, true);
|
var second = new QualityModel(QualityTypes.Unknown, true);
|
||||||
|
|
||||||
(first == second).Should().BeFalse();
|
(first == second).Should().BeFalse();
|
||||||
}
|
}
|
||||||
@ -69,18 +69,17 @@ namespace NzbDrone.Core.Test
|
|||||||
[Test]
|
[Test]
|
||||||
public void equal_operand_false_proper()
|
public void equal_operand_false_proper()
|
||||||
{
|
{
|
||||||
var first = new Quality(QualityTypes.Bluray1080p, true);
|
var first = new QualityModel(QualityTypes.Bluray1080p, true);
|
||||||
var second = new Quality(QualityTypes.Bluray1080p, false);
|
var second = new QualityModel(QualityTypes.Bluray1080p, false);
|
||||||
|
|
||||||
(first == second).Should().BeFalse();
|
(first == second).Should().BeFalse();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
public void not_equal_operand()
|
public void not_equal_operand()
|
||||||
{
|
{
|
||||||
var first = new Quality(QualityTypes.Bluray1080p, true);
|
var first = new QualityModel(QualityTypes.Bluray1080p, true);
|
||||||
var second = new Quality(QualityTypes.Bluray1080p, true);
|
var second = new QualityModel(QualityTypes.Bluray1080p, true);
|
||||||
|
|
||||||
(first != second).Should().BeFalse();
|
(first != second).Should().BeFalse();
|
||||||
}
|
}
|
||||||
@ -88,8 +87,8 @@ namespace NzbDrone.Core.Test
|
|||||||
[Test]
|
[Test]
|
||||||
public void not_equal_operand_false()
|
public void not_equal_operand_false()
|
||||||
{
|
{
|
||||||
var first = new Quality(QualityTypes.Bluray1080p, true);
|
var first = new QualityModel(QualityTypes.Bluray1080p, true);
|
||||||
var second = new Quality(QualityTypes.Unknown, true);
|
var second = new QualityModel(QualityTypes.Unknown, true);
|
||||||
|
|
||||||
(first != second).Should().BeTrue();
|
(first != second).Should().BeTrue();
|
||||||
}
|
}
|
||||||
@ -97,8 +96,8 @@ namespace NzbDrone.Core.Test
|
|||||||
[Test]
|
[Test]
|
||||||
public void not_equal_operand_false_proper()
|
public void not_equal_operand_false_proper()
|
||||||
{
|
{
|
||||||
var first = new Quality(QualityTypes.Bluray1080p, true);
|
var first = new QualityModel(QualityTypes.Bluray1080p, true);
|
||||||
var second = new Quality(QualityTypes.Bluray1080p, false);
|
var second = new QualityModel(QualityTypes.Bluray1080p, false);
|
||||||
|
|
||||||
(first != second).Should().BeTrue();
|
(first != second).Should().BeTrue();
|
||||||
}
|
}
|
||||||
@ -106,8 +105,8 @@ namespace NzbDrone.Core.Test
|
|||||||
[Test]
|
[Test]
|
||||||
public void greater_operand()
|
public void greater_operand()
|
||||||
{
|
{
|
||||||
var first = new Quality(QualityTypes.DVD, true);
|
var first = new QualityModel(QualityTypes.DVD, true);
|
||||||
var second = new Quality(QualityTypes.Bluray1080p, true);
|
var second = new QualityModel(QualityTypes.Bluray1080p, true);
|
||||||
|
|
||||||
(first < second).Should().BeTrue();
|
(first < second).Should().BeTrue();
|
||||||
(first <= second).Should().BeTrue();
|
(first <= second).Should().BeTrue();
|
||||||
@ -116,8 +115,8 @@ namespace NzbDrone.Core.Test
|
|||||||
[Test]
|
[Test]
|
||||||
public void lesser_operand()
|
public void lesser_operand()
|
||||||
{
|
{
|
||||||
var first = new Quality(QualityTypes.DVD, true);
|
var first = new QualityModel(QualityTypes.DVD, true);
|
||||||
var second = new Quality(QualityTypes.Bluray1080p, true);
|
var second = new QualityModel(QualityTypes.Bluray1080p, true);
|
||||||
|
|
||||||
(second > first).Should().BeTrue();
|
(second > first).Should().BeTrue();
|
||||||
(second >= first).Should().BeTrue();
|
(second >= first).Should().BeTrue();
|
||||||
|
127
NzbDrone.Core.Test/QualityTypesTest.cs
Normal file
127
NzbDrone.Core.Test/QualityTypesTest.cs
Normal file
@ -0,0 +1,127 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.IO;
|
||||||
|
using FluentAssertions;
|
||||||
|
using NUnit.Framework;
|
||||||
|
using NzbDrone.Core.Model;
|
||||||
|
using NzbDrone.Core.Repository.Quality;
|
||||||
|
using NzbDrone.Core.Test.Framework;
|
||||||
|
|
||||||
|
namespace NzbDrone.Core.Test
|
||||||
|
{
|
||||||
|
[TestFixture]
|
||||||
|
// ReSharper disable InconsistentNaming
|
||||||
|
public class QualityTypesTest : CoreTest
|
||||||
|
{
|
||||||
|
public static object[] FromIntCases =
|
||||||
|
{
|
||||||
|
new object[] {1, QualityTypes.SDTV},
|
||||||
|
new object[] {2, QualityTypes.DVD},
|
||||||
|
new object[] {4, QualityTypes.HDTV},
|
||||||
|
new object[] {5, QualityTypes.WEBDL720p},
|
||||||
|
new object[] {6, QualityTypes.Bluray720p},
|
||||||
|
new object[] {7, QualityTypes.Bluray1080p}
|
||||||
|
};
|
||||||
|
|
||||||
|
public static object[] ToIntCases =
|
||||||
|
{
|
||||||
|
new object[] {QualityTypes.SDTV, 1},
|
||||||
|
new object[] {QualityTypes.DVD, 2},
|
||||||
|
new object[] {QualityTypes.HDTV, 4},
|
||||||
|
new object[] {QualityTypes.WEBDL720p, 5},
|
||||||
|
new object[] {QualityTypes.Bluray720p, 6},
|
||||||
|
new object[] {QualityTypes.Bluray1080p, 7}
|
||||||
|
};
|
||||||
|
|
||||||
|
[Test, TestCaseSource("FromIntCases")]
|
||||||
|
public void should_be_able_to_convert_int_to_qualityTypes(int source, QualityTypes expected)
|
||||||
|
{
|
||||||
|
var quality = (QualityTypes)source;
|
||||||
|
quality.Should().Be(expected);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test, TestCaseSource("ToIntCases")]
|
||||||
|
public void should_be_able_to_convert_qualityTypes_to_int(QualityTypes source, int expected)
|
||||||
|
{
|
||||||
|
var i = (int)source;
|
||||||
|
i.Should().Be(expected);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void Icomparer_greater_test()
|
||||||
|
{
|
||||||
|
var first = QualityTypes.DVD;
|
||||||
|
var second = QualityTypes.Bluray1080p;
|
||||||
|
|
||||||
|
second.Should().BeGreaterThan(first);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void Icomparer_lesser()
|
||||||
|
{
|
||||||
|
var first = QualityTypes.DVD;
|
||||||
|
var second = QualityTypes.Bluray1080p;
|
||||||
|
|
||||||
|
first.Should().BeLessThan(second);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void equal_operand()
|
||||||
|
{
|
||||||
|
var first = QualityTypes.Bluray1080p;
|
||||||
|
var second = QualityTypes.Bluray1080p;
|
||||||
|
|
||||||
|
(first == second).Should().BeTrue();
|
||||||
|
(first >= second).Should().BeTrue();
|
||||||
|
(first <= second).Should().BeTrue();
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void equal_operand_false()
|
||||||
|
{
|
||||||
|
var first = QualityTypes.Bluray1080p;
|
||||||
|
var second = QualityTypes.Unknown;
|
||||||
|
|
||||||
|
(first == second).Should().BeFalse();
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void not_equal_operand()
|
||||||
|
{
|
||||||
|
var first = QualityTypes.Bluray1080p;
|
||||||
|
var second = QualityTypes.Bluray1080p;
|
||||||
|
|
||||||
|
(first != second).Should().BeFalse();
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void not_equal_operand_false()
|
||||||
|
{
|
||||||
|
var first = QualityTypes.Bluray1080p;
|
||||||
|
var second = QualityTypes.Unknown;
|
||||||
|
|
||||||
|
(first != second).Should().BeTrue();
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void greater_operand()
|
||||||
|
{
|
||||||
|
var first = QualityTypes.DVD;
|
||||||
|
var second = QualityTypes.Bluray1080p;
|
||||||
|
|
||||||
|
(first < second).Should().BeTrue();
|
||||||
|
(first <= second).Should().BeTrue();
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void lesser_operand()
|
||||||
|
{
|
||||||
|
var first = QualityTypes.DVD;
|
||||||
|
var second = QualityTypes.Bluray1080p;
|
||||||
|
|
||||||
|
(second > first).Should().BeTrue();
|
||||||
|
(second >= first).Should().BeTrue();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -1,14 +1,28 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
|
using NzbDrone.Core.Repository.Quality;
|
||||||
using PetaPoco;
|
using PetaPoco;
|
||||||
|
|
||||||
namespace NzbDrone.Core.Datastore
|
namespace NzbDrone.Core.Datastore
|
||||||
{
|
{
|
||||||
public class CustomeMapper : DefaultMapper
|
public class CustomeMapper : DefaultMapper
|
||||||
{
|
{
|
||||||
|
public override Func<object, object> GetToDbConverter(Type sourceType)
|
||||||
|
{
|
||||||
|
if (sourceType == typeof(QualityTypes))
|
||||||
|
{
|
||||||
|
return delegate(object s)
|
||||||
|
{
|
||||||
|
var source = (QualityTypes)s;
|
||||||
|
return source.Id;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
return base.GetToDbConverter(sourceType);
|
||||||
|
}
|
||||||
|
|
||||||
public override Func<object, object> GetFromDbConverter(Type destinationType, Type sourceType)
|
public override Func<object, object> GetFromDbConverter(Type destinationType, Type sourceType)
|
||||||
{
|
{
|
||||||
|
|
||||||
if ((sourceType == typeof(Int32) || sourceType == typeof(Int64)) && destinationType.IsGenericType && destinationType.GetGenericTypeDefinition() == typeof(Nullable<>))
|
if ((sourceType == typeof(Int32) || sourceType == typeof(Int64)) && destinationType.IsGenericType && destinationType.GetGenericTypeDefinition() == typeof(Nullable<>))
|
||||||
{
|
{
|
||||||
// If it is NULLABLE, then get the underlying type. eg if "Nullable<int>" then this will return just "int"
|
// If it is NULLABLE, then get the underlying type. eg if "Nullable<int>" then this will return just "int"
|
||||||
@ -31,6 +45,17 @@ namespace NzbDrone.Core.Datastore
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ((sourceType == typeof(Int32) || sourceType == typeof(Int64)) && destinationType == typeof(QualityTypes))
|
||||||
|
{
|
||||||
|
return delegate(object s)
|
||||||
|
{
|
||||||
|
int value;
|
||||||
|
Int32.TryParse(s.ToString(), out value);
|
||||||
|
var quality = (QualityTypes)value;
|
||||||
|
return quality;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
return base.GetFromDbConverter(destinationType, sourceType);
|
return base.GetFromDbConverter(destinationType, sourceType);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -24,7 +24,7 @@ namespace NzbDrone.Core.Model
|
|||||||
|
|
||||||
public DateTime? AirDate { get; set; }
|
public DateTime? AirDate { get; set; }
|
||||||
|
|
||||||
public Quality Quality { get; set; }
|
public QualityModel Quality { get; set; }
|
||||||
|
|
||||||
public LanguageType Language { get; set; }
|
public LanguageType Language { get; set; }
|
||||||
|
|
||||||
|
@ -3,29 +3,29 @@ using NzbDrone.Core.Repository.Quality;
|
|||||||
|
|
||||||
namespace NzbDrone.Core.Model
|
namespace NzbDrone.Core.Model
|
||||||
{
|
{
|
||||||
public class Quality : IComparable<Quality>
|
public class QualityModel : IComparable<QualityModel>
|
||||||
{
|
{
|
||||||
public QualityTypes QualityType { get; set; }
|
public QualityTypes Quality { get; set; }
|
||||||
|
|
||||||
public Boolean Proper { get; set; }
|
public Boolean Proper { get; set; }
|
||||||
|
|
||||||
public Quality() { }
|
public QualityModel() { }
|
||||||
|
|
||||||
public Quality(QualityTypes quality, Boolean proper)
|
public QualityModel(QualityTypes quality, Boolean proper)
|
||||||
{
|
{
|
||||||
QualityType = quality;
|
Quality = quality;
|
||||||
Proper = proper;
|
Proper = proper;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int CompareTo(Quality other)
|
public int CompareTo(QualityModel other)
|
||||||
{
|
{
|
||||||
if (other.QualityType > QualityType)
|
if (other.Quality > Quality)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
if (other.QualityType < QualityType)
|
if (other.Quality < Quality)
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
if (other.QualityType == QualityType && other.Proper == Proper)
|
if (other.Quality == Quality && other.Proper == Proper)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
if (Proper && !other.Proper)
|
if (Proper && !other.Proper)
|
||||||
@ -37,12 +37,12 @@ namespace NzbDrone.Core.Model
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static bool operator !=(Quality x, Quality y)
|
public static bool operator !=(QualityModel x, QualityModel y)
|
||||||
{
|
{
|
||||||
return !(x == y);
|
return !(x == y);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static bool operator ==(Quality x, Quality y)
|
public static bool operator ==(QualityModel x, QualityModel y)
|
||||||
{
|
{
|
||||||
var xObj = (Object)x;
|
var xObj = (Object)x;
|
||||||
var yObj = (object)y;
|
var yObj = (object)y;
|
||||||
@ -55,29 +55,29 @@ namespace NzbDrone.Core.Model
|
|||||||
return x.CompareTo(y) == 0;
|
return x.CompareTo(y) == 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static bool operator >(Quality x, Quality y)
|
public static bool operator >(QualityModel x, QualityModel y)
|
||||||
{
|
{
|
||||||
return x.CompareTo(y) > 0;
|
return x.CompareTo(y) > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static bool operator <(Quality x, Quality y)
|
public static bool operator <(QualityModel x, QualityModel y)
|
||||||
{
|
{
|
||||||
return x.CompareTo(y) < 1;
|
return x.CompareTo(y) < 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static bool operator <=(Quality x, Quality y)
|
public static bool operator <=(QualityModel x, QualityModel y)
|
||||||
{
|
{
|
||||||
return x.CompareTo(y) <= 0;
|
return x.CompareTo(y) <= 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static bool operator >=(Quality x, Quality y)
|
public static bool operator >=(QualityModel x, QualityModel y)
|
||||||
{
|
{
|
||||||
return x.CompareTo(y) >= 0;
|
return x.CompareTo(y) >= 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override string ToString()
|
public override string ToString()
|
||||||
{
|
{
|
||||||
string result = QualityType.ToString();
|
string result = Quality.ToString();
|
||||||
if (Proper)
|
if (Proper)
|
||||||
{
|
{
|
||||||
result += " [proper]";
|
result += " [proper]";
|
||||||
@ -92,24 +92,24 @@ namespace NzbDrone.Core.Model
|
|||||||
{
|
{
|
||||||
int hash = 17;
|
int hash = 17;
|
||||||
hash = hash * 23 + Proper.GetHashCode();
|
hash = hash * 23 + Proper.GetHashCode();
|
||||||
hash = hash * 23 + QualityType.GetHashCode();
|
hash = hash * 23 + Quality.GetHashCode();
|
||||||
return hash;
|
return hash;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool Equals(Quality other)
|
public bool Equals(QualityModel other)
|
||||||
{
|
{
|
||||||
if (ReferenceEquals(null, other)) return false;
|
if (ReferenceEquals(null, other)) return false;
|
||||||
if (ReferenceEquals(this, other)) return true;
|
if (ReferenceEquals(this, other)) return true;
|
||||||
return Equals(other.QualityType, QualityType) && other.Proper.Equals(Proper);
|
return Equals(other.Quality, Quality) && other.Proper.Equals(Proper);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override bool Equals(object obj)
|
public override bool Equals(object obj)
|
||||||
{
|
{
|
||||||
if (ReferenceEquals(null, obj)) return false;
|
if (ReferenceEquals(null, obj)) return false;
|
||||||
if (ReferenceEquals(this, obj)) return true;
|
if (ReferenceEquals(this, obj)) return true;
|
||||||
if (obj.GetType() != typeof (Quality)) return false;
|
if (obj.GetType() != typeof (QualityModel)) return false;
|
||||||
return Equals((Quality) obj);
|
return Equals((QualityModel) obj);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -6,7 +6,7 @@
|
|||||||
internal int SeasonNumber { get; set; }
|
internal int SeasonNumber { get; set; }
|
||||||
internal int Year { get; set; }
|
internal int Year { get; set; }
|
||||||
|
|
||||||
public Quality Quality { get; set; }
|
public QualityModel Quality { get; set; }
|
||||||
|
|
||||||
public override string ToString()
|
public override string ToString()
|
||||||
{
|
{
|
||||||
|
@ -273,7 +273,7 @@
|
|||||||
<Compile Include="Model\JobQueueItem.cs" />
|
<Compile Include="Model\JobQueueItem.cs" />
|
||||||
<Compile Include="Model\LanguageType.cs" />
|
<Compile Include="Model\LanguageType.cs" />
|
||||||
<Compile Include="Model\MisnamedEpisodeModel.cs" />
|
<Compile Include="Model\MisnamedEpisodeModel.cs" />
|
||||||
<Compile Include="Model\Quality.cs" />
|
<Compile Include="Model\QualityModel.cs" />
|
||||||
<Compile Include="Model\Sabnzbd\SabHistoryItem.cs" />
|
<Compile Include="Model\Sabnzbd\SabHistoryItem.cs" />
|
||||||
<Compile Include="Model\Sabnzbd\SabHistory.cs" />
|
<Compile Include="Model\Sabnzbd\SabHistory.cs" />
|
||||||
<Compile Include="Model\Sabnzbd\SabJsonError.cs" />
|
<Compile Include="Model\Sabnzbd\SabJsonError.cs" />
|
||||||
@ -330,6 +330,7 @@
|
|||||||
<Compile Include="Jobs\UpdateInfoJob.cs" />
|
<Compile Include="Jobs\UpdateInfoJob.cs" />
|
||||||
<Compile Include="Providers\StatsProvider.cs" />
|
<Compile Include="Providers\StatsProvider.cs" />
|
||||||
<Compile Include="Repository\MetadataDefinition.cs" />
|
<Compile Include="Repository\MetadataDefinition.cs" />
|
||||||
|
<Compile Include="Repository\Quality\QualityTypes.cs" />
|
||||||
<Compile Include="Repository\Search\SearchHistoryItem.cs" />
|
<Compile Include="Repository\Search\SearchHistoryItem.cs" />
|
||||||
<Compile Include="Repository\Search\SearchHistory.cs" />
|
<Compile Include="Repository\Search\SearchHistory.cs" />
|
||||||
<Compile Include="Model\ReportRejectionType.cs" />
|
<Compile Include="Model\ReportRejectionType.cs" />
|
||||||
@ -541,7 +542,6 @@
|
|||||||
<Compile Include="Repository\Quality\QualityType.cs" />
|
<Compile Include="Repository\Quality\QualityType.cs" />
|
||||||
<Compile Include="Repository\Quality\QualityProfile.cs" />
|
<Compile Include="Repository\Quality\QualityProfile.cs" />
|
||||||
<Compile Include="Repository\RootDir.cs" />
|
<Compile Include="Repository\RootDir.cs" />
|
||||||
<Compile Include="Repository\Quality\QualityTypes.cs" />
|
|
||||||
<Compile Include="Repository\SceneMapping.cs" />
|
<Compile Include="Repository\SceneMapping.cs" />
|
||||||
<Compile Include="Repository\Series.cs" />
|
<Compile Include="Repository\Series.cs" />
|
||||||
<Compile Include="CentralDispatch.cs" />
|
<Compile Include="CentralDispatch.cs" />
|
||||||
|
@ -253,18 +253,18 @@ namespace NzbDrone.Core
|
|||||||
return NormalizeTitle(title);
|
return NormalizeTitle(title);
|
||||||
}
|
}
|
||||||
|
|
||||||
internal static Quality ParseQuality(string name)
|
internal static QualityModel ParseQuality(string name)
|
||||||
{
|
{
|
||||||
Logger.Trace("Trying to parse quality for {0}", name);
|
Logger.Trace("Trying to parse quality for {0}", name);
|
||||||
|
|
||||||
name = name.Trim();
|
name = name.Trim();
|
||||||
var normalizedName = NormalizeTitle(name);
|
var normalizedName = NormalizeTitle(name);
|
||||||
var result = new Quality { QualityType = QualityTypes.Unknown };
|
var result = new QualityModel { Quality = QualityTypes.Unknown };
|
||||||
result.Proper = (normalizedName.Contains("proper") || normalizedName.Contains("repack"));
|
result.Proper = (normalizedName.Contains("proper") || normalizedName.Contains("repack"));
|
||||||
|
|
||||||
if (normalizedName.Contains("dvd") || normalizedName.Contains("bdrip") || normalizedName.Contains("brrip"))
|
if (normalizedName.Contains("dvd") || normalizedName.Contains("bdrip") || normalizedName.Contains("brrip"))
|
||||||
{
|
{
|
||||||
result.QualityType = QualityTypes.DVD;
|
result.Quality = QualityTypes.DVD;
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -272,11 +272,11 @@ namespace NzbDrone.Core
|
|||||||
{
|
{
|
||||||
if (normalizedName.Contains("bluray"))
|
if (normalizedName.Contains("bluray"))
|
||||||
{
|
{
|
||||||
result.QualityType = QualityTypes.DVD;
|
result.Quality = QualityTypes.DVD;
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
result.QualityType = QualityTypes.SDTV;
|
result.Quality = QualityTypes.SDTV;
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -284,32 +284,37 @@ namespace NzbDrone.Core
|
|||||||
{
|
{
|
||||||
if (normalizedName.Contains("720p"))
|
if (normalizedName.Contains("720p"))
|
||||||
{
|
{
|
||||||
result.QualityType = QualityTypes.Bluray720p;
|
result.Quality = QualityTypes.Bluray720p;
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (normalizedName.Contains("1080p"))
|
if (normalizedName.Contains("1080p"))
|
||||||
{
|
{
|
||||||
result.QualityType = QualityTypes.Bluray1080p;
|
result.Quality = QualityTypes.Bluray1080p;
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
result.QualityType = QualityTypes.Bluray720p;
|
result.Quality = QualityTypes.Bluray720p;
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
if (normalizedName.Contains("webdl"))
|
if (normalizedName.Contains("webdl"))
|
||||||
{
|
{
|
||||||
result.QualityType = QualityTypes.WEBDL;
|
if (normalizedName.Contains("1080p"))
|
||||||
|
{
|
||||||
|
result.Quality = QualityTypes.WEBDL1080p;
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
result.Quality = QualityTypes.WEBDL720p;
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
if (normalizedName.Contains("x264") || normalizedName.Contains("h264") || normalizedName.Contains("720p"))
|
if (normalizedName.Contains("x264") || normalizedName.Contains("h264") || normalizedName.Contains("720p"))
|
||||||
{
|
{
|
||||||
result.QualityType = QualityTypes.HDTV;
|
result.Quality = QualityTypes.HDTV;
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
//Based on extension
|
//Based on extension
|
||||||
|
|
||||||
if (result.QualityType == QualityTypes.Unknown)
|
if (result.Quality == QualityTypes.Unknown)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@ -330,13 +335,13 @@ namespace NzbDrone.Core
|
|||||||
case ".ogm":
|
case ".ogm":
|
||||||
case ".strm":
|
case ".strm":
|
||||||
{
|
{
|
||||||
result.QualityType = QualityTypes.SDTV;
|
result.Quality = QualityTypes.SDTV;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case ".mkv":
|
case ".mkv":
|
||||||
case ".ts":
|
case ".ts":
|
||||||
{
|
{
|
||||||
result.QualityType = QualityTypes.HDTV;
|
result.Quality = QualityTypes.HDTV;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -350,15 +355,15 @@ namespace NzbDrone.Core
|
|||||||
|
|
||||||
if (name.Contains("[HDTV]"))
|
if (name.Contains("[HDTV]"))
|
||||||
{
|
{
|
||||||
result.QualityType = QualityTypes.HDTV;
|
result.Quality = QualityTypes.HDTV;
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((normalizedName.Contains("sdtv") || normalizedName.Contains("pdtv") ||
|
if ((normalizedName.Contains("sdtv") || normalizedName.Contains("pdtv") ||
|
||||||
(result.QualityType == QualityTypes.Unknown && normalizedName.Contains("hdtv"))) &&
|
(result.Quality == QualityTypes.Unknown && normalizedName.Contains("hdtv"))) &&
|
||||||
!normalizedName.Contains("mpeg"))
|
!normalizedName.Contains("mpeg"))
|
||||||
{
|
{
|
||||||
result.QualityType = QualityTypes.SDTV;
|
result.Quality = QualityTypes.SDTV;
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -26,7 +26,7 @@ namespace NzbDrone.Core.Providers.DecisionEngine
|
|||||||
public virtual bool IsSatisfiedBy(EpisodeParseResult subject)
|
public virtual bool IsSatisfiedBy(EpisodeParseResult subject)
|
||||||
{
|
{
|
||||||
logger.Trace("Beginning size check for: {0}", subject);
|
logger.Trace("Beginning size check for: {0}", subject);
|
||||||
var qualityType = _qualityTypeProvider.Get((int)subject.Quality.QualityType);
|
var qualityType = _qualityTypeProvider.Get((int)subject.Quality.Quality);
|
||||||
|
|
||||||
//Need to determine if this is a 30 or 60 minute episode
|
//Need to determine if this is a 30 or 60 minute episode
|
||||||
//Is it a multi-episode release?
|
//Is it a multi-episode release?
|
||||||
|
@ -11,7 +11,7 @@ namespace NzbDrone.Core.Providers.DecisionEngine
|
|||||||
public virtual bool IsSatisfiedBy(EpisodeParseResult subject)
|
public virtual bool IsSatisfiedBy(EpisodeParseResult subject)
|
||||||
{
|
{
|
||||||
logger.Trace("Checking if report meets quality requirements. {0}", subject.Quality);
|
logger.Trace("Checking if report meets quality requirements. {0}", subject.Quality);
|
||||||
if (!subject.Series.QualityProfile.Allowed.Contains(subject.Quality.QualityType))
|
if (!subject.Series.QualityProfile.Allowed.Contains(subject.Quality.Quality))
|
||||||
{
|
{
|
||||||
logger.Trace("Quality {0} rejected by Series' quality profile", subject.Quality);
|
logger.Trace("Quality {0} rejected by Series' quality profile", subject.Quality);
|
||||||
return false;
|
return false;
|
||||||
|
@ -9,7 +9,7 @@ namespace NzbDrone.Core.Providers.DecisionEngine
|
|||||||
{
|
{
|
||||||
private static readonly Logger logger = LogManager.GetCurrentClassLogger();
|
private static readonly Logger logger = LogManager.GetCurrentClassLogger();
|
||||||
|
|
||||||
public virtual bool IsSatisfiedBy(Quality currentQuality, Quality newQuality, QualityTypes cutOff)
|
public virtual bool IsSatisfiedBy(QualityModel currentQuality, QualityModel newQuality, QualityTypes cutOff)
|
||||||
{
|
{
|
||||||
if (currentQuality >= newQuality)
|
if (currentQuality >= newQuality)
|
||||||
{
|
{
|
||||||
@ -17,13 +17,13 @@ namespace NzbDrone.Core.Providers.DecisionEngine
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (currentQuality.QualityType == newQuality.QualityType && newQuality.Proper)
|
if (currentQuality.Quality == newQuality.Quality && newQuality.Proper)
|
||||||
{
|
{
|
||||||
logger.Trace("Upgrading existing item to proper.");
|
logger.Trace("Upgrading existing item to proper.");
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (currentQuality.QualityType >= cutOff)
|
if (currentQuality.Quality >= cutOff)
|
||||||
{
|
{
|
||||||
logger.Trace("Existing item meets cut-off. skipping.");
|
logger.Trace("Existing item meets cut-off. skipping.");
|
||||||
return false;
|
return false;
|
||||||
|
@ -27,7 +27,7 @@ namespace NzbDrone.Core.Providers.DecisionEngine
|
|||||||
foreach (var file in _episodeProvider.GetEpisodesByParseResult(subject).Select(c => c.EpisodeFile).Where(c => c != null))
|
foreach (var file in _episodeProvider.GetEpisodesByParseResult(subject).Select(c => c.EpisodeFile).Where(c => c != null))
|
||||||
{
|
{
|
||||||
logger.Trace("Comparing file quality with report. Existing file is {0} proper:{1}", file.Quality, file.Proper);
|
logger.Trace("Comparing file quality with report. Existing file is {0} proper:{1}", file.Quality, file.Proper);
|
||||||
if (!_qualityUpgradeSpecification.IsSatisfiedBy(new Quality { QualityType = file.Quality, Proper = file.Proper }, subject.Quality, subject.Series.QualityProfile.Cutoff))
|
if (!_qualityUpgradeSpecification.IsSatisfiedBy(new QualityModel { Quality = file.Quality, Proper = file.Proper }, subject.Quality, subject.Series.QualityProfile.Cutoff))
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -153,7 +153,7 @@ namespace NzbDrone.Core.Providers
|
|||||||
episodeFile.SeriesId = series.SeriesId;
|
episodeFile.SeriesId = series.SeriesId;
|
||||||
episodeFile.Path = filePath.NormalizePath();
|
episodeFile.Path = filePath.NormalizePath();
|
||||||
episodeFile.Size = size;
|
episodeFile.Size = size;
|
||||||
episodeFile.Quality = parseResult.Quality.QualityType;
|
episodeFile.Quality = parseResult.Quality.Quality;
|
||||||
episodeFile.Proper = parseResult.Quality.Proper;
|
episodeFile.Proper = parseResult.Quality.Proper;
|
||||||
episodeFile.SeasonNumber = parseResult.SeasonNumber;
|
episodeFile.SeasonNumber = parseResult.SeasonNumber;
|
||||||
episodeFile.SceneName = Path.GetFileNameWithoutExtension(filePath.NormalizePath());
|
episodeFile.SceneName = Path.GetFileNameWithoutExtension(filePath.NormalizePath());
|
||||||
@ -202,7 +202,7 @@ namespace NzbDrone.Core.Providers
|
|||||||
|
|
||||||
var parseResult = Parser.ParsePath(episodeFile.Path);
|
var parseResult = Parser.ParsePath(episodeFile.Path);
|
||||||
parseResult.Series = series;
|
parseResult.Series = series;
|
||||||
parseResult.Quality = new Quality{ QualityType = episodeFile.Quality, Proper = episodeFile.Proper };
|
parseResult.Quality = new QualityModel{ Quality = episodeFile.Quality, Proper = episodeFile.Proper };
|
||||||
|
|
||||||
var message = _downloadProvider.GetDownloadTitle(parseResult);
|
var message = _downloadProvider.GetDownloadTitle(parseResult);
|
||||||
|
|
||||||
|
@ -61,7 +61,7 @@ namespace NzbDrone.Core.Providers
|
|||||||
Date = DateTime.Now,
|
Date = DateTime.Now,
|
||||||
Indexer = parseResult.Indexer,
|
Indexer = parseResult.Indexer,
|
||||||
IsProper = parseResult.Quality.Proper,
|
IsProper = parseResult.Quality.Proper,
|
||||||
Quality = parseResult.Quality.QualityType,
|
Quality = parseResult.Quality.Quality,
|
||||||
NzbTitle = parseResult.OriginalString,
|
NzbTitle = parseResult.OriginalString,
|
||||||
EpisodeId = episode.EpisodeId,
|
EpisodeId = episode.EpisodeId,
|
||||||
SeriesId = episode.SeriesId,
|
SeriesId = episode.SeriesId,
|
||||||
@ -104,7 +104,7 @@ namespace NzbDrone.Core.Providers
|
|||||||
if (parseResult.FullSeason)
|
if (parseResult.FullSeason)
|
||||||
{
|
{
|
||||||
var seasonResult = String.Format("{0} - Season {1} [{2}]", seriesTitle,
|
var seasonResult = String.Format("{0} - Season {1} [{2}]", seriesTitle,
|
||||||
parseResult.SeasonNumber, parseResult.Quality.QualityType);
|
parseResult.SeasonNumber, parseResult.Quality.Quality);
|
||||||
|
|
||||||
if (parseResult.Quality.Proper)
|
if (parseResult.Quality.Proper)
|
||||||
seasonResult += " [Proper]";
|
seasonResult += " [Proper]";
|
||||||
@ -115,7 +115,7 @@ namespace NzbDrone.Core.Providers
|
|||||||
if (parseResult.Series.IsDaily)
|
if (parseResult.Series.IsDaily)
|
||||||
{
|
{
|
||||||
var dailyResult = String.Format("{0} - {1:yyyy-MM-dd} - {2} [{3}]", seriesTitle,
|
var dailyResult = String.Format("{0} - {1:yyyy-MM-dd} - {2} [{3}]", seriesTitle,
|
||||||
parseResult.AirDate, parseResult.EpisodeTitle, parseResult.Quality.QualityType);
|
parseResult.AirDate, parseResult.EpisodeTitle, parseResult.Quality.Quality);
|
||||||
|
|
||||||
if (parseResult.Quality.Proper)
|
if (parseResult.Quality.Proper)
|
||||||
dailyResult += " [Proper]";
|
dailyResult += " [Proper]";
|
||||||
@ -134,7 +134,7 @@ namespace NzbDrone.Core.Providers
|
|||||||
|
|
||||||
var epNumberString = String.Join("-", episodeString);
|
var epNumberString = String.Join("-", episodeString);
|
||||||
|
|
||||||
var result = String.Format("{0} - {1} - {2} [{3}]", seriesTitle, epNumberString, parseResult.EpisodeTitle, parseResult.Quality.QualityType);
|
var result = String.Format("{0} - {1} - {2} [{3}]", seriesTitle, epNumberString, parseResult.EpisodeTitle, parseResult.Quality.Quality);
|
||||||
|
|
||||||
if (parseResult.Quality.Proper)
|
if (parseResult.Quality.Proper)
|
||||||
{
|
{
|
||||||
|
@ -60,7 +60,7 @@ namespace NzbDrone.Core.Providers
|
|||||||
logger.Debug("Item added to history: {0}", item.NzbTitle);
|
logger.Debug("Item added to history: {0}", item.NzbTitle);
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual Quality GetBestQualityInHistory(int seriesId, int seasonNumber, int episodeNumber)
|
public virtual QualityModel GetBestQualityInHistory(int seriesId, int seasonNumber, int episodeNumber)
|
||||||
{
|
{
|
||||||
var quality = _database.SingleOrDefault<dynamic>(@"SELECT TOP 1 History.Quality , History.IsProper FROM History
|
var quality = _database.SingleOrDefault<dynamic>(@"SELECT TOP 1 History.Quality , History.IsProper FROM History
|
||||||
INNER JOIN Episodes ON History.EpisodeId = Episodes.EpisodeId
|
INNER JOIN Episodes ON History.EpisodeId = Episodes.EpisodeId
|
||||||
@ -72,7 +72,7 @@ namespace NzbDrone.Core.Providers
|
|||||||
|
|
||||||
if (quality == null) return null;
|
if (quality == null) return null;
|
||||||
|
|
||||||
return new Quality((QualityTypes)quality.Quality, quality.IsProper);
|
return new QualityModel((QualityTypes)quality.Quality, quality.IsProper);
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual void Delete(int historyId)
|
public virtual void Delete(int historyId)
|
||||||
|
@ -68,7 +68,7 @@ namespace NzbDrone.Core.Providers
|
|||||||
var hd = new QualityProfile
|
var hd = new QualityProfile
|
||||||
{
|
{
|
||||||
Name = "HD",
|
Name = "HD",
|
||||||
Allowed = new List<QualityTypes> { QualityTypes.HDTV, QualityTypes.WEBDL, QualityTypes.Bluray720p },
|
Allowed = new List<QualityTypes> { QualityTypes.HDTV, QualityTypes.WEBDL720p, QualityTypes.Bluray720p },
|
||||||
Cutoff = QualityTypes.HDTV
|
Cutoff = QualityTypes.HDTV
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -54,8 +54,7 @@ namespace NzbDrone.Core.Providers
|
|||||||
|
|
||||||
public virtual void SetupDefault()
|
public virtual void SetupDefault()
|
||||||
{
|
{
|
||||||
if (All().Count != 0)
|
var inDb = All();
|
||||||
return;
|
|
||||||
|
|
||||||
Logger.Debug("Setting up default quality types");
|
Logger.Debug("Setting up default quality types");
|
||||||
|
|
||||||
@ -63,11 +62,18 @@ namespace NzbDrone.Core.Providers
|
|||||||
qualityTypes.Add(new QualityType { QualityTypeId = 1, Name = "SDTV", MinSize = 0, MaxSize = 100 });
|
qualityTypes.Add(new QualityType { QualityTypeId = 1, Name = "SDTV", MinSize = 0, MaxSize = 100 });
|
||||||
qualityTypes.Add(new QualityType { QualityTypeId = 2, Name = "DVD", MinSize = 0, MaxSize = 100 });
|
qualityTypes.Add(new QualityType { QualityTypeId = 2, Name = "DVD", MinSize = 0, MaxSize = 100 });
|
||||||
qualityTypes.Add(new QualityType { QualityTypeId = 4, Name = "HDTV", MinSize = 0, MaxSize = 100 });
|
qualityTypes.Add(new QualityType { QualityTypeId = 4, Name = "HDTV", MinSize = 0, MaxSize = 100 });
|
||||||
qualityTypes.Add(new QualityType { QualityTypeId = 5, Name = "WEBDL", MinSize = 0, MaxSize = 100 });
|
qualityTypes.Add(new QualityType { QualityTypeId = 5, Name = "WEBDL720p", MinSize = 0, MaxSize = 100 });
|
||||||
|
qualityTypes.Add(new QualityType { QualityTypeId = 3, Name = "WEBDL1080p", MinSize = 0, MaxSize = 100 });
|
||||||
qualityTypes.Add(new QualityType { QualityTypeId = 6, Name = "Bluray720p", MinSize = 0, MaxSize = 100 });
|
qualityTypes.Add(new QualityType { QualityTypeId = 6, Name = "Bluray720p", MinSize = 0, MaxSize = 100 });
|
||||||
qualityTypes.Add(new QualityType { QualityTypeId = 7, Name = "Bluray1080p", MinSize = 0, MaxSize = 100 });
|
qualityTypes.Add(new QualityType { QualityTypeId = 7, Name = "Bluray1080p", MinSize = 0, MaxSize = 100 });
|
||||||
|
|
||||||
_database.InsertMany(qualityTypes);
|
foreach(var qualityType in qualityTypes)
|
||||||
|
{
|
||||||
|
var db = inDb.SingleOrDefault(s => s.QualityTypeId == qualityType.QualityTypeId);
|
||||||
|
|
||||||
|
if (db == null)
|
||||||
|
_database.Insert(qualityType);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -275,7 +275,7 @@ namespace NzbDrone.Core.Providers
|
|||||||
ReportTitle = episodeParseResult.OriginalString,
|
ReportTitle = episodeParseResult.OriginalString,
|
||||||
NzbUrl = episodeParseResult.NzbUrl,
|
NzbUrl = episodeParseResult.NzbUrl,
|
||||||
Indexer = episodeParseResult.Indexer,
|
Indexer = episodeParseResult.Indexer,
|
||||||
Quality = episodeParseResult.Quality.QualityType,
|
Quality = episodeParseResult.Quality.Quality,
|
||||||
Proper = episodeParseResult.Quality.Proper,
|
Proper = episodeParseResult.Quality.Proper,
|
||||||
Size = episodeParseResult.Size,
|
Size = episodeParseResult.Size,
|
||||||
Age = episodeParseResult.Age,
|
Age = episodeParseResult.Age,
|
||||||
@ -369,7 +369,7 @@ namespace NzbDrone.Core.Providers
|
|||||||
ReportTitle = episodeParseResult.OriginalString,
|
ReportTitle = episodeParseResult.OriginalString,
|
||||||
NzbUrl = episodeParseResult.NzbUrl,
|
NzbUrl = episodeParseResult.NzbUrl,
|
||||||
Indexer = episodeParseResult.Indexer,
|
Indexer = episodeParseResult.Indexer,
|
||||||
Quality = episodeParseResult.Quality.QualityType,
|
Quality = episodeParseResult.Quality.Quality,
|
||||||
Proper = episodeParseResult.Quality.Proper,
|
Proper = episodeParseResult.Quality.Proper,
|
||||||
Size = episodeParseResult.Size,
|
Size = episodeParseResult.Size,
|
||||||
Age = episodeParseResult.Age,
|
Age = episodeParseResult.Age,
|
||||||
|
@ -16,7 +16,7 @@ namespace NzbDrone.Core.Providers
|
|||||||
{
|
{
|
||||||
private static readonly Logger logger = LogManager.GetCurrentClassLogger();
|
private static readonly Logger logger = LogManager.GetCurrentClassLogger();
|
||||||
|
|
||||||
public virtual void UpdateEpisodeStatus(int episodeId, EpisodeStatusType episodeStatus, Quality quality)
|
public virtual void UpdateEpisodeStatus(int episodeId, EpisodeStatusType episodeStatus, QualityModel quality)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@ -26,7 +26,7 @@ namespace NzbDrone.Core.Providers
|
|||||||
{
|
{
|
||||||
EpisodeId = episodeId,
|
EpisodeId = episodeId,
|
||||||
EpisodeStatus = episodeStatus.ToString(),
|
EpisodeStatus = episodeStatus.ToString(),
|
||||||
Quality = (quality == null ? String.Empty : quality.QualityType.ToString())
|
Quality = (quality == null ? String.Empty : quality.Quality.ToString())
|
||||||
});
|
});
|
||||||
var test = 0;
|
var test = 0;
|
||||||
}
|
}
|
||||||
|
@ -38,15 +38,15 @@ namespace NzbDrone.Core.Repository
|
|||||||
public string ReleaseGroup { get; set; }
|
public string ReleaseGroup { get; set; }
|
||||||
|
|
||||||
[Ignore]
|
[Ignore]
|
||||||
public Model.Quality QualityWrapper
|
public Model.QualityModel QualityWrapper
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
return new Model.Quality(Quality, Proper);
|
return new Model.QualityModel(Quality, Proper);
|
||||||
}
|
}
|
||||||
set
|
set
|
||||||
{
|
{
|
||||||
Quality = value.QualityType;
|
Quality = value.Quality;
|
||||||
Proper = value.Proper;
|
Proper = value.Proper;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -31,7 +31,7 @@ namespace NzbDrone.Core.Repository.Quality
|
|||||||
|
|
||||||
foreach (var q in Allowed)
|
foreach (var q in Allowed)
|
||||||
{
|
{
|
||||||
result += (int)q + "|";
|
result += q.Id + "|";
|
||||||
}
|
}
|
||||||
return result.Trim('|');
|
return result.Trim('|');
|
||||||
}
|
}
|
||||||
@ -41,7 +41,7 @@ namespace NzbDrone.Core.Repository.Quality
|
|||||||
Allowed = new List<QualityTypes>(qualities.Length);
|
Allowed = new List<QualityTypes>(qualities.Length);
|
||||||
foreach (var quality in qualities.Where(q => !String.IsNullOrWhiteSpace(q)))
|
foreach (var quality in qualities.Where(q => !String.IsNullOrWhiteSpace(q)))
|
||||||
{
|
{
|
||||||
Allowed.Add((QualityTypes)Convert.ToInt32(quality));
|
Allowed.Add(QualityTypes.FindById(Convert.ToInt32(quality)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,44 +1,139 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
|
||||||
namespace NzbDrone.Core.Repository.Quality
|
namespace NzbDrone.Core.Repository.Quality
|
||||||
{
|
{
|
||||||
// ReSharper disable InconsistentNaming
|
public class QualityTypes : IComparable<QualityTypes>
|
||||||
/// <summary>
|
|
||||||
/// Represents Video Quality
|
|
||||||
/// </summary>
|
|
||||||
public enum QualityTypes
|
|
||||||
{
|
{
|
||||||
/// <summary>
|
public int Id { get; set; }
|
||||||
/// Quality is unknown
|
public string Name { get; set; }
|
||||||
/// </summary>
|
public int Weight { get; set; }
|
||||||
Unknown = 0,
|
|
||||||
|
|
||||||
/// <summary>
|
public int CompareTo(QualityTypes other)
|
||||||
/// SD File (Source could be HD)
|
{
|
||||||
/// </summary>
|
if (other.Weight > Weight)
|
||||||
SDTV = 1,
|
return -1;
|
||||||
|
|
||||||
/// <summary>
|
if (other.Weight < Weight)
|
||||||
/// SD File (DVD Source)
|
return 1;
|
||||||
/// </summary>
|
|
||||||
DVD = 2,
|
|
||||||
|
|
||||||
/// <summary>
|
if (other.Weight == Weight)
|
||||||
/// HD File (HDTV Source)
|
return 0;
|
||||||
/// </summary>
|
|
||||||
HDTV = 4,
|
|
||||||
|
|
||||||
/// <summary>
|
return 0;
|
||||||
/// HD File (Online Source)
|
}
|
||||||
/// </summary>
|
|
||||||
WEBDL = 5,
|
|
||||||
|
|
||||||
/// <summary>
|
public static bool operator !=(QualityTypes x, QualityTypes y)
|
||||||
/// HD File (720p Blu-ray Source)
|
{
|
||||||
/// </summary>
|
return !(x == y);
|
||||||
Bluray720p = 6,
|
}
|
||||||
|
|
||||||
/// <summary>
|
public static bool operator ==(QualityTypes x, QualityTypes y)
|
||||||
/// HD File (1080p Blu-ray Source)
|
{
|
||||||
/// </summary>
|
var xObj = (Object)x;
|
||||||
Bluray1080p = 7,
|
var yObj = (object)y;
|
||||||
|
|
||||||
|
if (xObj == null || yObj == null)
|
||||||
|
{
|
||||||
|
return xObj == yObj;
|
||||||
|
}
|
||||||
|
|
||||||
|
return x.CompareTo(y) == 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static bool operator >(QualityTypes x, QualityTypes y)
|
||||||
|
{
|
||||||
|
return x.CompareTo(y) > 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static bool operator <(QualityTypes x, QualityTypes y)
|
||||||
|
{
|
||||||
|
return x.CompareTo(y) < 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static bool operator <=(QualityTypes x, QualityTypes y)
|
||||||
|
{
|
||||||
|
return x.CompareTo(y) <= 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static bool operator >=(QualityTypes x, QualityTypes y)
|
||||||
|
{
|
||||||
|
return x.CompareTo(y) >= 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override string ToString()
|
||||||
|
{
|
||||||
|
return Name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override int GetHashCode()
|
||||||
|
{
|
||||||
|
unchecked // Overflow is fine, just wrap
|
||||||
|
{
|
||||||
|
int hash = 17;
|
||||||
|
hash = hash * 23 + Weight.GetHashCode();
|
||||||
|
return hash;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool Equals(QualityTypes other)
|
||||||
|
{
|
||||||
|
if (ReferenceEquals(null, other)) return false;
|
||||||
|
if (ReferenceEquals(this, other)) return true;
|
||||||
|
return Equals(other.Weight, Weight);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override bool Equals(object obj)
|
||||||
|
{
|
||||||
|
if (ReferenceEquals(null, obj)) return false;
|
||||||
|
if (ReferenceEquals(this, obj)) return true;
|
||||||
|
if (obj.GetType() != typeof (QualityTypes)) return false;
|
||||||
|
return Equals((QualityTypes) obj);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static QualityTypes Unknown = new QualityTypes { Id = 0, Name = "Unknown", Weight = 0 };
|
||||||
|
public static QualityTypes SDTV = new QualityTypes {Id = 1, Name = "SDTV", Weight = 1};
|
||||||
|
public static QualityTypes DVD = new QualityTypes { Id = 2, Name = "DVD", Weight = 2 };
|
||||||
|
public static QualityTypes HDTV = new QualityTypes { Id = 4, Name = "HDTV", Weight = 4 };
|
||||||
|
public static QualityTypes WEBDL720p = new QualityTypes { Id = 5, Name = "WEBDL-720p", Weight = 5 };
|
||||||
|
public static QualityTypes WEBDL1080p = new QualityTypes { Id = 3, Name = "WEBDL-1080p", Weight = 7 };
|
||||||
|
public static QualityTypes Bluray720p = new QualityTypes { Id = 6, Name = "Bluray720p", Weight = 6 };
|
||||||
|
public static QualityTypes Bluray1080p = new QualityTypes { Id = 7, Name = "Bluray1080p", Weight = 8 };
|
||||||
|
|
||||||
|
public static List<QualityTypes> All()
|
||||||
|
{
|
||||||
|
return new List<QualityTypes>
|
||||||
|
{
|
||||||
|
Unknown,
|
||||||
|
SDTV,
|
||||||
|
DVD,
|
||||||
|
HDTV,
|
||||||
|
WEBDL720p,
|
||||||
|
WEBDL1080p,
|
||||||
|
Bluray720p,
|
||||||
|
Bluray1080p
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
public static QualityTypes FindById(int id)
|
||||||
|
{
|
||||||
|
var quality = All().SingleOrDefault(q => q.Id == id);
|
||||||
|
|
||||||
|
if (quality == null)
|
||||||
|
throw new ArgumentException("ID does not match a known quality", "id");
|
||||||
|
|
||||||
|
return quality;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static explicit operator QualityTypes(int id)
|
||||||
|
{
|
||||||
|
return FindById(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static explicit operator int(QualityTypes quality)
|
||||||
|
{
|
||||||
|
return quality.Id;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -19,7 +19,7 @@ namespace NzbDrone.Core.Repository.Search
|
|||||||
public string NzbInfoUrl { get; set; }
|
public string NzbInfoUrl { get; set; }
|
||||||
public bool Success { get; set; }
|
public bool Success { get; set; }
|
||||||
public ReportRejectionType SearchError { get; set; }
|
public ReportRejectionType SearchError { get; set; }
|
||||||
public QualityTypes Quality { get; set; }
|
public Quality.QualityTypes Quality { get; set; }
|
||||||
public bool Proper { get; set; }
|
public bool Proper { get; set; }
|
||||||
public int Age { get; set; }
|
public int Age { get; set; }
|
||||||
public LanguageType Language { get; set; }
|
public LanguageType Language { get; set; }
|
||||||
|
@ -1,6 +1,11 @@
|
|||||||
#top
|
#top
|
||||||
{
|
{
|
||||||
overflow: auto;
|
margin: 20px;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
#top .settingsForm {
|
||||||
|
float: left;
|
||||||
}
|
}
|
||||||
|
|
||||||
#profileContainer
|
#profileContainer
|
||||||
@ -59,7 +64,7 @@
|
|||||||
.profileSection
|
.profileSection
|
||||||
{
|
{
|
||||||
float: left;
|
float: left;
|
||||||
width: 270px;
|
width: 265px;
|
||||||
margin: 2px;
|
margin: 2px;
|
||||||
border:solid 1px #CCCCCD;
|
border:solid 1px #CCCCCD;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
@ -74,7 +79,7 @@
|
|||||||
margin-right: 20px;
|
margin-right: 20px;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
width: 50px;
|
width: 40px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.profileOptions input, .profileOptions select
|
.profileOptions input, .profileOptions select
|
||||||
@ -142,7 +147,6 @@
|
|||||||
width: 600px;
|
width: 600px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.slider-container
|
#QualityForm .ui-accordion .ui-accordion-content {
|
||||||
{
|
padding: 1em 2em;
|
||||||
margin-bottom: 10px;
|
|
||||||
}
|
}
|
@ -115,5 +115,40 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.settingsForm .validation-error {
|
.settingsForm .validation-error {
|
||||||
background: url("../Content/jQueryUI/images/ui-bg_flat_30_b40404_40x100.png") repeat-x scroll 50% 50% #B40404;
|
background: url("../Content/jQueryUI/images/ui-bg_flat_30_b40404_40x100.png") repeat-x scroll 50% 50% #B40404;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* Navigation */
|
||||||
|
.settings-navigation {
|
||||||
|
line-height: normal;
|
||||||
|
list-style: none outside none;
|
||||||
|
margin-left: 5px;
|
||||||
|
margin-bottom: 30px;
|
||||||
|
padding: 5px 0px 20px 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.settings-navigation li {
|
||||||
|
display: block;
|
||||||
|
float: left;
|
||||||
|
padding: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.settings-navigation li.current_action a {
|
||||||
|
background-color: #065EFE;
|
||||||
|
}
|
||||||
|
|
||||||
|
.settings-navigation a {
|
||||||
|
background-color: #191919;
|
||||||
|
color: white;
|
||||||
|
display: block;
|
||||||
|
float: left;
|
||||||
|
font-family: "Segoe UI","Open Sans","Segoe UI Light",sans-serif;
|
||||||
|
font-size: 16px;
|
||||||
|
font-weight: normal;
|
||||||
|
height: 26px;
|
||||||
|
padding: 2px 10px;
|
||||||
|
text-align: center;
|
||||||
|
text-decoration: none;
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
@ -139,8 +139,7 @@ namespace NzbDrone.Web.Controllers
|
|||||||
}).ToList();
|
}).ToList();
|
||||||
model.Seasons = seasons;
|
model.Seasons = seasons;
|
||||||
|
|
||||||
var qualities = (from QualityTypes q in Enum.GetValues(typeof(QualityTypes))
|
var qualities = QualityTypes.All().ToList();
|
||||||
select new { Id = (int)q, Name = q.ToString() }).ToList();
|
|
||||||
|
|
||||||
model.QualitySelectList = new SelectList(qualities.Where(q => q.Id > 0), "Id", "Name");
|
model.QualitySelectList = new SelectList(qualities.Where(q => q.Id > 0), "Id", "Name");
|
||||||
|
|
||||||
|
@ -16,13 +16,13 @@ using NzbDrone.Core.Repository;
|
|||||||
using NzbDrone.Core.Repository.Quality;
|
using NzbDrone.Core.Repository.Quality;
|
||||||
using NzbDrone.Web.Filters;
|
using NzbDrone.Web.Filters;
|
||||||
using NzbDrone.Web.Models;
|
using NzbDrone.Web.Models;
|
||||||
|
using QualityModel = NzbDrone.Web.Models.QualityModel;
|
||||||
|
|
||||||
namespace NzbDrone.Web.Controllers
|
namespace NzbDrone.Web.Controllers
|
||||||
{
|
{
|
||||||
[HandleError]
|
[HandleError]
|
||||||
public class SettingsController : Controller
|
public class SettingsController : Controller
|
||||||
{
|
{
|
||||||
private static readonly Logger Logger = LogManager.GetCurrentClassLogger();
|
|
||||||
private readonly ConfigProvider _configProvider;
|
private readonly ConfigProvider _configProvider;
|
||||||
private readonly IndexerProvider _indexerProvider;
|
private readonly IndexerProvider _indexerProvider;
|
||||||
private readonly QualityProvider _qualityProvider;
|
private readonly QualityProvider _qualityProvider;
|
||||||
@ -35,6 +35,8 @@ namespace NzbDrone.Web.Controllers
|
|||||||
private readonly MetadataProvider _metadataProvider;
|
private readonly MetadataProvider _metadataProvider;
|
||||||
private readonly JobProvider _jobProvider;
|
private readonly JobProvider _jobProvider;
|
||||||
|
|
||||||
|
private static readonly Logger Logger = LogManager.GetCurrentClassLogger();
|
||||||
|
|
||||||
public SettingsController(ConfigProvider configProvider, IndexerProvider indexerProvider,
|
public SettingsController(ConfigProvider configProvider, IndexerProvider indexerProvider,
|
||||||
QualityProvider qualityProvider, AutoConfigureProvider autoConfigureProvider,
|
QualityProvider qualityProvider, AutoConfigureProvider autoConfigureProvider,
|
||||||
SeriesProvider seriesProvider, ExternalNotificationProvider externalNotificationProvider,
|
SeriesProvider seriesProvider, ExternalNotificationProvider externalNotificationProvider,
|
||||||
@ -58,7 +60,33 @@ namespace NzbDrone.Web.Controllers
|
|||||||
|
|
||||||
public ActionResult Index()
|
public ActionResult Index()
|
||||||
{
|
{
|
||||||
return View();
|
return RedirectToAction("Naming", "Settings");
|
||||||
|
}
|
||||||
|
|
||||||
|
public ActionResult Naming()
|
||||||
|
{
|
||||||
|
var model = new EpisodeNamingModel();
|
||||||
|
|
||||||
|
model.SeriesName = _configProvider.SortingIncludeSeriesName;
|
||||||
|
model.EpisodeName = _configProvider.SortingIncludeEpisodeTitle;
|
||||||
|
model.ReplaceSpaces = _configProvider.SortingReplaceSpaces;
|
||||||
|
model.AppendQuality = _configProvider.SortingAppendQuality;
|
||||||
|
model.SeasonFolders = _configProvider.UseSeasonFolder;
|
||||||
|
model.SeasonFolderFormat = _configProvider.SortingSeasonFolderFormat;
|
||||||
|
model.SeparatorStyle = _configProvider.SortingSeparatorStyle;
|
||||||
|
model.NumberStyle = _configProvider.SortingNumberStyle;
|
||||||
|
model.MultiEpisodeStyle = _configProvider.SortingMultiEpisodeStyle;
|
||||||
|
model.SceneName = _configProvider.SortingUseSceneName;
|
||||||
|
|
||||||
|
model.SeparatorStyles = new SelectList(EpisodeSortingHelper.GetSeparatorStyles(), "Id", "Name");
|
||||||
|
model.NumberStyles = new SelectList(EpisodeSortingHelper.GetNumberStyles(), "Id", "Name");
|
||||||
|
model.MultiEpisodeStyles = new SelectList(EpisodeSortingHelper.GetMultiEpisodeStyles(), "Id", "Name");
|
||||||
|
|
||||||
|
//Metadata
|
||||||
|
model.MetadataXbmcEnabled = _metadataProvider.GetSettings(typeof(Core.Providers.Metadata.Xbmc)).Enable;
|
||||||
|
model.MetadataUseBanners = _configProvider.MetadataUseBanners;
|
||||||
|
|
||||||
|
return View(model);
|
||||||
}
|
}
|
||||||
|
|
||||||
public ActionResult Indexers()
|
public ActionResult Indexers()
|
||||||
@ -126,7 +154,7 @@ namespace NzbDrone.Web.Controllers
|
|||||||
|
|
||||||
public ActionResult Quality()
|
public ActionResult Quality()
|
||||||
{
|
{
|
||||||
var profiles = _qualityProvider.All().ToList();
|
var profiles = _qualityProvider.All();
|
||||||
|
|
||||||
var defaultQualityQualityProfileId = Convert.ToInt32(_configProvider.DefaultQualityProfile);
|
var defaultQualityQualityProfileId = Convert.ToInt32(_configProvider.DefaultQualityProfile);
|
||||||
var qualityProfileSelectList = new SelectList(profiles, "QualityProfileId", "Name");
|
var qualityProfileSelectList = new SelectList(profiles, "QualityProfileId", "Name");
|
||||||
@ -139,7 +167,8 @@ namespace NzbDrone.Web.Controllers
|
|||||||
SdtvMaxSize = qualityTypesFromDb.Single(q => q.QualityTypeId == 1).MaxSize,
|
SdtvMaxSize = qualityTypesFromDb.Single(q => q.QualityTypeId == 1).MaxSize,
|
||||||
DvdMaxSize = qualityTypesFromDb.Single(q => q.QualityTypeId == 2).MaxSize,
|
DvdMaxSize = qualityTypesFromDb.Single(q => q.QualityTypeId == 2).MaxSize,
|
||||||
HdtvMaxSize = qualityTypesFromDb.Single(q => q.QualityTypeId == 4).MaxSize,
|
HdtvMaxSize = qualityTypesFromDb.Single(q => q.QualityTypeId == 4).MaxSize,
|
||||||
WebdlMaxSize = qualityTypesFromDb.Single(q => q.QualityTypeId == 5).MaxSize,
|
Webdl720pMaxSize = qualityTypesFromDb.Single(q => q.QualityTypeId == 5).MaxSize,
|
||||||
|
Webdl1080pMaxSize = qualityTypesFromDb.Single(q => q.QualityTypeId == 3).MaxSize,
|
||||||
Bluray720pMaxSize = qualityTypesFromDb.Single(q => q.QualityTypeId == 6).MaxSize,
|
Bluray720pMaxSize = qualityTypesFromDb.Single(q => q.QualityTypeId == 6).MaxSize,
|
||||||
Bluray1080pMaxSize = qualityTypesFromDb.Single(q => q.QualityTypeId == 7).MaxSize
|
Bluray1080pMaxSize = qualityTypesFromDb.Single(q => q.QualityTypeId == 7).MaxSize
|
||||||
};
|
};
|
||||||
@ -199,32 +228,6 @@ namespace NzbDrone.Web.Controllers
|
|||||||
return View(model);
|
return View(model);
|
||||||
}
|
}
|
||||||
|
|
||||||
public ActionResult Naming()
|
|
||||||
{
|
|
||||||
var model = new EpisodeNamingModel();
|
|
||||||
|
|
||||||
model.SeriesName = _configProvider.SortingIncludeSeriesName;
|
|
||||||
model.EpisodeName = _configProvider.SortingIncludeEpisodeTitle;
|
|
||||||
model.ReplaceSpaces = _configProvider.SortingReplaceSpaces;
|
|
||||||
model.AppendQuality = _configProvider.SortingAppendQuality;
|
|
||||||
model.SeasonFolders = _configProvider.UseSeasonFolder;
|
|
||||||
model.SeasonFolderFormat = _configProvider.SortingSeasonFolderFormat;
|
|
||||||
model.SeparatorStyle = _configProvider.SortingSeparatorStyle;
|
|
||||||
model.NumberStyle = _configProvider.SortingNumberStyle;
|
|
||||||
model.MultiEpisodeStyle = _configProvider.SortingMultiEpisodeStyle;
|
|
||||||
model.SceneName = _configProvider.SortingUseSceneName;
|
|
||||||
|
|
||||||
model.SeparatorStyles = new SelectList(EpisodeSortingHelper.GetSeparatorStyles(), "Id", "Name");
|
|
||||||
model.NumberStyles = new SelectList(EpisodeSortingHelper.GetNumberStyles(), "Id", "Name");
|
|
||||||
model.MultiEpisodeStyles = new SelectList(EpisodeSortingHelper.GetMultiEpisodeStyles(), "Id", "Name");
|
|
||||||
|
|
||||||
//Metadata
|
|
||||||
model.MetadataXbmcEnabled = _metadataProvider.GetSettings(typeof(Core.Providers.Metadata.Xbmc)).Enable;
|
|
||||||
model.MetadataUseBanners = _configProvider.MetadataUseBanners;
|
|
||||||
|
|
||||||
return View(model);
|
|
||||||
}
|
|
||||||
|
|
||||||
public ActionResult System()
|
public ActionResult System()
|
||||||
{
|
{
|
||||||
var selectedAuthenticationType = _configFileProvider.AuthenticationType;
|
var selectedAuthenticationType = _configFileProvider.AuthenticationType;
|
||||||
@ -271,7 +274,7 @@ namespace NzbDrone.Web.Controllers
|
|||||||
return GetQualityProfileView(qualityProfile);
|
return GetQualityProfileView(qualityProfile);
|
||||||
}
|
}
|
||||||
|
|
||||||
public PartialViewResult GetQualityProfileView(QualityProfile profile)
|
public PartialViewResult GetQualityProfileView(QualityProfile profile)
|
||||||
{
|
{
|
||||||
var model = new QualityProfileModel();
|
var model = new QualityProfileModel();
|
||||||
model.QualityProfileId = profile.QualityProfileId;
|
model.QualityProfileId = profile.QualityProfileId;
|
||||||
@ -280,10 +283,19 @@ namespace NzbDrone.Web.Controllers
|
|||||||
model.Sdtv = profile.Allowed.Contains(QualityTypes.SDTV);
|
model.Sdtv = profile.Allowed.Contains(QualityTypes.SDTV);
|
||||||
model.Dvd = profile.Allowed.Contains(QualityTypes.DVD);
|
model.Dvd = profile.Allowed.Contains(QualityTypes.DVD);
|
||||||
model.Hdtv = profile.Allowed.Contains(QualityTypes.HDTV);
|
model.Hdtv = profile.Allowed.Contains(QualityTypes.HDTV);
|
||||||
model.Webdl = profile.Allowed.Contains(QualityTypes.WEBDL);
|
model.Webdl720p = profile.Allowed.Contains(QualityTypes.WEBDL720p);
|
||||||
|
model.Webdl1080p = profile.Allowed.Contains(QualityTypes.WEBDL1080p);
|
||||||
model.Bluray720p = profile.Allowed.Contains(QualityTypes.Bluray720p);
|
model.Bluray720p = profile.Allowed.Contains(QualityTypes.Bluray720p);
|
||||||
model.Bluray1080p = profile.Allowed.Contains(QualityTypes.Bluray1080p);
|
model.Bluray1080p = profile.Allowed.Contains(QualityTypes.Bluray1080p);
|
||||||
model.Cutoff = profile.Cutoff;
|
model.Cutoff = (int)profile.Cutoff;
|
||||||
|
|
||||||
|
model.SdtvId = QualityTypes.SDTV.Id;
|
||||||
|
model.DvdId = QualityTypes.DVD.Id;
|
||||||
|
model.HdtvId = QualityTypes.HDTV.Id;
|
||||||
|
model.Webdl720pId = QualityTypes.WEBDL720p.Id;
|
||||||
|
model.Webdl1080pId = QualityTypes.WEBDL1080p.Id;
|
||||||
|
model.Bluray720pId = QualityTypes.Bluray720p.Id;
|
||||||
|
model.Bluray1080pId = QualityTypes.Bluray1080p.Id;
|
||||||
|
|
||||||
return PartialView("QualityProfileItem", model);
|
return PartialView("QualityProfileItem", model);
|
||||||
}
|
}
|
||||||
@ -472,7 +484,7 @@ namespace NzbDrone.Web.Controllers
|
|||||||
var profile = new QualityProfile();
|
var profile = new QualityProfile();
|
||||||
profile.QualityProfileId = profileModel.QualityProfileId;
|
profile.QualityProfileId = profileModel.QualityProfileId;
|
||||||
profile.Name = profileModel.Name;
|
profile.Name = profileModel.Name;
|
||||||
profile.Cutoff = profileModel.Cutoff;
|
profile.Cutoff = (QualityTypes)profileModel.Cutoff;
|
||||||
|
|
||||||
profile.Allowed = new List<QualityTypes>();
|
profile.Allowed = new List<QualityTypes>();
|
||||||
|
|
||||||
@ -485,8 +497,11 @@ namespace NzbDrone.Web.Controllers
|
|||||||
if (profileModel.Hdtv)
|
if (profileModel.Hdtv)
|
||||||
profile.Allowed.Add(QualityTypes.HDTV);
|
profile.Allowed.Add(QualityTypes.HDTV);
|
||||||
|
|
||||||
if (profileModel.Webdl)
|
if (profileModel.Webdl720p)
|
||||||
profile.Allowed.Add(QualityTypes.WEBDL);
|
profile.Allowed.Add(QualityTypes.WEBDL720p);
|
||||||
|
|
||||||
|
if (profileModel.Webdl1080p)
|
||||||
|
profile.Allowed.Add(QualityTypes.WEBDL1080p);
|
||||||
|
|
||||||
if (profileModel.Bluray720p)
|
if (profileModel.Bluray720p)
|
||||||
profile.Allowed.Add(QualityTypes.Bluray720p);
|
profile.Allowed.Add(QualityTypes.Bluray720p);
|
||||||
@ -506,7 +521,8 @@ namespace NzbDrone.Web.Controllers
|
|||||||
qualityTypesFromDb.Single(q => q.QualityTypeId == 1).MaxSize = data.SdtvMaxSize;
|
qualityTypesFromDb.Single(q => q.QualityTypeId == 1).MaxSize = data.SdtvMaxSize;
|
||||||
qualityTypesFromDb.Single(q => q.QualityTypeId == 2).MaxSize = data.DvdMaxSize;
|
qualityTypesFromDb.Single(q => q.QualityTypeId == 2).MaxSize = data.DvdMaxSize;
|
||||||
qualityTypesFromDb.Single(q => q.QualityTypeId == 4).MaxSize = data.HdtvMaxSize;
|
qualityTypesFromDb.Single(q => q.QualityTypeId == 4).MaxSize = data.HdtvMaxSize;
|
||||||
qualityTypesFromDb.Single(q => q.QualityTypeId == 5).MaxSize = data.WebdlMaxSize;
|
qualityTypesFromDb.Single(q => q.QualityTypeId == 5).MaxSize = data.Webdl720pMaxSize;
|
||||||
|
qualityTypesFromDb.Single(q => q.QualityTypeId == 3).MaxSize = data.Webdl1080pMaxSize;
|
||||||
qualityTypesFromDb.Single(q => q.QualityTypeId == 6).MaxSize = data.Bluray720pMaxSize;
|
qualityTypesFromDb.Single(q => q.QualityTypeId == 6).MaxSize = data.Bluray720pMaxSize;
|
||||||
qualityTypesFromDb.Single(q => q.QualityTypeId == 7).MaxSize = data.Bluray1080pMaxSize;
|
qualityTypesFromDb.Single(q => q.QualityTypeId == 7).MaxSize = data.Bluray1080pMaxSize;
|
||||||
|
|
||||||
|
@ -6,6 +6,7 @@ using System.Threading;
|
|||||||
using System.Web;
|
using System.Web;
|
||||||
using System.Web.Mvc;
|
using System.Web.Mvc;
|
||||||
using System.Web.Routing;
|
using System.Web.Routing;
|
||||||
|
using LowercaseRoutesMVC;
|
||||||
using NLog.Config;
|
using NLog.Config;
|
||||||
using Ninject;
|
using Ninject;
|
||||||
using Ninject.Web.Mvc;
|
using Ninject.Web.Mvc;
|
||||||
@ -26,7 +27,7 @@ namespace NzbDrone.Web
|
|||||||
routes.IgnoreRoute("{*favicon}", new { favicon = @"(.*/)?favicon.ico(/.*)?" });
|
routes.IgnoreRoute("{*favicon}", new { favicon = @"(.*/)?favicon.ico(/.*)?" });
|
||||||
|
|
||||||
|
|
||||||
routes.MapRoute(
|
routes.MapRouteLowercase(
|
||||||
"Default", // Route name
|
"Default", // Route name
|
||||||
"{controller}/{action}/{id}", // URL with parameters
|
"{controller}/{action}/{id}", // URL with parameters
|
||||||
new { controller = "Series", action = "Index", id = UrlParameter.Optional } // Parameter defaults
|
new { controller = "Series", action = "Index", id = UrlParameter.Optional } // Parameter defaults
|
||||||
|
@ -7,7 +7,7 @@ namespace NzbDrone.Web.Helpers
|
|||||||
{
|
{
|
||||||
public static class IsCurrentActionHelper
|
public static class IsCurrentActionHelper
|
||||||
{
|
{
|
||||||
private static bool IsCurrentController(HtmlHelper helper, string actionName, string controllerName)
|
private static bool IsCurrentController(HtmlHelper helper, string controllerName)
|
||||||
{
|
{
|
||||||
var currentControllerName = (string) helper.ViewContext.RouteData.Values["controller"];
|
var currentControllerName = (string) helper.ViewContext.RouteData.Values["controller"];
|
||||||
|
|
||||||
@ -17,12 +17,23 @@ namespace NzbDrone.Web.Helpers
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static string CurrentActionLink(this HtmlHelper helper, string text, string actionName,
|
private static bool IsCurrentAction(HtmlHelper helper, string actionName, string controllerName)
|
||||||
string controllerName)
|
{
|
||||||
|
var currentControllerName = (string)helper.ViewContext.RouteData.Values["controller"];
|
||||||
|
var currentActionName = (string)helper.ViewContext.RouteData.Values["action"];
|
||||||
|
|
||||||
|
if (currentControllerName.Equals(controllerName, StringComparison.CurrentCultureIgnoreCase) &&
|
||||||
|
currentActionName.Equals(actionName, StringComparison.CurrentCultureIgnoreCase))
|
||||||
|
return true;
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static string CurrentControllerLink(this HtmlHelper helper, string text, string actionName, string controllerName)
|
||||||
{
|
{
|
||||||
string result;
|
string result;
|
||||||
|
|
||||||
if (IsCurrentController(helper, actionName, controllerName))
|
if (IsCurrentController(helper, controllerName))
|
||||||
{
|
{
|
||||||
result = "<li class='current_page_item'>";
|
result = "<li class='current_page_item'>";
|
||||||
}
|
}
|
||||||
@ -33,5 +44,21 @@ namespace NzbDrone.Web.Helpers
|
|||||||
|
|
||||||
return result + helper.ActionLink(text, actionName, controllerName).ToHtmlString() + @"</li>";
|
return result + helper.ActionLink(text, actionName, controllerName).ToHtmlString() + @"</li>";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static string CurrentActionLink(this HtmlHelper helper, string text, string actionName, string controllerName)
|
||||||
|
{
|
||||||
|
string result;
|
||||||
|
|
||||||
|
if (IsCurrentAction(helper, actionName, controllerName))
|
||||||
|
{
|
||||||
|
result = "<li class='current_action'>";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
result = "<li>";
|
||||||
|
}
|
||||||
|
|
||||||
|
return result + helper.ActionLink(text, actionName, controllerName).ToHtmlString() + @"</li>";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -18,7 +18,8 @@ namespace NzbDrone.Web.Models
|
|||||||
public int SdtvMaxSize { get; set; }
|
public int SdtvMaxSize { get; set; }
|
||||||
public int DvdMaxSize { get; set; }
|
public int DvdMaxSize { get; set; }
|
||||||
public int HdtvMaxSize { get; set; }
|
public int HdtvMaxSize { get; set; }
|
||||||
public int WebdlMaxSize { get; set; }
|
public int Webdl720pMaxSize { get; set; }
|
||||||
|
public int Webdl1080pMaxSize { get; set; }
|
||||||
public int Bluray720pMaxSize { get; set; }
|
public int Bluray720pMaxSize { get; set; }
|
||||||
public int Bluray1080pMaxSize { get; set; }
|
public int Bluray1080pMaxSize { get; set; }
|
||||||
}
|
}
|
||||||
|
@ -18,7 +18,7 @@ namespace NzbDrone.Web.Models
|
|||||||
|
|
||||||
[DisplayName("Cut-off")]
|
[DisplayName("Cut-off")]
|
||||||
[Required(ErrorMessage = "Valid Cut-off is Required")]
|
[Required(ErrorMessage = "Valid Cut-off is Required")]
|
||||||
public QualityTypes Cutoff { get; set; }
|
public int Cutoff { get; set; }
|
||||||
|
|
||||||
[DisplayName("Allowed Qualities")]
|
[DisplayName("Allowed Qualities")]
|
||||||
public List<QualityTypes> Allowed { get; set; }
|
public List<QualityTypes> Allowed { get; set; }
|
||||||
@ -26,20 +26,30 @@ namespace NzbDrone.Web.Models
|
|||||||
//Quality Booleans
|
//Quality Booleans
|
||||||
[DisplayName("SDTV")]
|
[DisplayName("SDTV")]
|
||||||
public bool Sdtv { get; set; }
|
public bool Sdtv { get; set; }
|
||||||
|
public int SdtvId { get; set; }
|
||||||
|
|
||||||
[DisplayName("DVD")]
|
[DisplayName("DVD")]
|
||||||
public bool Dvd { get; set; }
|
public bool Dvd { get; set; }
|
||||||
|
public int DvdId { get; set; }
|
||||||
|
|
||||||
[DisplayName("HDTV")]
|
[DisplayName("HDTV")]
|
||||||
public bool Hdtv { get; set; }
|
public bool Hdtv { get; set; }
|
||||||
|
public int HdtvId { get; set; }
|
||||||
|
|
||||||
[DisplayName("WEBDL")]
|
[DisplayName("WEBDL-720p")]
|
||||||
public bool Webdl { get; set; }
|
public bool Webdl720p { get; set; }
|
||||||
|
public int Webdl720pId { get; set; }
|
||||||
|
|
||||||
|
[DisplayName("WEBDL-1080p")]
|
||||||
|
public bool Webdl1080p { get; set; }
|
||||||
|
public int Webdl1080pId { get; set; }
|
||||||
|
|
||||||
[DisplayName("Bluray720p")]
|
[DisplayName("Bluray720p")]
|
||||||
public bool Bluray720p { get; set; }
|
public bool Bluray720p { get; set; }
|
||||||
|
public int Bluray720pId { get; set; }
|
||||||
|
|
||||||
[DisplayName("Bluray1080p")]
|
[DisplayName("Bluray1080p")]
|
||||||
public bool Bluray1080p { get; set; }
|
public bool Bluray1080p { get; set; }
|
||||||
|
public int Bluray1080pId { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -63,6 +63,9 @@
|
|||||||
<Reference Include="EntityFramework, Version=4.3.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
|
<Reference Include="EntityFramework, Version=4.3.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\EntityFramework.4.3.0\lib\net40\EntityFramework.dll</HintPath>
|
<HintPath>..\packages\EntityFramework.4.3.0\lib\net40\EntityFramework.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
|
<Reference Include="LowercaseRoutesMVC">
|
||||||
|
<HintPath>..\packages\LowercaseRoutesMVC.1.0.3\lib\LowercaseRoutesMVC.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
<Reference Include="Microsoft.CSharp" />
|
<Reference Include="Microsoft.CSharp" />
|
||||||
<Reference Include="Microsoft.Web.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
<Reference Include="Microsoft.Web.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||||
<Private>True</Private>
|
<Private>True</Private>
|
||||||
@ -412,6 +415,7 @@
|
|||||||
<Content Include="Views\Settings\QualityProfileItem.cshtml" />
|
<Content Include="Views\Settings\QualityProfileItem.cshtml" />
|
||||||
<Content Include="Views\System\Indexers.cshtml" />
|
<Content Include="Views\System\Indexers.cshtml" />
|
||||||
<Content Include="Views\System\Config.cshtml" />
|
<Content Include="Views\System\Config.cshtml" />
|
||||||
|
<Content Include="Views\Settings\_SettingsLayout.cshtml" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Folder Include="App_Data\" />
|
<Folder Include="App_Data\" />
|
||||||
@ -473,9 +477,6 @@
|
|||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Content Include="Views\Update\ViewLog.cshtml" />
|
<Content Include="Views\Update\ViewLog.cshtml" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
|
||||||
<Content Include="Views\Settings\Index.cshtml" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Content Include="Views\Shared\_ReferenceLayout.cshtml" />
|
<Content Include="Views\Shared\_ReferenceLayout.cshtml" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
@ -70,21 +70,19 @@ $(document).on('click', '.quality-selectee', function () {
|
|||||||
var cleanId = getCleanId(this);
|
var cleanId = getCleanId(this);
|
||||||
var cutoff = '#' + cleanId + '_Cutoff';
|
var cutoff = '#' + cleanId + '_Cutoff';
|
||||||
var name = jQuery('[for="' + id + '"]').children('.ui-button-text').text();
|
var name = jQuery('[for="' + id + '"]').children('.ui-button-text').text();
|
||||||
|
var qualityId = $(this).attr('data-quality-id');
|
||||||
|
|
||||||
//Remove 'Unknown'
|
//Remove 'Unknown'
|
||||||
$(cutoff + ' option').each(function () { if ($(this).text().indexOf('Unknown') > -1) $(cutoff + ' option').remove(':contains("' + $(this).text() + '")'); });
|
$(cutoff + ' option').each(function () { if ($(this).text().indexOf('Unknown') > -1) $(cutoff + ' option').remove(':contains("' + $(this).text() + '")'); });
|
||||||
|
|
||||||
//Add option to cutoff SelectList
|
//Add option to cutoff SelectList
|
||||||
if ($(this).attr('checked')) {
|
if ($(this).attr('checked')) {
|
||||||
$('<option>' + name + '</option>').appendTo(cutoff);
|
$('<option>' + name + '</option>').val(qualityId).appendTo(cutoff);
|
||||||
}
|
}
|
||||||
|
|
||||||
//Remove option from cutoff SelectList
|
//Remove option from cutoff SelectList
|
||||||
else {
|
else {
|
||||||
$(cutoff + ' option').each(function () {
|
$(cutoff).find('option[value="' + qualityId + '"]').remove();
|
||||||
if ($(this).text().indexOf(name) > -1)
|
|
||||||
$(cutoff + ' option').remove(':contains("' + $(this).text() + '")');
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -1,6 +1,10 @@
|
|||||||
@using NzbDrone.Web.Helpers;
|
@using NzbDrone.Web.Helpers;
|
||||||
@model NzbDrone.Web.Models.DownloadClientSettingsModel
|
@model NzbDrone.Web.Models.DownloadClientSettingsModel
|
||||||
@{ Layout = null; }
|
|
||||||
|
@{
|
||||||
|
Layout = "_SettingsLayout.cshtml";
|
||||||
|
}
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
.downloadClient
|
.downloadClient
|
||||||
{
|
{
|
||||||
|
@ -1,34 +0,0 @@
|
|||||||
@using NzbDrone.Web.Helpers
|
|
||||||
@{ViewBag.Title = "Settings";}
|
|
||||||
|
|
||||||
@section HeaderContent
|
|
||||||
{
|
|
||||||
@Html.IncludeCss("Settings.css")
|
|
||||||
@Html.IncludeCss("IndexerSettings.css")
|
|
||||||
@Html.IncludeCss("QualitySettings.css")
|
|
||||||
}
|
|
||||||
|
|
||||||
<div class="jquery-tabs">
|
|
||||||
<ul>
|
|
||||||
<li><a href="#Naming">Naming</a></li>
|
|
||||||
<li>@Html.ActionLink("Quality", "Quality", "Settings")</li>
|
|
||||||
<li>@Html.ActionLink("Indexers", "Indexers", "Settings")</li>
|
|
||||||
<li>@Html.ActionLink("Download Client", "DownloadClient", "Settings")</li>
|
|
||||||
<li>@Html.ActionLink("Notifications", "Notifications", "Settings")</li>
|
|
||||||
<li>@Html.ActionLink("System", "System", "Settings")</li>
|
|
||||||
<li>@Html.ActionLink("Misc", "Misc", "Settings")</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<div id="Naming">@{ Html.RenderAction("Naming", "Settings"); }</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
@section Scripts{
|
|
||||||
@Html.IncludeScript("NzbDrone/settings.js")
|
|
||||||
@Html.IncludeScript("NzbDrone/qualitySettings.js")
|
|
||||||
|
|
||||||
<script type="text/javascript">
|
|
||||||
$(document).ready(function () {
|
|
||||||
createExamples();
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
}
|
|
@ -1,12 +1,16 @@
|
|||||||
@using NzbDrone.Web.Helpers
|
@using NzbDrone.Web.Helpers
|
||||||
@model NzbDrone.Web.Models.IndexerSettingsModel
|
@model NzbDrone.Web.Models.IndexerSettingsModel
|
||||||
@{ Layout = null; }
|
|
||||||
|
@{
|
||||||
|
Layout = "_SettingsLayout.cshtml";
|
||||||
|
}
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
.indexerStatusContainer {
|
.indexerStatusContainer {
|
||||||
margin-left: 14px;
|
margin-left: 14px;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<div class="indexerStatusContainer">
|
<div class="indexerStatusContainer">
|
||||||
@Html.CheckBox("nzbMatrixStatus", @Model.NzbMatrixEnabled, new { @class = "indexerStatusButton" })
|
@Html.CheckBox("nzbMatrixStatus", @Model.NzbMatrixEnabled, new { @class = "indexerStatusButton" })
|
||||||
<label for="nzbMatrixStatus">NZBMatrix</label>
|
<label for="nzbMatrixStatus">NZBMatrix</label>
|
||||||
@ -177,7 +181,9 @@
|
|||||||
}
|
}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script type="text/javascript">
|
@section Scripts
|
||||||
|
{
|
||||||
|
<script type="text/javascript">
|
||||||
$(document).ready(function () {
|
$(document).ready(function () {
|
||||||
//Allow unobstrusive validation of the AJAX loaded form
|
//Allow unobstrusive validation of the AJAX loaded form
|
||||||
$.validator.unobtrusive.parse("#IndexersForm");
|
$.validator.unobtrusive.parse("#IndexersForm");
|
||||||
@ -318,3 +324,4 @@
|
|||||||
$("#title_" + profileId).text(value);
|
$("#title_" + profileId).text(value);
|
||||||
}).keyup();
|
}).keyup();
|
||||||
</script>
|
</script>
|
||||||
|
}
|
||||||
|
@ -1,6 +1,9 @@
|
|||||||
@using NzbDrone.Web.Helpers
|
@using NzbDrone.Web.Helpers
|
||||||
@model NzbDrone.Web.Models.MiscSettingsModel
|
@model NzbDrone.Web.Models.MiscSettingsModel
|
||||||
@{ Layout = null; }
|
|
||||||
|
@{
|
||||||
|
Layout = "_SettingsLayout.cshtml";
|
||||||
|
}
|
||||||
|
|
||||||
<div class="warningBox">
|
<div class="warningBox">
|
||||||
Enabling Backlog Searching can use lots of bandwidth and is not recommended for users with block Usenet accounts or bandwidth restrictions.
|
Enabling Backlog Searching can use lots of bandwidth and is not recommended for users with block Usenet accounts or bandwidth restrictions.
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
@using NzbDrone.Web.Helpers
|
@model NzbDrone.Web.Models.EpisodeNamingModel
|
||||||
@model NzbDrone.Web.Models.EpisodeNamingModel
|
|
||||||
@{
|
@{
|
||||||
Layout = null;
|
Layout = "_SettingsLayout.cshtml";
|
||||||
}
|
}
|
||||||
<style>
|
<style>
|
||||||
#examples
|
#examples
|
||||||
@ -35,4 +34,12 @@
|
|||||||
<button type="submit" class="save_button" disabled="disabled">
|
<button type="submit" class="save_button" disabled="disabled">
|
||||||
Save</button>
|
Save</button>
|
||||||
}
|
}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@section Scripts{
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(document).ready(function () {
|
||||||
|
createExamples();
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
}
|
@ -1,5 +1,9 @@
|
|||||||
@model NzbDrone.Web.Models.NotificationSettingsModel
|
@model NzbDrone.Web.Models.NotificationSettingsModel
|
||||||
@{ Layout = null; }
|
|
||||||
|
@{
|
||||||
|
Layout = "_SettingsLayout.cshtml";
|
||||||
|
}
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
.notifier
|
.notifier
|
||||||
{
|
{
|
||||||
@ -54,38 +58,42 @@
|
|||||||
Save</button>
|
Save</button>
|
||||||
}
|
}
|
||||||
</div>
|
</div>
|
||||||
<script type="text/javascript">
|
|
||||||
$(document).ready(function () {
|
|
||||||
//Allow unobstrusive validation of the AJAX loaded form
|
|
||||||
$.validator.unobtrusive.parse('#NotificationForm');
|
|
||||||
|
|
||||||
//Validator Settings
|
@section Scripts
|
||||||
var settings = $.data($('#NotificationForm')[0], 'validator').settings;
|
{
|
||||||
settings.ignore = [];
|
<script type="text/javascript">
|
||||||
settings.focusInvalid = false;
|
$(document).ready(function() {
|
||||||
settings.onfocusout = function (element) { $(element).valid(); };
|
//Allow unobstrusive validation of the AJAX loaded form
|
||||||
|
$.validator.unobtrusive.parse('#NotificationForm');
|
||||||
|
|
||||||
var oldHighlight = settings.highlight;
|
//Validator Settings
|
||||||
var oldUnhighlight = settings.unhighlight;
|
var settings = $.data($('#NotificationForm')[0], 'validator').settings;
|
||||||
|
settings.ignore = [];
|
||||||
|
settings.focusInvalid = false;
|
||||||
|
settings.onfocusout = function(element) { $(element).valid(); };
|
||||||
|
|
||||||
settings.highlight = function (element, errorClass, validClass) {
|
var oldHighlight = settings.highlight;
|
||||||
oldHighlight(element, errorClass, validClass);
|
var oldUnhighlight = settings.unhighlight;
|
||||||
$(element).parents('div.ui-accordion-content').prev('h3.ui-accordion-header').addClass('validation-error');
|
|
||||||
};
|
|
||||||
settings.unhighlight = function (element, errorClass, validClass) {
|
|
||||||
oldUnhighlight(element, errorClass, validClass);
|
|
||||||
|
|
||||||
var container = $(element).parents('div.ui-accordion-content');
|
settings.highlight = function(element, errorClass, validClass) {
|
||||||
if ($(container).children('.' + errorClass).length == 0)
|
oldHighlight(element, errorClass, validClass);
|
||||||
|
$(element).parents('div.ui-accordion-content').prev('h3.ui-accordion-header').addClass('validation-error');
|
||||||
|
};
|
||||||
|
settings.unhighlight = function(element, errorClass, validClass) {
|
||||||
|
oldUnhighlight(element, errorClass, validClass);
|
||||||
|
|
||||||
|
var container = $(element).parents('div.ui-accordion-content');
|
||||||
|
if ($(container).children('.' + errorClass).length == 0)
|
||||||
|
$(container).prev('h3.ui-accordion-header').removeClass('validation-error');
|
||||||
|
};
|
||||||
|
});
|
||||||
|
|
||||||
|
$(document).on('change', '.checkClass', function() {
|
||||||
|
$("#NotificationForm").validate().form();
|
||||||
|
|
||||||
|
var container = $('div.ui-accordion-content');
|
||||||
|
if ($(container).children('.input-validation-error').length == 0)
|
||||||
$(container).prev('h3.ui-accordion-header').removeClass('validation-error');
|
$(container).prev('h3.ui-accordion-header').removeClass('validation-error');
|
||||||
};
|
});
|
||||||
});
|
</script>
|
||||||
|
}
|
||||||
$(document).on('change', '.checkClass', function () {
|
|
||||||
$("#NotificationForm").validate().form();
|
|
||||||
|
|
||||||
var container = $('div.ui-accordion-content');
|
|
||||||
if ($(container).children('.input-validation-error').length == 0)
|
|
||||||
$(container).prev('h3.ui-accordion-header').removeClass('validation-error');
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
|
@ -1,11 +1,15 @@
|
|||||||
@using NzbDrone.Core.Repository.Quality
|
@using NzbDrone.Core.Repository.Quality
|
||||||
@using NzbDrone.Web.Helpers;
|
@using NzbDrone.Web.Helpers;
|
||||||
@model NzbDrone.Web.Models.QualityModel
|
@model NzbDrone.Web.Models.QualityModel
|
||||||
@{ Layout = null; }
|
|
||||||
|
@{
|
||||||
|
Layout = "_SettingsLayout.cshtml";
|
||||||
|
}
|
||||||
|
|
||||||
<div id="stylized">
|
<div id="stylized">
|
||||||
@using (Html.BeginForm("SaveQuality", "Settings", FormMethod.Post, new { id = "QualityForm", name = "QualityForm" }))
|
@using (Html.BeginForm("SaveQuality", "Settings", FormMethod.Post, new { id = "QualityForm", name = "QualityForm", @class = "settingsForm" }))
|
||||||
{
|
{
|
||||||
<div id="top" class="settingsForm">
|
<div id="top">
|
||||||
<label class="labelClass">@Html.LabelFor(m => m.DefaultQualityProfileId)
|
<label class="labelClass">@Html.LabelFor(m => m.DefaultQualityProfileId)
|
||||||
<span class="small">@Html.DescriptionFor(m => m.DefaultQualityProfileId)</span>
|
<span class="small">@Html.DescriptionFor(m => m.DefaultQualityProfileId)</span>
|
||||||
</label>
|
</label>
|
||||||
@ -41,7 +45,7 @@
|
|||||||
</div>
|
</div>
|
||||||
@Html.HiddenFor(m => m.SdtvMaxSize, new { @class = "slider-value" })
|
@Html.HiddenFor(m => m.SdtvMaxSize, new { @class = "slider-value" })
|
||||||
30 minute size: <span class="30-minute"></span>MB | 60 minute size: <span class="60-minute">
|
30 minute size: <span class="30-minute"></span>MB | 60 minute size: <span class="60-minute">
|
||||||
</span>MB
|
</span>MB
|
||||||
</div>
|
</div>
|
||||||
<div class="slider-container">
|
<div class="slider-container">
|
||||||
<b>DVD</b>
|
<b>DVD</b>
|
||||||
@ -49,7 +53,7 @@
|
|||||||
</div>
|
</div>
|
||||||
@Html.HiddenFor(m => m.DvdMaxSize, new { @class = "slider-value" })
|
@Html.HiddenFor(m => m.DvdMaxSize, new { @class = "slider-value" })
|
||||||
30 minute size: <span class="30-minute"></span>MB | 60 minute size: <span class="60-minute">
|
30 minute size: <span class="30-minute"></span>MB | 60 minute size: <span class="60-minute">
|
||||||
</span>MB
|
</span>MB
|
||||||
</div>
|
</div>
|
||||||
<div class="slider-container">
|
<div class="slider-container">
|
||||||
<b>HDTV</b>
|
<b>HDTV</b>
|
||||||
@ -57,15 +61,15 @@
|
|||||||
</div>
|
</div>
|
||||||
@Html.HiddenFor(m => m.HdtvMaxSize, new { @class = "slider-value" })
|
@Html.HiddenFor(m => m.HdtvMaxSize, new { @class = "slider-value" })
|
||||||
30 minute size: <span class="30-minute"></span>MB | 60 minute size: <span class="60-minute">
|
30 minute size: <span class="30-minute"></span>MB | 60 minute size: <span class="60-minute">
|
||||||
</span>MB
|
</span>MB
|
||||||
</div>
|
</div>
|
||||||
<div class="slider-container">
|
<div class="slider-container">
|
||||||
<b>WEBDL</b>
|
<b>WEBDL-720p</b>
|
||||||
<div id="webdl-slider" class="slider">
|
<div id="webdl-slider" class="slider">
|
||||||
</div>
|
</div>
|
||||||
@Html.HiddenFor(m => m.WebdlMaxSize, new { @class = "slider-value" })
|
@Html.HiddenFor(m => m.Webdl720pMaxSize, new { @class = "slider-value" })
|
||||||
30 minute size: <span class="30-minute"></span>MB | 60 minute size: <span class="60-minute">
|
30 minute size: <span class="30-minute"></span>MB | 60 minute size: <span class="60-minute">
|
||||||
</span>MB
|
</span>MB
|
||||||
</div>
|
</div>
|
||||||
<div class="slider-container">
|
<div class="slider-container">
|
||||||
<b>Bluray 720p</b>
|
<b>Bluray 720p</b>
|
||||||
@ -73,7 +77,15 @@
|
|||||||
</div>
|
</div>
|
||||||
@Html.HiddenFor(m => m.Bluray720pMaxSize, new { @class = "slider-value" })
|
@Html.HiddenFor(m => m.Bluray720pMaxSize, new { @class = "slider-value" })
|
||||||
30 minute size: <span class="30-minute"></span>MB | 60 minute size: <span class="60-minute">
|
30 minute size: <span class="30-minute"></span>MB | 60 minute size: <span class="60-minute">
|
||||||
</span>MB
|
</span>MB
|
||||||
|
</div>
|
||||||
|
<div class="slider-container">
|
||||||
|
<b>WEBDL-1080p</b>
|
||||||
|
<div id="webdl-slider" class="slider">
|
||||||
|
</div>
|
||||||
|
@Html.HiddenFor(m => m.Webdl1080pMaxSize, new { @class = "slider-value" })
|
||||||
|
30 minute size: <span class="30-minute"></span>MB | 60 minute size: <span class="60-minute">
|
||||||
|
</span>MB
|
||||||
</div>
|
</div>
|
||||||
<div class="slider-container">
|
<div class="slider-container">
|
||||||
<b>Bluray 1080p</b>
|
<b>Bluray 1080p</b>
|
||||||
@ -81,7 +93,7 @@
|
|||||||
</div>
|
</div>
|
||||||
@Html.HiddenFor(m => m.Bluray1080pMaxSize, new { @class = "slider-value" })
|
@Html.HiddenFor(m => m.Bluray1080pMaxSize, new { @class = "slider-value" })
|
||||||
30 minute size: <span class="30-minute"></span>MB | 60 minute size: <span class="60-minute">
|
30 minute size: <span class="30-minute"></span>MB | 60 minute size: <span class="60-minute">
|
||||||
</span>MB
|
</span>MB
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -90,12 +102,17 @@
|
|||||||
Save</button>
|
Save</button>
|
||||||
}
|
}
|
||||||
</div>
|
</div>
|
||||||
<script type="text/javascript">
|
|
||||||
$(document).ready(function () {
|
|
||||||
setupSliders();
|
|
||||||
});
|
|
||||||
|
|
||||||
$('.quality-selectee').livequery(function () {
|
@section Scripts {
|
||||||
$(this).button();
|
@Html.IncludeScript("NzbDrone/qualitySettings.js")
|
||||||
});
|
|
||||||
</script>
|
<script type="text/javascript">
|
||||||
|
$(document).ready(function() {
|
||||||
|
setupSliders();
|
||||||
|
});
|
||||||
|
|
||||||
|
$('.quality-selectee').livequery(function() {
|
||||||
|
$(this).button();
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
}
|
||||||
|
@ -20,20 +20,22 @@
|
|||||||
@Html.LabelFor(x => x.Name)
|
@Html.LabelFor(x => x.Name)
|
||||||
@Html.TextBoxFor(x => x.Name, new { @class = "profileName_textbox" })
|
@Html.TextBoxFor(x => x.Name, new { @class = "profileName_textbox" })
|
||||||
@Html.LabelFor(x => x.Cutoff)
|
@Html.LabelFor(x => x.Cutoff)
|
||||||
@Html.DropDownListFor(m => m.Cutoff, new SelectList(Model.Allowed, Model.Cutoff))
|
@Html.DropDownListFor(m => m.Cutoff, new SelectList(Model.Allowed, "Id", "Name", Model.Cutoff))
|
||||||
</div>
|
</div>
|
||||||
<div class="qualitySelectees">
|
<div class="qualitySelectees">
|
||||||
@Html.CheckBoxFor(m => m.Sdtv, new { @class = "quality-selectee" })
|
@Html.CheckBoxFor(m => m.Sdtv, new { @class = "quality-selectee", data_quality_id = Model.SdtvId })
|
||||||
@Html.LabelFor(m => m.Sdtv)
|
@Html.LabelFor(m => m.Sdtv)
|
||||||
@Html.CheckBoxFor(m => m.Dvd, new { @class = "quality-selectee" })
|
@Html.CheckBoxFor(m => m.Dvd, new { @class = "quality-selectee", data_quality_id = Model.DvdId })
|
||||||
@Html.LabelFor(m => m.Dvd)
|
@Html.LabelFor(m => m.Dvd)
|
||||||
@Html.CheckBoxFor(m => m.Hdtv, new { @class = "quality-selectee" })
|
@Html.CheckBoxFor(m => m.Hdtv, new { @class = "quality-selectee", data_quality_id = Model.HdtvId })
|
||||||
@Html.LabelFor(m => m.Hdtv)
|
@Html.LabelFor(m => m.Hdtv)
|
||||||
@Html.CheckBoxFor(m => m.Webdl, new { @class = "quality-selectee" })
|
@Html.CheckBoxFor(m => m.Webdl720p, new { @class = "quality-selectee", data_quality_id = Model.Webdl720pId })
|
||||||
@Html.LabelFor(m => m.Webdl)
|
@Html.LabelFor(m => m.Webdl720p)
|
||||||
@Html.CheckBoxFor(m => m.Bluray720p, new { @class = "quality-selectee" })
|
@Html.CheckBoxFor(m => m.Bluray720p, new { @class = "quality-selectee", data_quality_id = Model.Bluray720pId })
|
||||||
@Html.LabelFor(m => m.Bluray720p)
|
@Html.LabelFor(m => m.Bluray720p)
|
||||||
@Html.CheckBoxFor(m => m.Bluray1080p, new { @class = "quality-selectee" })
|
@Html.CheckBoxFor(m => m.Webdl1080p, new { @class = "quality-selectee", data_quality_id = Model.Webdl1080pId })
|
||||||
|
@Html.LabelFor(m => m.Webdl1080p)
|
||||||
|
@Html.CheckBoxFor(m => m.Bluray1080p, new { @class = "quality-selectee", data_quality_id = Model.Bluray1080pId })
|
||||||
@Html.LabelFor(m => m.Bluray1080p)
|
@Html.LabelFor(m => m.Bluray1080p)
|
||||||
</div>
|
</div>
|
||||||
@Html.HiddenFor(x => x.QualityProfileId, new { @class = "qualityProfileId" })
|
@Html.HiddenFor(x => x.QualityProfileId, new { @class = "qualityProfileId" })
|
||||||
|
@ -1,7 +1,9 @@
|
|||||||
@using NzbDrone.Web.Helpers
|
@using NzbDrone.Web.Helpers
|
||||||
@model NzbDrone.Web.Models.SystemSettingsModel
|
@model NzbDrone.Web.Models.SystemSettingsModel
|
||||||
@{ Layout = null; }
|
|
||||||
|
|
||||||
|
@{
|
||||||
|
Layout = "_SettingsLayout.cshtml";
|
||||||
|
}
|
||||||
|
|
||||||
<div class="infoBox">
|
<div class="infoBox">
|
||||||
You must manually restart NzbDrone for these changes to take effect. (Automatic restart coming soon!)
|
You must manually restart NzbDrone for these changes to take effect. (Automatic restart coming soon!)
|
||||||
@ -43,30 +45,33 @@
|
|||||||
}
|
}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script type="text/javascript">
|
@section Scripts
|
||||||
$(document).ready(function () {
|
{
|
||||||
//Allow unobstrusive validation of the AJAX loaded form
|
<script type="text/javascript">
|
||||||
$.validator.unobtrusive.parse('#SystemForm');
|
$(document).ready(function() {
|
||||||
|
//Allow unobstrusive validation of the AJAX loaded form
|
||||||
|
$.validator.unobtrusive.parse('#SystemForm');
|
||||||
|
|
||||||
//Validator Settings
|
//Validator Settings
|
||||||
var settings = $.data($('#SystemForm')[0], 'validator').settings;
|
var settings = $.data($('#SystemForm')[0], 'validator').settings;
|
||||||
settings.ignore = [];
|
settings.ignore = [];
|
||||||
settings.focusInvalid = false;
|
settings.focusInvalid = false;
|
||||||
settings.onfocusout = function (element) { $(element).valid(); };
|
settings.onfocusout = function(element) { $(element).valid(); };
|
||||||
|
|
||||||
var oldHighlight = settings.highlight;
|
var oldHighlight = settings.highlight;
|
||||||
var oldUnhighlight = settings.unhighlight;
|
var oldUnhighlight = settings.unhighlight;
|
||||||
|
|
||||||
settings.highlight = function (element, errorClass, validClass) {
|
settings.highlight = function(element, errorClass, validClass) {
|
||||||
oldHighlight(element, errorClass, validClass);
|
oldHighlight(element, errorClass, validClass);
|
||||||
$(element).parents('div.ui-accordion-content').prev('h3.ui-accordion-header').addClass('validation-error');
|
$(element).parents('div.ui-accordion-content').prev('h3.ui-accordion-header').addClass('validation-error');
|
||||||
};
|
};
|
||||||
settings.unhighlight = function (element, errorClass, validClass) {
|
settings.unhighlight = function(element, errorClass, validClass) {
|
||||||
oldUnhighlight(element, errorClass, validClass);
|
oldUnhighlight(element, errorClass, validClass);
|
||||||
|
|
||||||
var container = $(element).parents('div.ui-accordion-content');
|
var container = $(element).parents('div.ui-accordion-content');
|
||||||
if ($(container).children('.' + errorClass).length == 0)
|
if ($(container).children('.' + errorClass).length == 0)
|
||||||
$(container).prev('h3.ui-accordion-header').removeClass('validation-error');
|
$(container).prev('h3.ui-accordion-header').removeClass('validation-error');
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
}
|
27
NzbDrone.Web/Views/Settings/_SettingsLayout.cshtml
Normal file
27
NzbDrone.Web/Views/Settings/_SettingsLayout.cshtml
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
@using NzbDrone.Web.Helpers
|
||||||
|
|
||||||
|
@{ Layout = "~/Views/Shared/_Layout.cshtml"; }
|
||||||
|
|
||||||
|
@section HeaderContent
|
||||||
|
{
|
||||||
|
@Html.IncludeCss("Settings.css")
|
||||||
|
@Html.IncludeCss("IndexerSettings.css")
|
||||||
|
@Html.IncludeCss("QualitySettings.css")
|
||||||
|
}
|
||||||
|
|
||||||
|
<ul class="settings-navigation">
|
||||||
|
@MvcHtmlString.Create(Html.CurrentActionLink("Naming", "Naming", "Settings"))
|
||||||
|
@MvcHtmlString.Create(Html.CurrentActionLink("Quality", "Quality", "Settings"))
|
||||||
|
@MvcHtmlString.Create(Html.CurrentActionLink("Indexers", "Indexers", "Settings"))
|
||||||
|
@MvcHtmlString.Create(Html.CurrentActionLink("Download Client", "DownloadClient", "Settings"))
|
||||||
|
@MvcHtmlString.Create(Html.CurrentActionLink("Notifications", "Notifications", "Settings"))
|
||||||
|
@MvcHtmlString.Create(Html.CurrentActionLink("System", "System", "Settings"))
|
||||||
|
@MvcHtmlString.Create(Html.CurrentActionLink("Misc", "Misc", "Settings"))
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
@RenderBody()
|
||||||
|
|
||||||
|
@section Scripts{
|
||||||
|
@Html.IncludeScript("NzbDrone/settings.js")
|
||||||
|
@RenderSection("Scripts", required: false)
|
||||||
|
}
|
@ -24,12 +24,12 @@
|
|||||||
<div id="centered">
|
<div id="centered">
|
||||||
<div id="menu">
|
<div id="menu">
|
||||||
<ul>
|
<ul>
|
||||||
@MvcHtmlString.Create(Html.CurrentActionLink("Series", "Index", "Series"))
|
@MvcHtmlString.Create(Html.CurrentControllerLink("Series", "Index", "Series"))
|
||||||
@MvcHtmlString.Create(Html.CurrentActionLink("Upcoming", "Index", "Upcoming"))
|
@MvcHtmlString.Create(Html.CurrentControllerLink("Upcoming", "Index", "Upcoming"))
|
||||||
@MvcHtmlString.Create(Html.CurrentActionLink("History", "Index", "History"))
|
@MvcHtmlString.Create(Html.CurrentControllerLink("History", "Index", "History"))
|
||||||
@MvcHtmlString.Create(Html.CurrentActionLink("Missing", "Index", "Missing"))
|
@MvcHtmlString.Create(Html.CurrentControllerLink("Missing", "Index", "Missing"))
|
||||||
@MvcHtmlString.Create(Html.CurrentActionLink("Settings", "Index", "Settings"))
|
@MvcHtmlString.Create(Html.CurrentControllerLink("Settings", "Index", "Settings"))
|
||||||
@MvcHtmlString.Create(Html.CurrentActionLink("Logs", "Index", "Log"))
|
@MvcHtmlString.Create(Html.CurrentControllerLink("Logs", "Index", "Log"))
|
||||||
</ul>
|
</ul>
|
||||||
<input id="localSeriesLookup" type="text" />
|
<input id="localSeriesLookup" type="text" />
|
||||||
</div>
|
</div>
|
||||||
|
@ -16,6 +16,7 @@
|
|||||||
<package id="jQuery.Validation" version="1.9" />
|
<package id="jQuery.Validation" version="1.9" />
|
||||||
<package id="jQuery.Validation.Unobtrusive" version="2.0.20126.16343" />
|
<package id="jQuery.Validation.Unobtrusive" version="2.0.20126.16343" />
|
||||||
<package id="jQuery.vsdoc" version="1.6" />
|
<package id="jQuery.vsdoc" version="1.6" />
|
||||||
|
<package id="LowercaseRoutesMVC" version="1.0.3" targetFramework="net40" />
|
||||||
<package id="Microsoft.Web.Infrastructure" version="1.0.0.0" />
|
<package id="Microsoft.Web.Infrastructure" version="1.0.0.0" />
|
||||||
<package id="MiniProfiler" version="2.0.2" />
|
<package id="MiniProfiler" version="2.0.2" />
|
||||||
<package id="MiniProfiler.MVC3" version="2.0.2" />
|
<package id="MiniProfiler.MVC3" version="2.0.2" />
|
||||||
|
BIN
packages/LowercaseRoutesMVC.1.0.3/LowercaseRoutesMVC.1.0.3.nupkg
vendored
Normal file
BIN
packages/LowercaseRoutesMVC.1.0.3/LowercaseRoutesMVC.1.0.3.nupkg
vendored
Normal file
Binary file not shown.
144
packages/LowercaseRoutesMVC.1.0.3/lib/LowercaseRoutesMVC.XML
vendored
Normal file
144
packages/LowercaseRoutesMVC.1.0.3/lib/LowercaseRoutesMVC.XML
vendored
Normal file
@ -0,0 +1,144 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<doc>
|
||||||
|
<assembly>
|
||||||
|
<name>LowercaseRoutesMVC</name>
|
||||||
|
</assembly>
|
||||||
|
<members>
|
||||||
|
<member name="T:LowercaseRoutesMVC.RouteCollectionExtensions">
|
||||||
|
<summary>
|
||||||
|
Contains extension methods to map routes to lowercase URLs.
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:LowercaseRoutesMVC.RouteCollectionExtensions.MapRouteLowercase(System.Web.Routing.RouteCollection,System.String,System.String)">
|
||||||
|
<summary>
|
||||||
|
Maps the specified URL route using a lowercase URL. Does not change casing in the querystring, if any.
|
||||||
|
</summary>
|
||||||
|
<param name="routes">A collection of routes for the application.</param>
|
||||||
|
<param name="name">The name of the route to map.</param>
|
||||||
|
<param name="url">The URL pattern for the route.</param>
|
||||||
|
<returns>A reference to the mapped route.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:LowercaseRoutesMVC.RouteCollectionExtensions.MapRouteLowercase(System.Web.Routing.RouteCollection,System.String,System.String,System.Object)">
|
||||||
|
<summary>
|
||||||
|
Maps the specified URL route using a lowercase URL and sets default route values. Does not change casing in the querystring, if any.
|
||||||
|
</summary>
|
||||||
|
<param name="routes">A collection of routes for the application.</param>
|
||||||
|
<param name="name">The name of the route to map.</param>
|
||||||
|
<param name="url">The URL pattern for the route.</param>
|
||||||
|
<param name="defaults">An object that contains default route values.</param>
|
||||||
|
<returns>A reference to the mapped route.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:LowercaseRoutesMVC.RouteCollectionExtensions.MapRouteLowercase(System.Web.Routing.RouteCollection,System.String,System.String,System.String[])">
|
||||||
|
<summary>
|
||||||
|
Maps the specified URL route using a lowercase URL and sets the namespaces. Does not change casing in the querystring, if any.
|
||||||
|
</summary>
|
||||||
|
<param name="routes">A collection of routes for the application.</param>
|
||||||
|
<param name="name">The name of the route to map.</param>
|
||||||
|
<param name="url">The URL pattern for the route.</param>
|
||||||
|
<param name="namespaces">A set of namespaces for the application.</param>
|
||||||
|
<returns>A reference to the mapped route.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:LowercaseRoutesMVC.RouteCollectionExtensions.MapRouteLowercase(System.Web.Routing.RouteCollection,System.String,System.String,System.Object,System.Object)">
|
||||||
|
<summary>
|
||||||
|
Maps the specified URL route using a lowercase URL and sets default route values and constraints. Does not change casing in the querystring, if any.
|
||||||
|
</summary>
|
||||||
|
<param name="routes">A collection of routes for the application.</param>
|
||||||
|
<param name="name">The name of the route to map.</param>
|
||||||
|
<param name="url">The URL pattern for the route.</param>
|
||||||
|
<param name="defaults">An object that contains default route values.</param>
|
||||||
|
<param name="constraints">A set of expressions that specify valid values for a URL parameter.</param>
|
||||||
|
<returns>A reference to the mapped route.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:LowercaseRoutesMVC.RouteCollectionExtensions.MapRouteLowercase(System.Web.Routing.RouteCollection,System.String,System.String,System.Object,System.String[])">
|
||||||
|
<summary>
|
||||||
|
Maps the specified URL route using a lowercase URL and sets default route values and namespaces. Does not change casing in the querystring, if any.
|
||||||
|
</summary>
|
||||||
|
<param name="routes">A collection of routes for the application.</param>
|
||||||
|
<param name="name">The name of the route to map.</param>
|
||||||
|
<param name="url">The URL pattern for the route.</param>
|
||||||
|
<param name="defaults">An object that contains default route values.</param>
|
||||||
|
<param name="namespaces">A set of namespaces for the application.</param>
|
||||||
|
<returns>A reference to the mapped route.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:LowercaseRoutesMVC.RouteCollectionExtensions.MapRouteLowercase(System.Web.Routing.RouteCollection,System.String,System.String,System.Object,System.Object,System.String[])">
|
||||||
|
<summary>
|
||||||
|
Maps the specified URL route and sets default route values, constraints, and namespaces. Does not change casing in the querystring, if any.
|
||||||
|
</summary>
|
||||||
|
<param name="routes">A collection of routes for the application.</param>
|
||||||
|
<param name="name">The name of the route to map.</param>
|
||||||
|
<param name="url">The URL pattern for the route.</param>
|
||||||
|
<param name="defaults">An object that contains default route values.</param>
|
||||||
|
<param name="constraints">A set of expressions that specify valid values for a URL parameter.</param>
|
||||||
|
<param name="namespaces">A set of namespaces for the application.</param>
|
||||||
|
<returns>A reference to the mapped route.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="T:LowercaseRoutesMVC.AreaRegistrationContextExtensions">
|
||||||
|
<summary>
|
||||||
|
Contains extension methods to map routes in Areas to lowercase URLs.
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:LowercaseRoutesMVC.AreaRegistrationContextExtensions.MapRouteLowercase(System.Web.Mvc.AreaRegistrationContext,System.String,System.String)">
|
||||||
|
<summary>
|
||||||
|
Maps the specified URL route using a lowercase URL and associates it with the area that is specified by the AreaName property. Does not change casing in the querystring, if any.
|
||||||
|
</summary>
|
||||||
|
<param name="context">The context that encapsulates the information that is required in order to register an area within an ASP.NET MVC application.</param>
|
||||||
|
<param name="name">The name of the route.</param>
|
||||||
|
<param name="url">The URL pattern for the route.</param>
|
||||||
|
<returns>A reference to the mapped route.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:LowercaseRoutesMVC.AreaRegistrationContextExtensions.MapRouteLowercase(System.Web.Mvc.AreaRegistrationContext,System.String,System.String,System.Object)">
|
||||||
|
<summary>
|
||||||
|
Maps the specified URL route using a lowercase URL and associates it with the area that is specified by the AreaName property, using the specified route default values. Does not change casing in the querystring, if any.
|
||||||
|
</summary>
|
||||||
|
<param name="context">The context that encapsulates the information that is required in order to register an area within an ASP.NET MVC application.</param>
|
||||||
|
<param name="name">The name of the route.</param>
|
||||||
|
<param name="url">The URL pattern for the route.</param>
|
||||||
|
<param name="defaults">An object that contains default route values.</param>
|
||||||
|
<returns>A reference to the mapped route.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:LowercaseRoutesMVC.AreaRegistrationContextExtensions.MapRouteLowercase(System.Web.Mvc.AreaRegistrationContext,System.String,System.String,System.String[])">
|
||||||
|
<summary>
|
||||||
|
Maps the specified URL route using a lowercase URL and associates it with the area that is specified by the AreaName property, using the specified namespaces. Does not change casing in the querystring, if any.
|
||||||
|
</summary>
|
||||||
|
<param name="context">The context that encapsulates the information that is required in order to register an area within an ASP.NET MVC application.</param>
|
||||||
|
<param name="name">The name of the route.</param>
|
||||||
|
<param name="url">The URL pattern for the route.</param>
|
||||||
|
<param name="namespaces">A set of namespaces for the application.</param>
|
||||||
|
<returns>A reference to the mapped route.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:LowercaseRoutesMVC.AreaRegistrationContextExtensions.MapRouteLowercase(System.Web.Mvc.AreaRegistrationContext,System.String,System.String,System.Object,System.Object)">
|
||||||
|
<summary>
|
||||||
|
Maps the specified URL route using a lowercase URL and associates it with the area that is specified by the AreaName property, using the specified route default values and constraints. Does not change casing in the querystring, if any.
|
||||||
|
</summary>
|
||||||
|
<param name="context">The context that encapsulates the information that is required in order to register an area within an ASP.NET MVC application.</param>
|
||||||
|
<param name="name">The name of the route.</param>
|
||||||
|
<param name="url">The URL pattern for the route.</param>
|
||||||
|
<param name="defaults">An object that contains default route values.</param>
|
||||||
|
<param name="constraints">A set of expressions that specify valid values for a URL parameter.</param>
|
||||||
|
<returns>A reference to the mapped route.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:LowercaseRoutesMVC.AreaRegistrationContextExtensions.MapRouteLowercase(System.Web.Mvc.AreaRegistrationContext,System.String,System.String,System.Object,System.String[])">
|
||||||
|
<summary>
|
||||||
|
Maps the specified URL route using a lowercase URL and associates it with the area that is specified by the AreaName property, using the specified route default values and namespaces. Does not change casing in the querystring, if any.
|
||||||
|
</summary>
|
||||||
|
<param name="context">The context that encapsulates the information that is required in order to register an area within an ASP.NET MVC application.</param>
|
||||||
|
<param name="name">The name of the route.</param>
|
||||||
|
<param name="url">The URL pattern for the route.</param>
|
||||||
|
<param name="defaults">An object that contains default route values.</param>
|
||||||
|
<param name="namespaces">A set of namespaces for the application.</param>
|
||||||
|
<returns>A reference to the mapped route.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:LowercaseRoutesMVC.AreaRegistrationContextExtensions.MapRouteLowercase(System.Web.Mvc.AreaRegistrationContext,System.String,System.String,System.Object,System.Object,System.String[])">
|
||||||
|
<summary>
|
||||||
|
Maps the specified URL route using a lowercase URL and associates it with the area that is specified by the AreaName property, using the specified route default values, constraints, and namespaces. Does not change casing in the querystring, if any.
|
||||||
|
</summary>
|
||||||
|
<param name="context">The context that encapsulates the information that is required in order to register an area within an ASP.NET MVC application.</param>
|
||||||
|
<param name="name">The name of the route.</param>
|
||||||
|
<param name="url">The URL pattern for the route.</param>
|
||||||
|
<param name="defaults">An object that contains default route values.</param>
|
||||||
|
<param name="constraints">A set of expressions that specify valid values for a URL parameter.</param>
|
||||||
|
<param name="namespaces">A set of namespaces for the application.</param>
|
||||||
|
<returns>A reference to the mapped route.</returns>
|
||||||
|
</member>
|
||||||
|
</members>
|
||||||
|
</doc>
|
BIN
packages/LowercaseRoutesMVC.1.0.3/lib/LowercaseRoutesMVC.dll
vendored
Normal file
BIN
packages/LowercaseRoutesMVC.1.0.3/lib/LowercaseRoutesMVC.dll
vendored
Normal file
Binary file not shown.
BIN
packages/LowercaseRoutesMVC.1.0.3/lib/LowercaseRoutesMVC.pdb
vendored
Normal file
BIN
packages/LowercaseRoutesMVC.1.0.3/lib/LowercaseRoutesMVC.pdb
vendored
Normal file
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user