From 3390df408555ac42b518dc2952b8606284fb8abf Mon Sep 17 00:00:00 2001 From: Qstick Date: Wed, 19 Oct 2022 20:50:02 -0500 Subject: [PATCH] New: Parse anime version with a space before 'v' Closes #7633 --- .../ParserTests/AnimeVersionFixture.cs | 23 +++++++++++++++++++ src/NzbDrone.Core/Parser/QualityParser.cs | 4 +--- 2 files changed, 24 insertions(+), 3 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..de247adbb --- /dev/null +++ b/src/NzbDrone.Core.Test/ParserTests/AnimeVersionFixture.cs @@ -0,0 +1,23 @@ +using FluentAssertions; +using NUnit.Framework; +using NzbDrone.Core.Parser; +using NzbDrone.Core.Test.Framework; + +namespace NzbDrone.Core.Test.ParserTests +{ + [TestFixture] + public class AnimeVersionFixture : CoreTest + { + [TestCase("Anime Title - 2018 - (BD 1080p HEVC FLAC) [Dual Audio] [Group]", 1)] + [TestCase("Anime Title - 2018v2 - (BD 1080p HEVC FLAC) [Dual Audio] [Group]", 2)] + [TestCase("Anime Title - 2018 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/Parser/QualityParser.cs b/src/NzbDrone.Core/Parser/QualityParser.cs index f02dfd914..59d417a55 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", @@ -75,8 +75,6 @@ namespace NzbDrone.Core.Parser private static readonly Regex RemuxRegex = new Regex(@"(?:[_. \[]|\d{4}p-)(?(?:(BD|UHD)[-_. ]?)?Remux)\b|(?(?:(BD|UHD)[-_. ]?)?Remux[_. ]\d{4}p)", RegexOptions.Compiled | RegexOptions.IgnoreCase); - private static readonly Regex HDShitQualityRegex = new Regex(@"(HD-TS|HDTS|HDTSRip|HD-TC|HDTC|HDCAM|HD-CAM)", RegexOptions.Compiled | RegexOptions.IgnoreCase); - private static readonly Regex HardcodedSubsRegex = new Regex(@"\b(?(\w+(?(HC|SUBBED))\b", RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.IgnorePatternWhitespace);