From 8dad6cc8db38d7dafe6b45bc817a11f56e7b0e66 Mon Sep 17 00:00:00 2001 From: bakerboy448 <55419169+bakerboy448@users.noreply.github.com> Date: Sat, 26 Jun 2021 05:20:51 -0500 Subject: [PATCH] Fixed: Support for additional Movie Editions Closes #5717 --- src/NzbDrone.Core.Test/ParserTests/EditionParserFixture.cs | 6 ++++++ src/NzbDrone.Core/Parser/Parser.cs | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/NzbDrone.Core.Test/ParserTests/EditionParserFixture.cs b/src/NzbDrone.Core.Test/ParserTests/EditionParserFixture.cs index 96c13807a..c68ab8bc6 100644 --- a/src/NzbDrone.Core.Test/ParserTests/EditionParserFixture.cs +++ b/src/NzbDrone.Core.Test/ParserTests/EditionParserFixture.cs @@ -44,6 +44,11 @@ namespace NzbDrone.Core.Test.ParserTests [TestCase("My.Movie.GERMAN.Extended.Cut.2016", "Extended Cut")] [TestCase("My.Movie.GERMAN.Extended.Cut", "Extended Cut")] [TestCase("My.Movie.Assembly.Cut.1992.REPACK.1080p.BluRay.DD5.1.x264-Group", "Assembly Cut")] + [TestCase("Movie.1987.Ultimate.Hunter.Edition.DTS-HD.DTS.MULTISUBS.1080p.BluRay.x264.HQ-TUSAHD", "Ultimate Hunter Edition")] + [TestCase("Movie.1950.Diamond.Edition.1080p.BluRay.x264-nikt0", "Diamond Edition")] + [TestCase("Movie.Title.1990.Ultimate.Rekall.Edition.NORDiC.REMUX.1080p.BluRay.AVC.DTS-HD.MA5.1-TWA", "Ultimate Rekall Edition")] + [TestCase("Movie.Title.1971.Signature.Edition.1080p.BluRay.FLAC.2.0.x264-TDD", "Signature Edition")] + [TestCase("Movie.1979.The.Imperial.Edition.BluRay.720p.DTS.x264-CtrlHD", "Imperial Edition")] public void should_parse_edition(string postTitle, string edition) { var parsed = Parser.Parser.ParseMovieTitle(postTitle); @@ -55,6 +60,7 @@ namespace NzbDrone.Core.Test.ParserTests [TestCase("Movie Impossible: Rogue Movie 2012 Bluray")] [TestCase("Loving.Movie.2018.TS.FRENCH.MD.x264-DROGUERiE")] [TestCase("Uncut.Movie.2019.720p.BluRay.x264-YOL0W")] + [TestCase("The.Christmas.Edition.1941.720p.HDTV.x264-CRiMSON")] public void should_not_parse_edition(string postTitle) { var parsed = Parser.Parser.ParseMovieTitle(postTitle); diff --git a/src/NzbDrone.Core/Parser/Parser.cs b/src/NzbDrone.Core/Parser/Parser.cs index 0ff42406d..9f3c45597 100644 --- a/src/NzbDrone.Core/Parser/Parser.cs +++ b/src/NzbDrone.Core/Parser/Parser.cs @@ -14,7 +14,7 @@ namespace NzbDrone.Core.Parser { private static readonly Logger Logger = NzbDroneLogger.GetLogger(typeof(Parser)); - private static readonly Regex EditionRegex = new Regex(@"\(?\b(?(((Recut.|Extended.|Ultimate.)?(Director.?s|Collector.?s|Theatrical|Ultimate|Extended|Despecialized|(Special|Rouge|Final|Assembly)(?=(.(Cut|Edition|Version)))|\d{2,3}(th)?.Anniversary)(.(Cut|Edition|Version))?(.(Extended|Uncensored|Remastered|Unrated|Uncut|IMAX|Fan.?Edit))?|((Uncensored|Remastered|Unrated|Uncut|IMAX|Fan.?Edit|Edition|Restored|((2|3|4)in1))))))\b\)?", RegexOptions.Compiled | RegexOptions.IgnoreCase); + private static readonly Regex EditionRegex = new Regex(@"\(?\b(?(((Recut.|Extended.|Ultimate.)?(Director.?s|Collector.?s|Theatrical|Ultimate|Extended|Despecialized|(Special|Rouge|Final|Assembly|Imperial|Diamond|Signature|Hunter|Rekall)(?=(.(Cut|Edition|Version)))|\d{2,3}(th)?.Anniversary)(?:.(Cut|Edition|Version))?(.(Extended|Uncensored|Remastered|Unrated|Uncut|IMAX|Fan.?Edit))?|((Uncensored|Remastered|Unrated|Uncut|IMAX|Fan.?Edit|Restored|((2|3|4)in1))))))\b\)?", RegexOptions.Compiled | RegexOptions.IgnoreCase); private static readonly Regex ReportEditionRegex = new Regex(@"^.+?" + EditionRegex, RegexOptions.Compiled | RegexOptions.IgnoreCase);