mirror of
https://github.com/Sonarr/Sonarr
synced 2024-12-27 02:07:41 +00:00
optimized ParseEpisodeInfo
This commit is contained in:
parent
c91852018e
commit
fad0c6265c
1 changed files with 6 additions and 4 deletions
|
@ -31,6 +31,9 @@ namespace NzbDrone.Core
|
||||||
private static readonly Regex NormalizeRegex = new Regex(@"((^|\W)(a|an|the|and|or|of)($|\W))|\W|\b(?!(?:19\d{2}|20\d{2}))\d+\b",
|
private static readonly Regex NormalizeRegex = new Regex(@"((^|\W)(a|an|the|and|or|of)($|\W))|\W|\b(?!(?:19\d{2}|20\d{2}))\d+\b",
|
||||||
RegexOptions.IgnoreCase | RegexOptions.Compiled);
|
RegexOptions.IgnoreCase | RegexOptions.Compiled);
|
||||||
|
|
||||||
|
private static readonly Regex SimpleTitleRegex = new Regex(@"480[i|p]|720[i|p]|1080[i|p]|[x|h]264|\\|\/|\<|\>|\?|\*|\:|\|",
|
||||||
|
RegexOptions.IgnoreCase | RegexOptions.Compiled);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Parses a post title into list of episodes it contains
|
/// Parses a post title into list of episodes it contains
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -39,11 +42,10 @@ namespace NzbDrone.Core
|
||||||
internal static EpisodeParseResult ParseEpisodeInfo(string title)
|
internal static EpisodeParseResult ParseEpisodeInfo(string title)
|
||||||
{
|
{
|
||||||
Logger.Trace("Parsing string '{0}'", title);
|
Logger.Trace("Parsing string '{0}'", title);
|
||||||
|
var simpleTitle = SimpleTitleRegex.Replace(title, String.Empty);
|
||||||
|
|
||||||
foreach (var regex in ReportTitleRegex)
|
foreach (var regex in ReportTitleRegex)
|
||||||
{
|
{
|
||||||
var simpleTitle = Regex.Replace(title, @"480[i|p]|720[i|p]|1080[i|p]|[x|h]264|\\|\/|\<|\>|\?|\*|\:|\|", String.Empty, RegexOptions.IgnoreCase | RegexOptions.Compiled);
|
|
||||||
|
|
||||||
//Use only the filename, not the entire path
|
//Use only the filename, not the entire path
|
||||||
var match = regex.Matches(new FileInfo(simpleTitle).Name);
|
var match = regex.Matches(new FileInfo(simpleTitle).Name);
|
||||||
|
|
||||||
|
@ -51,14 +53,14 @@ namespace NzbDrone.Core
|
||||||
{
|
{
|
||||||
var seriesName = NormalizeTitle(match[0].Groups["title"].Value);
|
var seriesName = NormalizeTitle(match[0].Groups["title"].Value);
|
||||||
|
|
||||||
var airyear = 0;
|
int airyear;
|
||||||
Int32.TryParse(match[0].Groups["airyear"].Value, out airyear);
|
Int32.TryParse(match[0].Groups["airyear"].Value, out airyear);
|
||||||
|
|
||||||
EpisodeParseResult parsedEpisode;
|
EpisodeParseResult parsedEpisode;
|
||||||
|
|
||||||
if (airyear < 1)
|
if (airyear < 1)
|
||||||
{
|
{
|
||||||
var season = 0;
|
int season;
|
||||||
Int32.TryParse(match[0].Groups["season"].Value, out season);
|
Int32.TryParse(match[0].Groups["season"].Value, out season);
|
||||||
|
|
||||||
parsedEpisode = new EpisodeParseResult
|
parsedEpisode = new EpisodeParseResult
|
||||||
|
|
Loading…
Reference in a new issue