From c60be3a46700346c510a8a18ad28fac0c40b46db Mon Sep 17 00:00:00 2001 From: Devin Buhl Date: Thu, 26 Jan 2017 14:43:24 -0500 Subject: [PATCH 1/8] Added new qualities, added new qualities to profile class. Left to do: write migration, and tests --- .../AcceptableSizeSpecificationFixture.cs | 20 ++-- .../ParserTests/QualityParserFixture.cs | 26 ++--- .../Qualities/QualityFixture.cs | 16 ++- .../EpisodesWhereCutoffUnmetFixture.cs | 10 +- .../PassThePopcorn/PassThePopcornSettings.cs | 3 + src/NzbDrone.Core/Parser/QualityParser.cs | 10 +- src/NzbDrone.Core/Profiles/ProfileService.cs | 35 ++++-- src/NzbDrone.Core/Qualities/Quality.cs | 105 ++++++++++++------ 8 files changed, 141 insertions(+), 84 deletions(-) diff --git a/src/NzbDrone.Core.Test/DecisionEngineTests/AcceptableSizeSpecificationFixture.cs b/src/NzbDrone.Core.Test/DecisionEngineTests/AcceptableSizeSpecificationFixture.cs index 14cdef982..c91ba95fb 100644 --- a/src/NzbDrone.Core.Test/DecisionEngineTests/AcceptableSizeSpecificationFixture.cs +++ b/src/NzbDrone.Core.Test/DecisionEngineTests/AcceptableSizeSpecificationFixture.cs @@ -196,18 +196,18 @@ namespace NzbDrone.Core.Test.DecisionEngineTests Subject.IsSatisfiedBy(parseResultSingle, null).Accepted.Should().BeTrue(); } - [Test] - public void should_return_true_if_RAWHD() - { - parseResultSingle.ParsedEpisodeInfo.Quality = new QualityModel(Quality.RAWHD); + //[Test] + //public void should_return_true_if_RAWHD() + //{ + // parseResultSingle.ParsedEpisodeInfo.Quality = new QualityModel(Quality.RAWHD); - series.Runtime = 45; - parseResultSingle.Series = series; - parseResultSingle.Series.SeriesType = SeriesTypes.Daily; - parseResultSingle.Release.Size = 8000.Megabytes(); + // series.Runtime = 45; + // parseResultSingle.Series = series; + // parseResultSingle.Series.SeriesType = SeriesTypes.Daily; + // parseResultSingle.Release.Size = 8000.Megabytes(); - Subject.IsSatisfiedBy(parseResultSingle, null).Accepted.Should().BeTrue(); - } + // Subject.IsSatisfiedBy(parseResultSingle, null).Accepted.Should().BeTrue(); + //} [Test] public void should_return_true_for_special() diff --git a/src/NzbDrone.Core.Test/ParserTests/QualityParserFixture.cs b/src/NzbDrone.Core.Test/ParserTests/QualityParserFixture.cs index 3eabec7e9..f4d38ae4f 100644 --- a/src/NzbDrone.Core.Test/ParserTests/QualityParserFixture.cs +++ b/src/NzbDrone.Core.Test/ParserTests/QualityParserFixture.cs @@ -215,19 +215,19 @@ namespace NzbDrone.Core.Test.ParserTests ParseAndVerifyQuality(title, Quality.Bluray1080p, proper); } - [TestCase("POI S02E11 1080i HDTV DD5.1 MPEG2-TrollHD", false)] - [TestCase("How I Met Your Mother S01E18 Nothing Good Happens After 2 A.M. 720p HDTV DD5.1 MPEG2-TrollHD", false)] - [TestCase("The Voice S01E11 The Finals 1080i HDTV DD5.1 MPEG2-TrollHD", false)] - [TestCase("Californication.S07E11.1080i.HDTV.DD5.1.MPEG2-NTb.ts", false)] - [TestCase("Game of Thrones S04E10 1080i HDTV MPEG2 DD5.1-CtrlHD.ts", false)] - [TestCase("VICE.S02E05.1080i.HDTV.DD2.0.MPEG2-NTb.ts", false)] - [TestCase("Show - S03E01 - Episode Title Raw-HD.ts", false)] - [TestCase("Saturday.Night.Live.Vintage.S10E09.Eddie.Murphy.The.Honeydrippers.1080i.UPSCALE.HDTV.DD5.1.MPEG2-zebra", false)] - [TestCase("The.Colbert.Report.2011-08-04.1080i.HDTV.MPEG-2-CtrlHD", false)] - public void should_parse_raw_quality(string title, bool proper) - { - ParseAndVerifyQuality(title, Quality.RAWHD, proper); - } + //[TestCase("POI S02E11 1080i HDTV DD5.1 MPEG2-TrollHD", false)] + //[TestCase("How I Met Your Mother S01E18 Nothing Good Happens After 2 A.M. 720p HDTV DD5.1 MPEG2-TrollHD", false)] + //[TestCase("The Voice S01E11 The Finals 1080i HDTV DD5.1 MPEG2-TrollHD", false)] + //[TestCase("Californication.S07E11.1080i.HDTV.DD5.1.MPEG2-NTb.ts", false)] + //[TestCase("Game of Thrones S04E10 1080i HDTV MPEG2 DD5.1-CtrlHD.ts", false)] + //[TestCase("VICE.S02E05.1080i.HDTV.DD2.0.MPEG2-NTb.ts", false)] + //[TestCase("Show - S03E01 - Episode Title Raw-HD.ts", false)] + //[TestCase("Saturday.Night.Live.Vintage.S10E09.Eddie.Murphy.The.Honeydrippers.1080i.UPSCALE.HDTV.DD5.1.MPEG2-zebra", false)] + //[TestCase("The.Colbert.Report.2011-08-04.1080i.HDTV.MPEG-2-CtrlHD", false)] + //public void should_parse_raw_quality(string title, bool proper) + //{ + // ParseAndVerifyQuality(title, Quality.RAWHD, proper); + //} [TestCase("Sonny.With.a.Chance.S02E15", false)] [TestCase("Law & Order: Special Victims Unit - 11x11 - Quickie", false)] diff --git a/src/NzbDrone.Core.Test/Qualities/QualityFixture.cs b/src/NzbDrone.Core.Test/Qualities/QualityFixture.cs index a9086a2bf..982916896 100644 --- a/src/NzbDrone.Core.Test/Qualities/QualityFixture.cs +++ b/src/NzbDrone.Core.Test/Qualities/QualityFixture.cs @@ -23,7 +23,7 @@ namespace NzbDrone.Core.Test.Qualities new object[] {7, Quality.Bluray1080p}, new object[] {8, Quality.WEBDL480p}, new object[] {9, Quality.HDTV1080p}, - new object[] {10, Quality.RAWHD}, + //new object[] {10, Quality.RAWHD}, new object[] {16, Quality.HDTV2160p}, new object[] {18, Quality.WEBDL2160p}, new object[] {19, Quality.Bluray2160p}, @@ -41,7 +41,7 @@ namespace NzbDrone.Core.Test.Qualities new object[] {Quality.Bluray1080p, 7}, new object[] {Quality.WEBDL480p, 8}, new object[] {Quality.HDTV1080p, 9}, - new object[] {Quality.RAWHD, 10}, + //new object[] {Quality.RAWHD, 10}, new object[] {Quality.HDTV2160p, 16}, new object[] {Quality.WEBDL2160p, 18}, new object[] {Quality.Bluray2160p, 19}, @@ -65,20 +65,26 @@ namespace NzbDrone.Core.Test.Qualities { var qualities = new List { - Quality.Unknown, + Quality.CAM, + Quality.TELECINE, + Quality.DVDSCR, + Quality.R5, Quality.SDTV, - Quality.WEBDL480p, Quality.DVD, + Quality.DVDR, Quality.HDTV720p, Quality.HDTV1080p, Quality.HDTV2160p, - Quality.RAWHD, + Quality.WEBDL480p, Quality.WEBDL720p, Quality.WEBDL1080p, Quality.WEBDL2160p, + Quality.Bluray480p, + Quality.Bluray576p, Quality.Bluray720p, Quality.Bluray1080p, Quality.Bluray2160p, + Quality.BRDISK }; if (allowed.Length == 0) diff --git a/src/NzbDrone.Core.Test/TvTests/EpisodeRepositoryTests/EpisodesWhereCutoffUnmetFixture.cs b/src/NzbDrone.Core.Test/TvTests/EpisodeRepositoryTests/EpisodesWhereCutoffUnmetFixture.cs index 3b8ebeedf..eb2e3b276 100644 --- a/src/NzbDrone.Core.Test/TvTests/EpisodeRepositoryTests/EpisodesWhereCutoffUnmetFixture.cs +++ b/src/NzbDrone.Core.Test/TvTests/EpisodeRepositoryTests/EpisodesWhereCutoffUnmetFixture.cs @@ -33,7 +33,7 @@ namespace NzbDrone.Core.Test.TvTests.EpisodeRepositoryTests { new ProfileQualityItem { Allowed = true, Quality = Quality.SDTV }, new ProfileQualityItem { Allowed = true, Quality = Quality.WEBDL480p }, - new ProfileQualityItem { Allowed = true, Quality = Quality.RAWHD } + //new ProfileQualityItem { Allowed = true, Quality = Quality.RAWHD } } }; @@ -71,13 +71,13 @@ namespace NzbDrone.Core.Test.TvTests.EpisodeRepositoryTests var qualityMet = new EpisodeFile { RelativePath = "a", Quality = new QualityModel { Quality = Quality.WEBDL480p } }; var qualityUnmet = new EpisodeFile { RelativePath = "b", Quality = new QualityModel { Quality = Quality.SDTV } }; - var qualityRawHD = new EpisodeFile { RelativePath = "c", Quality = new QualityModel { Quality = Quality.RAWHD } }; + //var qualityRawHD = new EpisodeFile { RelativePath = "c", Quality = new QualityModel { Quality = Quality.RAWHD } }; MediaFileRepository fileRepository = Mocker.Resolve(); qualityMet = fileRepository.Insert(qualityMet); qualityUnmet = fileRepository.Insert(qualityUnmet); - qualityRawHD = fileRepository.Insert(qualityRawHD); + //qualityRawHD = fileRepository.Insert(qualityRawHD); var monitoredSeriesEpisodes = Builder.CreateListOfSize(4) .All() @@ -90,8 +90,8 @@ namespace NzbDrone.Core.Test.TvTests.EpisodeRepositoryTests .With(e => e.Monitored = false) .With(e => e.EpisodeFileId = qualityMet.Id) .TheNext(1) - .With(e => e.EpisodeFileId = qualityRawHD.Id) - .TheLast(1) + //.With(e => e.EpisodeFileId = qualityRawHD.Id) + //.TheLast(1) .With(e => e.SeasonNumber = 0) .Build(); diff --git a/src/NzbDrone.Core/Indexers/PassThePopcorn/PassThePopcornSettings.cs b/src/NzbDrone.Core/Indexers/PassThePopcorn/PassThePopcornSettings.cs index 88d7e15b2..b0ab2721c 100644 --- a/src/NzbDrone.Core/Indexers/PassThePopcorn/PassThePopcornSettings.cs +++ b/src/NzbDrone.Core/Indexers/PassThePopcorn/PassThePopcornSettings.cs @@ -44,6 +44,9 @@ namespace NzbDrone.Core.Indexers.PassThePopcorn [FieldDefinition(4, Type = FieldType.Checkbox, Label = "Require Approved", HelpText = "Require staff-approval for releases to be accepted.")] public bool Approved { get; set; } + [FieldDefinition(5, Type = FieldType.Checkbox, Label = "Require Golden", HelpText = "Require Golden Popcorn-releases for releases to be accepted.")] + public bool RequireGolden { get; set; } + public NzbDroneValidationResult Validate() { return new NzbDroneValidationResult(Validator.Validate(this)); diff --git a/src/NzbDrone.Core/Parser/QualityParser.cs b/src/NzbDrone.Core/Parser/QualityParser.cs index c8a4040b1..96de9c764 100644 --- a/src/NzbDrone.Core/Parser/QualityParser.cs +++ b/src/NzbDrone.Core/Parser/QualityParser.cs @@ -75,11 +75,11 @@ namespace NzbDrone.Core.Parser } } - if (RawHDRegex.IsMatch(normalizedName)) - { - result.Quality = Quality.RAWHD; - return result; - } + //if (RawHDRegex.IsMatch(normalizedName)) + //{ + // result.Quality = Quality.RAWHD; + // return result; + //} var sourceMatch = SourceRegex.Matches(normalizedName).OfType().LastOrDefault(); var resolution = ParseResolution(normalizedName); diff --git a/src/NzbDrone.Core/Profiles/ProfileService.cs b/src/NzbDrone.Core/Profiles/ProfileService.cs index 89c569ff1..b6c39cc83 100644 --- a/src/NzbDrone.Core/Profiles/ProfileService.cs +++ b/src/NzbDrone.Core/Profiles/ProfileService.cs @@ -85,38 +85,53 @@ namespace NzbDrone.Core.Profiles _logger.Info("Setting up default quality profiles"); - AddDefaultProfile("Any", Quality.SDTV, + AddDefaultProfile("Any", Quality.DVD, + Quality.CAM, + Quality.TELECINE, + Quality.DVDSCR, + Quality.R5, Quality.SDTV, - Quality.WEBDL480p, Quality.DVD, + Quality.DVDR, Quality.HDTV720p, Quality.HDTV1080p, + Quality.HDTV2160p, + Quality.WEBDL480p, Quality.WEBDL720p, Quality.WEBDL1080p, + Quality.WEBDL2160p, + Quality.Bluray480p, + Quality.Bluray576p, Quality.Bluray720p, - Quality.Bluray1080p); + Quality.Bluray1080p, + Quality.Bluray2160p, + Quality.BRDISK); - AddDefaultProfile("SD", Quality.SDTV, + AddDefaultProfile("SD", Quality.DVD, + Quality.CAM, + Quality.TELECINE, + Quality.DVDSCR, + Quality.R5, Quality.SDTV, - Quality.WEBDL480p, - Quality.DVD); + Quality.DVD, + Quality.WEBDL480p); - AddDefaultProfile("HD-720p", Quality.HDTV720p, + AddDefaultProfile("HD-720p", Quality.Bluray720p, Quality.HDTV720p, Quality.WEBDL720p, Quality.Bluray720p); - AddDefaultProfile("HD-1080p", Quality.HDTV1080p, + AddDefaultProfile("HD-1080p", Quality.Bluray1080p, Quality.HDTV1080p, Quality.WEBDL1080p, Quality.Bluray1080p); - AddDefaultProfile("Ultra-HD", Quality.HDTV2160p, + AddDefaultProfile("Ultra-HD", Quality.Bluray2160p, Quality.HDTV2160p, Quality.WEBDL2160p, Quality.Bluray2160p); - AddDefaultProfile("HD - 720p/1080p", Quality.HDTV720p, + AddDefaultProfile("HD - 720p/1080p", Quality.Bluray720p, Quality.HDTV720p, Quality.HDTV1080p, Quality.WEBDL720p, diff --git a/src/NzbDrone.Core/Qualities/Quality.cs b/src/NzbDrone.Core/Qualities/Quality.cs index 2230b7320..ee2002294 100644 --- a/src/NzbDrone.Core/Qualities/Quality.cs +++ b/src/NzbDrone.Core/Qualities/Quality.cs @@ -55,45 +55,67 @@ namespace NzbDrone.Core.Qualities return !Equals(left, right); } - public static Quality Unknown => new Quality(0, "Unknown"); - public static Quality SDTV => new Quality(1, "SDTV"); - public static Quality DVD => new Quality(2, "DVD"); - public static Quality WEBDL1080p => new Quality(3, "WEBDL-1080p"); - public static Quality HDTV720p => new Quality(4, "HDTV-720p"); - public static Quality WEBDL720p => new Quality(5, "WEBDL-720p"); - public static Quality Bluray720p => new Quality(6, "Bluray-720p"); - public static Quality Bluray1080p => new Quality(7, "Bluray-1080p"); - public static Quality WEBDL480p => new Quality(8, "WEBDL-480p"); - public static Quality HDTV1080p => new Quality(9, "HDTV-1080p"); - public static Quality RAWHD => new Quality(10, "Raw-HD"); - //public static Quality HDTV480p { get { return new Quality(11, "HDTV-480p"); } } - //public static Quality WEBRip480p { get { return new Quality(12, "WEBRip-480p"); } } - //public static Quality Bluray480p { get { return new Quality(13, "Bluray-480p"); } } - //public static Quality WEBRip720p { get { return new Quality(14, "WEBRip-720p"); } } - //public static Quality WEBRip1080p { get { return new Quality(15, "WEBRip-1080p"); } } + // Unable to determine + public static Quality Unknown => new Quality(0, "Unknown"); + + // Pre-release + public static Quality CAM => new Quality(24, "CAM"); // new + public static Quality TELECINE => new Quality(25, "TELECINE"); // new + public static Quality DVDSCR => new Quality(26, "DVDSCR"); // new + public static Quality R5 => new Quality(27, "R5"); // new + + // SD + public static Quality SDTV => new Quality(1, "SDTV"); + public static Quality DVD => new Quality(2, "DVD"); + public static Quality DVDR => new Quality(23, "DVD-R"); // new + + // HDTV + public static Quality HDTV720p => new Quality(4, "HDTV-720p"); + public static Quality HDTV1080p => new Quality(9, "HDTV-1080p"); public static Quality HDTV2160p => new Quality(16, "HDTV-2160p"); - //public static Quality WEBRip2160p { get { return new Quality(17, "WEBRip-2160p"); } } + + // Web-DL + public static Quality WEBDL480p => new Quality(8, "WEBDL-480p"); + public static Quality WEBDL720p => new Quality(5, "WEBDL-720p"); + public static Quality WEBDL1080p => new Quality(3, "WEBDL-1080p"); public static Quality WEBDL2160p => new Quality(18, "WEBDL-2160p"); + + // Bluray + public static Quality Bluray480p => new Quality(20, "Bluray-480p"); // new + public static Quality Bluray576p => new Quality(21, "Bluray-576p"); // new + public static Quality Bluray720p => new Quality(6, "Bluray-720p"); + public static Quality Bluray1080p => new Quality(7, "Bluray-1080p"); public static Quality Bluray2160p => new Quality(19, "Bluray-2160p"); + public static Quality BRDISK => new Quality(22, "BR-DISK"); // new + + // Others + // public static Quality RAWHD => new Quality(10, "Raw-HD"); static Quality() { All = new List { Unknown, + CAM, + TELECINE, + DVDSCR, + R5, SDTV, DVD, - WEBDL1080p, + DVDR, HDTV720p, + HDTV1080p, + HDTV2160p, + WEBDL480p, WEBDL720p, + WEBDL1080p, + WEBDL2160p, + Bluray480p, + Bluray576p, Bluray720p, Bluray1080p, - WEBDL480p, - HDTV1080p, - RAWHD, - HDTV2160p, - WEBDL2160p, Bluray2160p, + BRDISK }; AllLookup = new Quality[All.Select(v => v.Id).Max() + 1]; @@ -105,19 +127,30 @@ namespace NzbDrone.Core.Qualities DefaultQualityDefinitions = new HashSet { new QualityDefinition(Quality.Unknown) { Weight = 1, MinSize = 0, MaxSize = 100 }, - new QualityDefinition(Quality.SDTV) { Weight = 2, MinSize = 0, MaxSize = 100 }, - new QualityDefinition(Quality.WEBDL480p) { Weight = 3, MinSize = 0, MaxSize = 100 }, - new QualityDefinition(Quality.DVD) { Weight = 4, MinSize = 0, MaxSize = 100 }, - new QualityDefinition(Quality.HDTV720p) { Weight = 5, MinSize = 0, MaxSize = 100 }, - new QualityDefinition(Quality.HDTV1080p) { Weight = 6, MinSize = 0, MaxSize = 100 }, - new QualityDefinition(Quality.RAWHD) { Weight = 7, MinSize = 0, MaxSize = null }, - new QualityDefinition(Quality.WEBDL720p) { Weight = 8, MinSize = 0, MaxSize = 100 }, - new QualityDefinition(Quality.Bluray720p) { Weight = 9, MinSize = 0, MaxSize = 100 }, - new QualityDefinition(Quality.WEBDL1080p) { Weight = 10, MinSize = 0, MaxSize = 100 }, - new QualityDefinition(Quality.Bluray1080p) { Weight = 11, MinSize = 0, MaxSize = null }, - new QualityDefinition(Quality.HDTV2160p) { Weight = 12, MinSize = 0, MaxSize = null }, - new QualityDefinition(Quality.WEBDL2160p) { Weight = 13, MinSize = 0, MaxSize = null }, - new QualityDefinition(Quality.Bluray2160p) { Weight = 14, MinSize = 0, MaxSize = null }, + new QualityDefinition(Quality.CAM) { Weight = 2, MinSize = 0, MaxSize = 100 }, + new QualityDefinition(Quality.TELECINE) { Weight = 3, MinSize = 0, MaxSize = 100 }, + new QualityDefinition(Quality.R5) { Weight = 4, MinSize = 0, MaxSize = 100 }, + new QualityDefinition(Quality.DVDSCR) { Weight = 5, MinSize = 0, MaxSize = 100 }, + new QualityDefinition(Quality.SDTV) { Weight = 6, MinSize = 0, MaxSize = 100 }, + new QualityDefinition(Quality.DVD) { Weight = 7, MinSize = 0, MaxSize = 100 }, + new QualityDefinition(Quality.DVDR) { Weight = 8, MinSize = 0, MaxSize = null }, + + new QualityDefinition(Quality.HDTV720p) { Weight = 9, MinSize = 0, MaxSize = 100 }, + new QualityDefinition(Quality.HDTV1080p) { Weight = 10, MinSize = 0, MaxSize = 100 }, + new QualityDefinition(Quality.HDTV2160p) { Weight = 11, MinSize = 0, MaxSize = null }, + + new QualityDefinition(Quality.WEBDL480p) { Weight = 12, MinSize = 0, MaxSize = 100 }, + new QualityDefinition(Quality.WEBDL720p) { Weight = 13, MinSize = 0, MaxSize = 100 }, + new QualityDefinition(Quality.WEBDL1080p) { Weight = 14, MinSize = 0, MaxSize = 100 }, + new QualityDefinition(Quality.WEBDL2160p) { Weight = 15, MinSize = 0, MaxSize = null }, + + new QualityDefinition(Quality.Bluray480p) { Weight = 16, MinSize = 0, MaxSize = 100 }, + new QualityDefinition(Quality.Bluray576p) { Weight = 17, MinSize = 0, MaxSize = 100 }, + new QualityDefinition(Quality.Bluray720p) { Weight = 18, MinSize = 0, MaxSize = 100 }, + new QualityDefinition(Quality.Bluray1080p) { Weight = 19, MinSize = 0, MaxSize = null }, + new QualityDefinition(Quality.Bluray2160p) { Weight = 20, MinSize = 0, MaxSize = null }, + + new QualityDefinition(Quality.BRDISK) { Weight = 21, MinSize = 0, MaxSize = null } }; } From f31dc3c054fec974c9a71d67855b81b87834314c Mon Sep 17 00:00:00 2001 From: Devin Buhl Date: Thu, 26 Jan 2017 14:53:43 -0500 Subject: [PATCH 2/8] Update weights --- src/NzbDrone.Core/Qualities/Quality.cs | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/src/NzbDrone.Core/Qualities/Quality.cs b/src/NzbDrone.Core/Qualities/Quality.cs index ee2002294..97e67931a 100644 --- a/src/NzbDrone.Core/Qualities/Quality.cs +++ b/src/NzbDrone.Core/Qualities/Quality.cs @@ -135,19 +135,20 @@ namespace NzbDrone.Core.Qualities new QualityDefinition(Quality.DVD) { Weight = 7, MinSize = 0, MaxSize = 100 }, new QualityDefinition(Quality.DVDR) { Weight = 8, MinSize = 0, MaxSize = null }, - new QualityDefinition(Quality.HDTV720p) { Weight = 9, MinSize = 0, MaxSize = 100 }, - new QualityDefinition(Quality.HDTV1080p) { Weight = 10, MinSize = 0, MaxSize = 100 }, - new QualityDefinition(Quality.HDTV2160p) { Weight = 11, MinSize = 0, MaxSize = null }, + new QualityDefinition(Quality.WEBDL480p) { Weight = 9, MinSize = 0, MaxSize = 100 }, + new QualityDefinition(Quality.Bluray480p) { Weight = 10, MinSize = 0, MaxSize = 100 }, + new QualityDefinition(Quality.Bluray576p) { Weight = 11, MinSize = 0, MaxSize = 100 }, - new QualityDefinition(Quality.WEBDL480p) { Weight = 12, MinSize = 0, MaxSize = 100 }, + new QualityDefinition(Quality.HDTV720p) { Weight = 12, MinSize = 0, MaxSize = 100 }, new QualityDefinition(Quality.WEBDL720p) { Weight = 13, MinSize = 0, MaxSize = 100 }, - new QualityDefinition(Quality.WEBDL1080p) { Weight = 14, MinSize = 0, MaxSize = 100 }, - new QualityDefinition(Quality.WEBDL2160p) { Weight = 15, MinSize = 0, MaxSize = null }, + new QualityDefinition(Quality.Bluray720p) { Weight = 14, MinSize = 0, MaxSize = 100 }, - new QualityDefinition(Quality.Bluray480p) { Weight = 16, MinSize = 0, MaxSize = 100 }, - new QualityDefinition(Quality.Bluray576p) { Weight = 17, MinSize = 0, MaxSize = 100 }, - new QualityDefinition(Quality.Bluray720p) { Weight = 18, MinSize = 0, MaxSize = 100 }, - new QualityDefinition(Quality.Bluray1080p) { Weight = 19, MinSize = 0, MaxSize = null }, + new QualityDefinition(Quality.HDTV1080p) { Weight = 15, MinSize = 0, MaxSize = 100 }, + new QualityDefinition(Quality.WEBDL1080p) { Weight = 16, MinSize = 0, MaxSize = 100 }, + new QualityDefinition(Quality.Bluray1080p) { Weight = 17, MinSize = 0, MaxSize = null }, + + new QualityDefinition(Quality.HDTV2160p) { Weight = 18, MinSize = 0, MaxSize = null }, + new QualityDefinition(Quality.WEBDL2160p) { Weight = 19, MinSize = 0, MaxSize = null }, new QualityDefinition(Quality.Bluray2160p) { Weight = 20, MinSize = 0, MaxSize = null }, new QualityDefinition(Quality.BRDISK) { Weight = 21, MinSize = 0, MaxSize = null } From d5caac5d3b442e7a0fa016a0c58fb49c40bcffca Mon Sep 17 00:00:00 2001 From: Devin Buhl Date: Thu, 26 Jan 2017 17:10:08 -0500 Subject: [PATCH 3/8] make DVDR not unlimited --- src/NzbDrone.Core/Qualities/Quality.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/NzbDrone.Core/Qualities/Quality.cs b/src/NzbDrone.Core/Qualities/Quality.cs index 97e67931a..17020cc47 100644 --- a/src/NzbDrone.Core/Qualities/Quality.cs +++ b/src/NzbDrone.Core/Qualities/Quality.cs @@ -133,7 +133,7 @@ namespace NzbDrone.Core.Qualities new QualityDefinition(Quality.DVDSCR) { Weight = 5, MinSize = 0, MaxSize = 100 }, new QualityDefinition(Quality.SDTV) { Weight = 6, MinSize = 0, MaxSize = 100 }, new QualityDefinition(Quality.DVD) { Weight = 7, MinSize = 0, MaxSize = 100 }, - new QualityDefinition(Quality.DVDR) { Weight = 8, MinSize = 0, MaxSize = null }, + new QualityDefinition(Quality.DVDR) { Weight = 8, MinSize = 0, MaxSize = 100 }, new QualityDefinition(Quality.WEBDL480p) { Weight = 9, MinSize = 0, MaxSize = 100 }, new QualityDefinition(Quality.Bluray480p) { Weight = 10, MinSize = 0, MaxSize = 100 }, From a1f23693068851d223eda4a6e21c30b80d9ecd39 Mon Sep 17 00:00:00 2001 From: Devin Buhl Date: Sun, 29 Jan 2017 14:22:04 -0500 Subject: [PATCH 4/8] Update the regex in Parser, Add workprint and telesync, change R5 to regional allow for R[0-9]{1}, changed the weights --- src/NzbDrone.Core/Parser/QualityParser.cs | 76 ++++++++++++++++++-- src/NzbDrone.Core/Profiles/ProfileService.cs | 16 +++-- src/NzbDrone.Core/Qualities/Quality.cs | 56 ++++++++------- 3 files changed, 114 insertions(+), 34 deletions(-) diff --git a/src/NzbDrone.Core/Parser/QualityParser.cs b/src/NzbDrone.Core/Parser/QualityParser.cs index 96de9c764..37eac7a83 100644 --- a/src/NzbDrone.Core/Parser/QualityParser.cs +++ b/src/NzbDrone.Core/Parser/QualityParser.cs @@ -14,14 +14,34 @@ namespace NzbDrone.Core.Parser { private static readonly Logger Logger = NzbDroneLogger.GetLogger(typeof(QualityParser)); + //private static readonly Regex SourceRegex = new Regex(@"\b(?: + // (?BluRay|Blu-Ray|HDDVD|BD)| + // (?WEB[-_. ]DL|WEBDL|WebRip|iTunesHD|WebHD|[. ]WEB[. ](?:[xh]26[45]|DD5[. ]1)|\d+0p[. ]WEB[. ])| + // (?HDTV)| + // (?BDRip)| + // (?BRRip)| + // (?DVD|DVDRip|NTSC|PAL|xvidvd)| + // (?WS[-_. ]DSR|DSR)| + // (?PDTV)| + // (?SDTV)| + // (?TVRip) + // )\b", + // RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.IgnorePatternWhitespace); + private static readonly Regex SourceRegex = new Regex(@"\b(?: (?BluRay|Blu-Ray|HDDVD|BD)| - (?WEB[-_. ]DL|WEBDL|WebRip|iTunesHD|WebHD|[. ]WEB[. ](?:[xh]26[45]|DD5[. ]1)|\d+0p[. ]WEB[. ])| + (?WEB[-_. ]DL|HDRIP|WEBDL|WebRip|Web-Rip|iTunesHD|WebHD|[. ]WEB[. ](?:[xh]26[45]|DD5[. ]1)|\d+0p[. ]WEB[. ])| (?HDTV)| - (?BDRip)| - (?BRRip)| + (?BDRip)|(?BRRip)| + (?DVD-R|DVDR)| (?DVD|DVDRip|NTSC|PAL|xvidvd)| (?WS[-_. ]DSR|DSR)| + (?R[0-9]{1})| + (?SCR|SCREENER|DVDSCR|DVDSCREENER)| + (?TS|TELESYNC|HD-TS|HDTS|PDVD)| + (?TC|TELECINE|HD-TC|HDTC)| + (?CAMRIP|CAM|HDCAM|HD-CAM)| + (?WORKPRINT|WP)| (?PDTV)| (?SDTV)| (?TVRip) @@ -108,7 +128,13 @@ namespace NzbDrone.Core.Parser return result; } - if (resolution == Resolution.R480P || resolution == Resolution.R576p) + if (resolution == Resolution.R576p) + { + result.Quality = Quality.Bluray576p; + return result; + } + + if (resolution == Resolution.R480P) { result.Quality = Quality.DVD; return result; @@ -195,12 +221,54 @@ namespace NzbDrone.Core.Parser } } + if (sourceMatch.Groups["wp"].Success) + { + result.Quality = Quality.WORKPRINT; + return result; + } + if (sourceMatch.Groups["dvd"].Success) { result.Quality = Quality.DVD; return result; } + if (sourceMatch.Groups["dvdr"].Success) + { + result.Quality = Quality.DVDR; + return result; + } + + if (sourceMatch.Groups["scr"].Success) + { + result.Quality = Quality.DVDSCR; + return result; + } + + if (sourceMatch.Groups["regional"].Success) + { + result.Quality = Quality.REGIONAL; + return result; + } + + if (sourceMatch.Groups["cam"].Success) + { + result.Quality = Quality.CAM; + return result; + } + + if (sourceMatch.Groups["ts"].Success) + { + result.Quality = Quality.TELESYNC; + return result; + } + + if (sourceMatch.Groups["tc"].Success) + { + result.Quality = Quality.TELECINE; + return result; + } + if (sourceMatch.Groups["pdtv"].Success || sourceMatch.Groups["sdtv"].Success || sourceMatch.Groups["dsr"].Success || diff --git a/src/NzbDrone.Core/Profiles/ProfileService.cs b/src/NzbDrone.Core/Profiles/ProfileService.cs index b6c39cc83..76cc85445 100644 --- a/src/NzbDrone.Core/Profiles/ProfileService.cs +++ b/src/NzbDrone.Core/Profiles/ProfileService.cs @@ -85,11 +85,13 @@ namespace NzbDrone.Core.Profiles _logger.Info("Setting up default quality profiles"); - AddDefaultProfile("Any", Quality.DVD, + AddDefaultProfile("Any", Quality.Bluray480p, + Quality.WORKPRINT, Quality.CAM, + Quality.TELESYNC, Quality.TELECINE, Quality.DVDSCR, - Quality.R5, + Quality.REGIONAL, Quality.SDTV, Quality.DVD, Quality.DVDR, @@ -107,14 +109,18 @@ namespace NzbDrone.Core.Profiles Quality.Bluray2160p, Quality.BRDISK); - AddDefaultProfile("SD", Quality.DVD, + AddDefaultProfile("SD", Quality.Bluray480p, + Quality.WORKPRINT, Quality.CAM, + Quality.TELESYNC, Quality.TELECINE, Quality.DVDSCR, - Quality.R5, + Quality.REGIONAL, Quality.SDTV, Quality.DVD, - Quality.WEBDL480p); + Quality.WEBDL480p, + Quality.Bluray480p, + Quality.Bluray576p); AddDefaultProfile("HD-720p", Quality.Bluray720p, Quality.HDTV720p, diff --git a/src/NzbDrone.Core/Qualities/Quality.cs b/src/NzbDrone.Core/Qualities/Quality.cs index 17020cc47..ce6a0e41f 100644 --- a/src/NzbDrone.Core/Qualities/Quality.cs +++ b/src/NzbDrone.Core/Qualities/Quality.cs @@ -59,10 +59,12 @@ namespace NzbDrone.Core.Qualities public static Quality Unknown => new Quality(0, "Unknown"); // Pre-release - public static Quality CAM => new Quality(24, "CAM"); // new - public static Quality TELECINE => new Quality(25, "TELECINE"); // new - public static Quality DVDSCR => new Quality(26, "DVDSCR"); // new - public static Quality R5 => new Quality(27, "R5"); // new + public static Quality WORKPRINT => new Quality(24, "WORKPRINT"); // new + public static Quality CAM => new Quality(25, "CAM"); // new + public static Quality TELESYNC => new Quality(26, "TELESYNC"); // new + public static Quality TELECINE => new Quality(27, "TELECINE"); // new + public static Quality DVDSCR => new Quality(28, "DVDSCR"); // new + public static Quality REGIONAL => new Quality(29, "REGIONAL"); // new // SD public static Quality SDTV => new Quality(1, "SDTV"); @@ -96,10 +98,12 @@ namespace NzbDrone.Core.Qualities All = new List { Unknown, + WORKPRINT, CAM, + TELESYNC, TELECINE, DVDSCR, - R5, + REGIONAL, SDTV, DVD, DVDR, @@ -127,31 +131,33 @@ namespace NzbDrone.Core.Qualities DefaultQualityDefinitions = new HashSet { new QualityDefinition(Quality.Unknown) { Weight = 1, MinSize = 0, MaxSize = 100 }, - new QualityDefinition(Quality.CAM) { Weight = 2, MinSize = 0, MaxSize = 100 }, - new QualityDefinition(Quality.TELECINE) { Weight = 3, MinSize = 0, MaxSize = 100 }, - new QualityDefinition(Quality.R5) { Weight = 4, MinSize = 0, MaxSize = 100 }, - new QualityDefinition(Quality.DVDSCR) { Weight = 5, MinSize = 0, MaxSize = 100 }, - new QualityDefinition(Quality.SDTV) { Weight = 6, MinSize = 0, MaxSize = 100 }, - new QualityDefinition(Quality.DVD) { Weight = 7, MinSize = 0, MaxSize = 100 }, - new QualityDefinition(Quality.DVDR) { Weight = 8, MinSize = 0, MaxSize = 100 }, + new QualityDefinition(Quality.WORKPRINT) { Weight = 2, MinSize = 0, MaxSize = 100 }, + new QualityDefinition(Quality.CAM) { Weight = 3, MinSize = 0, MaxSize = 100 }, + new QualityDefinition(Quality.TELESYNC) { Weight = 4, MinSize = 0, MaxSize = 100 }, + new QualityDefinition(Quality.TELECINE) { Weight = 5, MinSize = 0, MaxSize = 100 }, + new QualityDefinition(Quality.REGIONAL) { Weight = 6, MinSize = 0, MaxSize = 100 }, + new QualityDefinition(Quality.DVDSCR) { Weight = 7, MinSize = 0, MaxSize = 100 }, + new QualityDefinition(Quality.SDTV) { Weight = 8, MinSize = 0, MaxSize = 100 }, + new QualityDefinition(Quality.DVD) { Weight = 9, MinSize = 0, MaxSize = 100 }, + new QualityDefinition(Quality.DVDR) { Weight = 10, MinSize = 0, MaxSize = 100 }, - new QualityDefinition(Quality.WEBDL480p) { Weight = 9, MinSize = 0, MaxSize = 100 }, - new QualityDefinition(Quality.Bluray480p) { Weight = 10, MinSize = 0, MaxSize = 100 }, - new QualityDefinition(Quality.Bluray576p) { Weight = 11, MinSize = 0, MaxSize = 100 }, + new QualityDefinition(Quality.WEBDL480p) { Weight = 11, MinSize = 0, MaxSize = 100 }, + new QualityDefinition(Quality.Bluray480p) { Weight = 12, MinSize = 0, MaxSize = 100 }, + new QualityDefinition(Quality.Bluray576p) { Weight = 13, MinSize = 0, MaxSize = 100 }, - new QualityDefinition(Quality.HDTV720p) { Weight = 12, MinSize = 0, MaxSize = 100 }, - new QualityDefinition(Quality.WEBDL720p) { Weight = 13, MinSize = 0, MaxSize = 100 }, - new QualityDefinition(Quality.Bluray720p) { Weight = 14, MinSize = 0, MaxSize = 100 }, + new QualityDefinition(Quality.HDTV720p) { Weight = 14, MinSize = 0, MaxSize = 100 }, + new QualityDefinition(Quality.WEBDL720p) { Weight = 15, MinSize = 0, MaxSize = 100 }, + new QualityDefinition(Quality.Bluray720p) { Weight = 16, MinSize = 0, MaxSize = 100 }, - new QualityDefinition(Quality.HDTV1080p) { Weight = 15, MinSize = 0, MaxSize = 100 }, - new QualityDefinition(Quality.WEBDL1080p) { Weight = 16, MinSize = 0, MaxSize = 100 }, - new QualityDefinition(Quality.Bluray1080p) { Weight = 17, MinSize = 0, MaxSize = null }, + new QualityDefinition(Quality.HDTV1080p) { Weight = 17, MinSize = 0, MaxSize = 100 }, + new QualityDefinition(Quality.WEBDL1080p) { Weight = 18, MinSize = 0, MaxSize = 100 }, + new QualityDefinition(Quality.Bluray1080p) { Weight = 19, MinSize = 0, MaxSize = null }, - new QualityDefinition(Quality.HDTV2160p) { Weight = 18, MinSize = 0, MaxSize = null }, - new QualityDefinition(Quality.WEBDL2160p) { Weight = 19, MinSize = 0, MaxSize = null }, - new QualityDefinition(Quality.Bluray2160p) { Weight = 20, MinSize = 0, MaxSize = null }, + new QualityDefinition(Quality.HDTV2160p) { Weight = 20, MinSize = 0, MaxSize = null }, + new QualityDefinition(Quality.WEBDL2160p) { Weight = 21, MinSize = 0, MaxSize = null }, + new QualityDefinition(Quality.Bluray2160p) { Weight = 22, MinSize = 0, MaxSize = null }, - new QualityDefinition(Quality.BRDISK) { Weight = 21, MinSize = 0, MaxSize = null } + new QualityDefinition(Quality.BRDISK) { Weight = 23, MinSize = 0, MaxSize = null } }; } From 2f4ea9cac78b03dd11d5d976be045d816a12b159 Mon Sep 17 00:00:00 2001 From: Devin Buhl Date: Sun, 29 Jan 2017 15:47:08 -0500 Subject: [PATCH 5/8] migration --- .../Qualities/QualityFixture.cs | 5 +- .../123_update_qualities_and_profiles.cs | 78 +++++++++++++++++++ src/NzbDrone.Core/NzbDrone.Core.csproj | 1 + src/NzbDrone.Core/Qualities/Quality.cs | 8 +- 4 files changed, 87 insertions(+), 5 deletions(-) create mode 100644 src/NzbDrone.Core/Datastore/Migration/123_update_qualities_and_profiles.cs diff --git a/src/NzbDrone.Core.Test/Qualities/QualityFixture.cs b/src/NzbDrone.Core.Test/Qualities/QualityFixture.cs index 982916896..2ca9274ed 100644 --- a/src/NzbDrone.Core.Test/Qualities/QualityFixture.cs +++ b/src/NzbDrone.Core.Test/Qualities/QualityFixture.cs @@ -68,7 +68,7 @@ namespace NzbDrone.Core.Test.Qualities Quality.CAM, Quality.TELECINE, Quality.DVDSCR, - Quality.R5, + Quality.REGIONAL, Quality.SDTV, Quality.DVD, Quality.DVDR, @@ -84,7 +84,8 @@ namespace NzbDrone.Core.Test.Qualities Quality.Bluray720p, Quality.Bluray1080p, Quality.Bluray2160p, - Quality.BRDISK + Quality.BRDISK, + Quality.RAWHD }; if (allowed.Length == 0) diff --git a/src/NzbDrone.Core/Datastore/Migration/123_update_qualities_and_profiles.cs b/src/NzbDrone.Core/Datastore/Migration/123_update_qualities_and_profiles.cs new file mode 100644 index 000000000..b2304f5ea --- /dev/null +++ b/src/NzbDrone.Core/Datastore/Migration/123_update_qualities_and_profiles.cs @@ -0,0 +1,78 @@ +using System.Data; +using FluentMigrator; +using NzbDrone.Core.Datastore.Migration.Framework; + +namespace NzbDrone.Core.Datastore.Migration +{ + [Migration(123)] + public class update_qualities_and_profiles : NzbDroneMigrationBase + { + protected override void MainDbUpgrade() + { + Execute.WithConnection(ConvertProfile); + } + + private void ConvertProfile(IDbConnection conn, IDbTransaction tran) + { + + //public static Quality Unknown => new Quality(0, "Unknown"); + //public static Quality WORKPRINT => new Quality(24, "WORKPRINT"); // new + //public static Quality CAM => new Quality(25, "CAM"); // new + //public static Quality TELESYNC => new Quality(26, "TELESYNC"); // new + //public static Quality TELECINE => new Quality(27, "TELECINE"); // new + //public static Quality DVDSCR => new Quality(28, "DVDSCR"); // new + //public static Quality REGIONAL => new Quality(29, "REGIONAL"); // new + //public static Quality SDTV => new Quality(1, "SDTV"); + //public static Quality DVD => new Quality(2, "DVD"); + //public static Quality DVDR => new Quality(23, "DVD-R"); // new + //public static Quality HDTV720p => new Quality(4, "HDTV-720p"); + //public static Quality HDTV1080p => new Quality(9, "HDTV-1080p"); + //public static Quality HDTV2160p => new Quality(16, "HDTV-2160p"); + //public static Quality WEBDL480p => new Quality(8, "WEBDL-480p"); + //public static Quality WEBDL720p => new Quality(5, "WEBDL-720p"); + //public static Quality WEBDL1080p => new Quality(3, "WEBDL-1080p"); + //public static Quality WEBDL2160p => new Quality(18, "WEBDL-2160p"); + //public static Quality Bluray480p => new Quality(20, "Bluray-480p"); // new + //public static Quality Bluray576p => new Quality(21, "Bluray-576p"); // new + //public static Quality Bluray720p => new Quality(6, "Bluray-720p"); + //public static Quality Bluray1080p => new Quality(7, "Bluray-1080p"); + //public static Quality Bluray2160p => new Quality(19, "Bluray-2160p"); + //public static Quality BRDISK => new Quality(22, "BR-DISK"); // new + //public static Quality RAWHD => new Quality(10, "Raw-HD"); + + var updater = new ProfileUpdater70(conn, tran); + + // New qualities + //updater.SplitQualityAppend(0, 24); // WORKPRINT AFTER UNKNOWN + //updater.SplitQualityAppend(24, 25); // CAM AFTER WORKPRINT + //updater.SplitQualityAppend(25, 26); // TELESYNC AFTER CAM + //updater.SplitQualityAppend(26, 27); // TELECINE AFTER TELESYNC + //updater.SplitQualityAppend(27, 28); // DVDSCR AFTER TELECINE + //updater.SplitQualityAppend(28, 29); // REGIONAL AFTER DVDSCR + + updater.SplitQualityAppend(0, 27); // TELECINE AFTER Unknown + updater.SplitQualityAppend(0, 26); // TELESYNC AFTER Unknown + updater.SplitQualityAppend(0, 25); // CAM AFTER Unknown + updater.SplitQualityAppend(0, 24); // WORKPRINT AFTER Unknown + + updater.SplitQualityPrepend(2, 23); // DVDR BEFORE DVD + updater.SplitQualityPrepend(2, 28); // DVDSCR BEFORE DVD + updater.SplitQualityPrepend(2, 29); // REGIONAL BEFORE DVD + + updater.SplitQualityAppend(1, 20); // Bluray480p AFTER SDTV + updater.SplitQualityAppend(1, 21); // Bluray576p AFTER SDTV + + updater.SplitQualityPrepend(10, 22); // BRDISK BEFORE RAWHD + + updater.Commit(); + + // WEBRip migrations. + //updater.SplitQualityAppend(1, 11); // HDTV480p after SDTV + //updater.SplitQualityPrepend(8, 12); // WEBRip480p before WEBDL480p + //updater.SplitQualityAppend(2, 13); // Bluray480p after DVD + //updater.SplitQualityPrepend(5, 14); // WEBRip720p before WEBDL720p + //updater.SplitQualityPrepend(3, 15); // WEBRip1080p before WEBDL1080p + //updater.SplitQualityPrepend(18, 17); // WEBRip2160p before WEBDL2160p + } + } +} diff --git a/src/NzbDrone.Core/NzbDrone.Core.csproj b/src/NzbDrone.Core/NzbDrone.Core.csproj index 6f7eee5c0..60767b6ea 100644 --- a/src/NzbDrone.Core/NzbDrone.Core.csproj +++ b/src/NzbDrone.Core/NzbDrone.Core.csproj @@ -183,6 +183,7 @@ + diff --git a/src/NzbDrone.Core/Qualities/Quality.cs b/src/NzbDrone.Core/Qualities/Quality.cs index ce6a0e41f..bae08123e 100644 --- a/src/NzbDrone.Core/Qualities/Quality.cs +++ b/src/NzbDrone.Core/Qualities/Quality.cs @@ -91,7 +91,7 @@ namespace NzbDrone.Core.Qualities public static Quality BRDISK => new Quality(22, "BR-DISK"); // new // Others - // public static Quality RAWHD => new Quality(10, "Raw-HD"); + public static Quality RAWHD => new Quality(10, "Raw-HD"); static Quality() { @@ -119,7 +119,8 @@ namespace NzbDrone.Core.Qualities Bluray720p, Bluray1080p, Bluray2160p, - BRDISK + BRDISK, + RAWHD }; AllLookup = new Quality[All.Select(v => v.Id).Max() + 1]; @@ -157,7 +158,8 @@ namespace NzbDrone.Core.Qualities new QualityDefinition(Quality.WEBDL2160p) { Weight = 21, MinSize = 0, MaxSize = null }, new QualityDefinition(Quality.Bluray2160p) { Weight = 22, MinSize = 0, MaxSize = null }, - new QualityDefinition(Quality.BRDISK) { Weight = 23, MinSize = 0, MaxSize = null } + new QualityDefinition(Quality.BRDISK) { Weight = 23, MinSize = 0, MaxSize = null }, + new QualityDefinition(Quality.RAWHD) { Weight = 24, MinSize = 0, MaxSize = null } }; } From 060c71f43979533b65327a25d8767fac81969714 Mon Sep 17 00:00:00 2001 From: Devin Buhl Date: Sun, 29 Jan 2017 15:49:32 -0500 Subject: [PATCH 6/8] migration --- .../123_update_qualities_and_profiles.cs | 78 ------------------- .../126_update_qualities_and_profiles.cs | 35 +++++++++ src/NzbDrone.Core/NzbDrone.Core.csproj | 2 +- 3 files changed, 36 insertions(+), 79 deletions(-) delete mode 100644 src/NzbDrone.Core/Datastore/Migration/123_update_qualities_and_profiles.cs create mode 100644 src/NzbDrone.Core/Datastore/Migration/126_update_qualities_and_profiles.cs diff --git a/src/NzbDrone.Core/Datastore/Migration/123_update_qualities_and_profiles.cs b/src/NzbDrone.Core/Datastore/Migration/123_update_qualities_and_profiles.cs deleted file mode 100644 index b2304f5ea..000000000 --- a/src/NzbDrone.Core/Datastore/Migration/123_update_qualities_and_profiles.cs +++ /dev/null @@ -1,78 +0,0 @@ -using System.Data; -using FluentMigrator; -using NzbDrone.Core.Datastore.Migration.Framework; - -namespace NzbDrone.Core.Datastore.Migration -{ - [Migration(123)] - public class update_qualities_and_profiles : NzbDroneMigrationBase - { - protected override void MainDbUpgrade() - { - Execute.WithConnection(ConvertProfile); - } - - private void ConvertProfile(IDbConnection conn, IDbTransaction tran) - { - - //public static Quality Unknown => new Quality(0, "Unknown"); - //public static Quality WORKPRINT => new Quality(24, "WORKPRINT"); // new - //public static Quality CAM => new Quality(25, "CAM"); // new - //public static Quality TELESYNC => new Quality(26, "TELESYNC"); // new - //public static Quality TELECINE => new Quality(27, "TELECINE"); // new - //public static Quality DVDSCR => new Quality(28, "DVDSCR"); // new - //public static Quality REGIONAL => new Quality(29, "REGIONAL"); // new - //public static Quality SDTV => new Quality(1, "SDTV"); - //public static Quality DVD => new Quality(2, "DVD"); - //public static Quality DVDR => new Quality(23, "DVD-R"); // new - //public static Quality HDTV720p => new Quality(4, "HDTV-720p"); - //public static Quality HDTV1080p => new Quality(9, "HDTV-1080p"); - //public static Quality HDTV2160p => new Quality(16, "HDTV-2160p"); - //public static Quality WEBDL480p => new Quality(8, "WEBDL-480p"); - //public static Quality WEBDL720p => new Quality(5, "WEBDL-720p"); - //public static Quality WEBDL1080p => new Quality(3, "WEBDL-1080p"); - //public static Quality WEBDL2160p => new Quality(18, "WEBDL-2160p"); - //public static Quality Bluray480p => new Quality(20, "Bluray-480p"); // new - //public static Quality Bluray576p => new Quality(21, "Bluray-576p"); // new - //public static Quality Bluray720p => new Quality(6, "Bluray-720p"); - //public static Quality Bluray1080p => new Quality(7, "Bluray-1080p"); - //public static Quality Bluray2160p => new Quality(19, "Bluray-2160p"); - //public static Quality BRDISK => new Quality(22, "BR-DISK"); // new - //public static Quality RAWHD => new Quality(10, "Raw-HD"); - - var updater = new ProfileUpdater70(conn, tran); - - // New qualities - //updater.SplitQualityAppend(0, 24); // WORKPRINT AFTER UNKNOWN - //updater.SplitQualityAppend(24, 25); // CAM AFTER WORKPRINT - //updater.SplitQualityAppend(25, 26); // TELESYNC AFTER CAM - //updater.SplitQualityAppend(26, 27); // TELECINE AFTER TELESYNC - //updater.SplitQualityAppend(27, 28); // DVDSCR AFTER TELECINE - //updater.SplitQualityAppend(28, 29); // REGIONAL AFTER DVDSCR - - updater.SplitQualityAppend(0, 27); // TELECINE AFTER Unknown - updater.SplitQualityAppend(0, 26); // TELESYNC AFTER Unknown - updater.SplitQualityAppend(0, 25); // CAM AFTER Unknown - updater.SplitQualityAppend(0, 24); // WORKPRINT AFTER Unknown - - updater.SplitQualityPrepend(2, 23); // DVDR BEFORE DVD - updater.SplitQualityPrepend(2, 28); // DVDSCR BEFORE DVD - updater.SplitQualityPrepend(2, 29); // REGIONAL BEFORE DVD - - updater.SplitQualityAppend(1, 20); // Bluray480p AFTER SDTV - updater.SplitQualityAppend(1, 21); // Bluray576p AFTER SDTV - - updater.SplitQualityPrepend(10, 22); // BRDISK BEFORE RAWHD - - updater.Commit(); - - // WEBRip migrations. - //updater.SplitQualityAppend(1, 11); // HDTV480p after SDTV - //updater.SplitQualityPrepend(8, 12); // WEBRip480p before WEBDL480p - //updater.SplitQualityAppend(2, 13); // Bluray480p after DVD - //updater.SplitQualityPrepend(5, 14); // WEBRip720p before WEBDL720p - //updater.SplitQualityPrepend(3, 15); // WEBRip1080p before WEBDL1080p - //updater.SplitQualityPrepend(18, 17); // WEBRip2160p before WEBDL2160p - } - } -} diff --git a/src/NzbDrone.Core/Datastore/Migration/126_update_qualities_and_profiles.cs b/src/NzbDrone.Core/Datastore/Migration/126_update_qualities_and_profiles.cs new file mode 100644 index 000000000..4b050140b --- /dev/null +++ b/src/NzbDrone.Core/Datastore/Migration/126_update_qualities_and_profiles.cs @@ -0,0 +1,35 @@ +using System.Data; +using FluentMigrator; +using NzbDrone.Core.Datastore.Migration.Framework; + +namespace NzbDrone.Core.Datastore.Migration +{ + [Migration(126)] + public class update_qualities_and_profiles : NzbDroneMigrationBase + { + protected override void MainDbUpgrade() + { + Execute.WithConnection(ConvertProfile); + } + + private void ConvertProfile(IDbConnection conn, IDbTransaction tran) + { + var updater = new ProfileUpdater70(conn, tran); + updater.SplitQualityAppend(0, 27); // TELECINE AFTER Unknown + updater.SplitQualityAppend(0, 26); // TELESYNC AFTER Unknown + updater.SplitQualityAppend(0, 25); // CAM AFTER Unknown + updater.SplitQualityAppend(0, 24); // WORKPRINT AFTER Unknown + + updater.SplitQualityPrepend(2, 23); // DVDR BEFORE DVD + updater.SplitQualityPrepend(2, 28); // DVDSCR BEFORE DVD + updater.SplitQualityPrepend(2, 29); // REGIONAL BEFORE DVD + + updater.SplitQualityAppend(1, 20); // Bluray480p AFTER SDTV + updater.SplitQualityAppend(1, 21); // Bluray576p AFTER SDTV + + updater.SplitQualityPrepend(10, 22); // BRDISK BEFORE RAWHD + + updater.Commit(); + } + } +} diff --git a/src/NzbDrone.Core/NzbDrone.Core.csproj b/src/NzbDrone.Core/NzbDrone.Core.csproj index 8d74efc50..895393ffe 100644 --- a/src/NzbDrone.Core/NzbDrone.Core.csproj +++ b/src/NzbDrone.Core/NzbDrone.Core.csproj @@ -219,7 +219,7 @@ - + From 977b87cbf36921f97ab139491dafde8295332a45 Mon Sep 17 00:00:00 2001 From: Devin Buhl Date: Sun, 29 Jan 2017 16:07:30 -0500 Subject: [PATCH 7/8] migration migraine-tion --- .../Migration/126_update_qualities_and_profiles.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/NzbDrone.Core/Datastore/Migration/126_update_qualities_and_profiles.cs b/src/NzbDrone.Core/Datastore/Migration/126_update_qualities_and_profiles.cs index 4b050140b..9c44ecb5b 100644 --- a/src/NzbDrone.Core/Datastore/Migration/126_update_qualities_and_profiles.cs +++ b/src/NzbDrone.Core/Datastore/Migration/126_update_qualities_and_profiles.cs @@ -24,10 +24,10 @@ namespace NzbDrone.Core.Datastore.Migration updater.SplitQualityPrepend(2, 28); // DVDSCR BEFORE DVD updater.SplitQualityPrepend(2, 29); // REGIONAL BEFORE DVD - updater.SplitQualityAppend(1, 20); // Bluray480p AFTER SDTV - updater.SplitQualityAppend(1, 21); // Bluray576p AFTER SDTV + updater.SplitQualityAppend(2, 21); // Bluray576p AFTER SDTV + updater.SplitQualityAppend(2, 20); // Bluray480p AFTER SDTV - updater.SplitQualityPrepend(10, 22); // BRDISK BEFORE RAWHD + updater.AppendQuality(22); updater.Commit(); } From 31149aeed9041b9a54d87060e4869582939cf58d Mon Sep 17 00:00:00 2001 From: Tim Turner Date: Sun, 29 Jan 2017 16:08:14 -0500 Subject: [PATCH 8/8] Ensure qualities don't overflow profile card --- src/UI/Settings/Profile/profile.less | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/UI/Settings/Profile/profile.less b/src/UI/Settings/Profile/profile.less index df217a398..e7d8b5554 100644 --- a/src/UI/Settings/Profile/profile.less +++ b/src/UI/Settings/Profile/profile.less @@ -6,7 +6,7 @@ .clickable; width: 300px; - height: 158px; + //height: 158px; padding: 10px 15px; &.add-card {