From 27316b4239b7a4ad9b7ee247c36949f67ea59968 Mon Sep 17 00:00:00 2001 From: Mark McDowall Date: Sun, 25 Sep 2022 00:17:30 -0700 Subject: [PATCH] New: Parse anime version with a space before 'v' (cherry picked from commit e9123982f33ab35ca022f91f345da05fef23d6dc) --- .../ParserTests/AnimeVersionFixture.cs | 24 +++++++++++++++++++ .../ParserTests/QualityParserFixture.cs | 1 - src/NzbDrone.Core/Parser/QualityParser.cs | 2 +- 3 files changed, 25 insertions(+), 2 deletions(-) create mode 100644 src/NzbDrone.Core.Test/ParserTests/AnimeVersionFixture.cs diff --git a/src/NzbDrone.Core.Test/ParserTests/AnimeVersionFixture.cs b/src/NzbDrone.Core.Test/ParserTests/AnimeVersionFixture.cs new file mode 100644 index 000000000..bdbb7e231 --- /dev/null +++ b/src/NzbDrone.Core.Test/ParserTests/AnimeVersionFixture.cs @@ -0,0 +1,24 @@ +using FluentAssertions; +using NUnit.Framework; +using NzbDrone.Core.Parser; +using NzbDrone.Core.Qualities; +using NzbDrone.Core.Test.Framework; + +namespace NzbDrone.Core.Test.ParserTests +{ + [TestFixture] + public class AnimeVersionFixture : CoreTest + { + [TestCase("Anime Title - S01E01 - (BD 1080p HEVC FLAC) [Dual Audio] [Group]", 1)] + [TestCase("Anime Title - S01E01v2 - (BD 1080p HEVC FLAC) [Dual Audio] [Group]", 2)] + [TestCase("Anime Title - S01E01 v2 - (BD 1080p HEVC FLAC) [Dual Audio] [Group]", 2)] + [TestCase("[SubsPlease] Anime Title - 01 (1080p) [B1F227CF]", 1)] + [TestCase("[SubsPlease] Anime Title - 01v2 (1080p) [B1F227CF]", 2)] + [TestCase("[SubsPlease] Anime Title - 01 v2 (1080p) [B1F227CF]", 2)] + public void should_be_able_to_parse_repack(string title, int version) + { + var result = QualityParser.ParseQuality(title); + result.Revision.Version.Should().Be(version); + } + } +} diff --git a/src/NzbDrone.Core.Test/ParserTests/QualityParserFixture.cs b/src/NzbDrone.Core.Test/ParserTests/QualityParserFixture.cs index 15ecd660e..31b033193 100644 --- a/src/NzbDrone.Core.Test/ParserTests/QualityParserFixture.cs +++ b/src/NzbDrone.Core.Test/ParserTests/QualityParserFixture.cs @@ -7,7 +7,6 @@ using NzbDrone.Core.Test.Framework; namespace NzbDrone.Core.Test.ParserTests { [TestFixture] - public class QualityParserFixture : CoreTest { [SetUp] diff --git a/src/NzbDrone.Core/Parser/QualityParser.cs b/src/NzbDrone.Core/Parser/QualityParser.cs index e69257968..7eee5b9fa 100644 --- a/src/NzbDrone.Core/Parser/QualityParser.cs +++ b/src/NzbDrone.Core/Parser/QualityParser.cs @@ -50,7 +50,7 @@ namespace NzbDrone.Core.Parser private static readonly Regex RepackRegex = new Regex(@"\b(?repack|rerip)\b", RegexOptions.Compiled | RegexOptions.IgnoreCase); - private static readonly Regex VersionRegex = new Regex(@"\dv(?\d)\b|\[v(?\d)\]", + private static readonly Regex VersionRegex = new Regex(@"\d[-._ ]?v(?\d)[-._ ]|\[v(?\d)\]", RegexOptions.Compiled | RegexOptions.IgnoreCase); private static readonly Regex RealRegex = new Regex(@"\b(?REAL)\b",