diff --git a/src/NzbDrone.Core.Test/ParserTests/ReleaseGroupParserFixture.cs b/src/NzbDrone.Core.Test/ParserTests/ReleaseGroupParserFixture.cs index 24778832a..b7eacf114 100644 --- a/src/NzbDrone.Core.Test/ParserTests/ReleaseGroupParserFixture.cs +++ b/src/NzbDrone.Core.Test/ParserTests/ReleaseGroupParserFixture.cs @@ -192,5 +192,13 @@ namespace NzbDrone.Core.Test.ParserTests { Parser.ReleaseGroupParser.ParseReleaseGroup(title).Should().BeNull(); } + + [TestCase("Some TV (1979) - S02E10 - Hart-Shaped Murder [SDTV][AAC 2.0][x264]")] + [TestCase("Some TV (1979) - S02E10 - Hart-Shaped Murder [HDTV-480p][AAC 2.0][x264]")] + [TestCase("Some TV (1979) - S02E10 - Hart-Shaped Murder [480p-HDTV][AAC 2.0][x264]")] + public void should_not_parse_episode_title_as_release_group(string title) + { + Parser.ReleaseGroupParser.ParseReleaseGroup(title).Should().BeNull(); + } } } diff --git a/src/NzbDrone.Core/Parser/ReleaseGroupParser.cs b/src/NzbDrone.Core/Parser/ReleaseGroupParser.cs index ef4491253..5feede30b 100644 --- a/src/NzbDrone.Core/Parser/ReleaseGroupParser.cs +++ b/src/NzbDrone.Core/Parser/ReleaseGroupParser.cs @@ -6,7 +6,7 @@ namespace NzbDrone.Core.Parser; public static class ReleaseGroupParser { - private static readonly Regex ReleaseGroupRegex = new(@"-(?[a-z0-9]+(?-[a-z0-9]+)?(?!.+?(?:480p|576p|720p|1080p|2160p)))(?)?)(?:\b|[-._ ]|$)|[-._ ]\[(?[a-z0-9]+)\]$", + private static readonly Regex ReleaseGroupRegex = new(@"-(?[a-z0-9]+(?-[a-z0-9]+)?(?!.+?(?:HDTV|SDTV|480p|576p|720p|1080p|2160p)))(?)?)(?:\b|[-._ ]|$)|[-._ ]\[(?[a-z0-9]+)\]$", RegexOptions.IgnoreCase | RegexOptions.Compiled); private static readonly Regex InvalidReleaseGroupRegex = new(@"^([se]\d+|[0-9a-f]{8})$", RegexOptions.IgnoreCase | RegexOptions.Compiled);