@ -122,7 +122,7 @@ namespace NzbDrone.Core.Parser
private static readonly Regex CleanQualityBracketsRegex = new Regex ( @"\[[a-z0-9 ._-]+\]$" ,
RegexOptions . IgnoreCase | RegexOptions . Compiled ) ;
private static readonly Regex ReleaseGroupRegex = new Regex ( @"-(?<releasegroup>[a-z0-9]+(?<part2>-[a-z0-9]+)?(?!.+?(?:480p|720p|1080p|2160p)))(?<!(?:WEB-DL|Blu-Ray|480p|720p|1080p|2160p|DTS-HD|DTS-X|DTS-MA|DTS-ES| [ ._]\d{4}-\d{2}|-\d{2}|tmdb(id)?-(?<tmdbid>\d+)|(?<imdbid>tt\d{7,8}))(?:\k<part2>)?)(?:\b|[-._ ]|$)|[-._ ]\[(?<releasegroup>[a-z0-9]+)\]$",
private static readonly Regex ReleaseGroupRegex = new Regex ( @"-(?<releasegroup>[a-z0-9]+(?<part2>-[a-z0-9]+)?(?!.+?(?:480p|720p|1080p|2160p)))(?<!(?:WEB-DL|Blu-Ray|480p|720p|1080p|2160p|DTS-HD|DTS-X|DTS-MA|DTS-ES| -ES|-EN|-CAT| [ ._]\d{4}-\d{2}|-\d{2}|tmdb(id)?-(?<tmdbid>\d+)|(?<imdbid>tt\d{7,8}))(?:\k<part2>)?)(?:\b|[-._ ]|$)|[-._ ]\[(?<releasegroup>[a-z0-9]+)\]$",
RegexOptions . IgnoreCase | RegexOptions . Compiled ) ;
private static readonly Regex AnimeReleaseGroupRegex = new Regex ( @"^(?:\[(?<subgroup>(?!\s).+?(?<!\s))\](?:_|-|\s|\.)?)" ,
@ -132,9 +132,12 @@ namespace NzbDrone.Core.Parser
RegexOptions . IgnoreCase | RegexOptions . Compiled ) ;
//Handle Exception Release Groups that don't follow -RlsGrp; Manual List
//First Group is groups whose releases end with RlsGroup) or RlsGroup] second group (entries after `(?=\]|\))|`) is name only...BE VERY CAREFUL WITH THIS, HIGH CHANCE OF FALSE POSITIVES
private static readonly Regex ExceptionReleaseGroupRegex = new Regex ( @"(?<releasegroup>(Tigole|Joy|YIFY|YTS.MX|YTS.LT|FreetheFish|afm72|Anna|Bandi|Ghost|Kappa|MONOLITH|Qman|RZeroX|SAMPA|Silence|theincognito|t3nzin|Vyndros)(?=\]|\))|KRaLiMaRKo|E\.N\.D|D\-Z0N3)" ,
RegexOptions . IgnoreCase | RegexOptions . Compiled ) ;
//groups whose releases end with RlsGroup) or RlsGroup]
private static readonly Regex ExceptionReleaseGroupRegex = new Regex ( @"(?<releasegroup>(Tigole|Joy|YIFY|YTS.MX|YTS.LT|FreetheFish|afm72|Anna|Bandi|Ghost|Kappa|MONOLITH|Qman|RZeroX|SAMPA|Silence|theincognito|t3nzin|Vyndros|HDO)(?=\]|\)))" , RegexOptions . IgnoreCase | RegexOptions . Compiled ) ;
//Handle Exception Release Groups that don't follow -RlsGrp; Manual List
// name only...BE VERY CAREFUL WITH THIS, HIGH CHANCE OF FALSE POSITIVES
private static readonly Regex ExceptionReleaseGroupRegexExact = new Regex ( @"(?<releasegroup>KRaLiMaRKo|E\.N\.D|D\-Z0N3)" , RegexOptions . IgnoreCase | RegexOptions . Compiled ) ;
private static readonly Regex WordDelimiterRegex = new Regex ( @"(\s|\.|,|_|-|=|'|\|)+" , RegexOptions . Compiled ) ;
private static readonly Regex SpecialCharRegex = new Regex ( @"(\&|\:|\\|\/)+" , RegexOptions . Compiled ) ;
@ -469,6 +472,13 @@ namespace NzbDrone.Core.Parser
return exceptionMatch . OfType < Match > ( ) . Last ( ) . Groups [ "releasegroup" ] . Value ;
}
var exceptionExactMatch = ExceptionReleaseGroupRegexExact . Matches ( title ) ;
if ( exceptionExactMatch . Count ! = 0 )
{
return exceptionExactMatch . OfType < Match > ( ) . Last ( ) . Groups [ "releasegroup" ] . Value ;
}
var matches = ReleaseGroupRegex . Matches ( title ) ;
if ( matches . Count ! = 0 )