mirror of
https://github.com/Sonarr/Sonarr
synced 2024-12-23 16:26:02 +00:00
ParseEpisodeInfo will now handle repeating Episode Naming Format (S01E01E02 or S01E01-02), It will not handle ranges (S01E01-06)
Changed port back to 8989.
This commit is contained in:
parent
499279e2ac
commit
fd3d94c9b0
4 changed files with 29 additions and 14 deletions
|
@ -148,7 +148,7 @@
|
|||
<virtualDirectory path="/" physicalPath="%NZBDRONE_PATH%\NZBDrone.Web" />
|
||||
</application>
|
||||
<bindings>
|
||||
<binding protocol="http" bindingInformation="*:8111:" />
|
||||
<binding protocol="http" bindingInformation="*:8989:" />
|
||||
</bindings>
|
||||
</site>
|
||||
<siteDefaults>
|
||||
|
|
|
@ -13,7 +13,6 @@ namespace NzbDrone.Core.Test
|
|||
public class ParserTest
|
||||
{
|
||||
[Test]
|
||||
[Row("WEEDS.S03E01-06.DUAL.BDRip.XviD.AC3.-HELLYWOOD", 3, 1)]
|
||||
[Row("Two.and.a.Half.Me.103.720p.HDTV.X264-DIMENSION", 1, 3)]
|
||||
[Row("Two.and.a.Half.Me.113.720p.HDTV.X264-DIMENSION", 1, 13)]
|
||||
[Row("Two.and.a.Half.Me.1013.720p.HDTV.X264-DIMENSION", 10, 13)]
|
||||
|
@ -35,6 +34,18 @@ namespace NzbDrone.Core.Test
|
|||
Assert.AreEqual(episode, result[0].EpisodeNumber);
|
||||
}
|
||||
|
||||
[Test]
|
||||
[Row("The.Office.US.S03E01E02.DUAL.BDRip.XviD.AC3.-HELLYWOOD", 3, 1, 2)]
|
||||
[Row("WEEDS.S03E01-06.DUAL.BDRip.XviD.AC3.-HELLYWOOD", 3, 1, 6)]
|
||||
public void episode_parse_multi(string path, int season, int episodeOne, int episodeTwo)
|
||||
{
|
||||
var result = Parser.ParseEpisodeInfo(path);
|
||||
Assert.Count(2, result);
|
||||
Assert.AreEqual(season, result[0].SeasonNumber);
|
||||
Assert.AreEqual(episodeOne, result[0].EpisodeNumber);
|
||||
Assert.AreEqual(episodeTwo, result[1].EpisodeNumber);
|
||||
}
|
||||
|
||||
[Test]
|
||||
[Row("WEEDS.S03E01-06.DUAL.BDRip.XviD.AC3.-HELLYWOOD", QualityTypes.BDRip)]
|
||||
[Row("WEEDS.S03E01-06.DUAL.BDRip.AC3.-HELLYWOOD", QualityTypes.BDRip)]
|
||||
|
|
|
@ -18,7 +18,7 @@ namespace NzbDrone.Core
|
|||
|
||||
private static readonly Regex[] ReportTitleRegex = new[]
|
||||
{
|
||||
new Regex(@"(?<title>.+?)?\W?(?<year>\d+?)?\WS?(?<season>\d+)(?:\-|\.|[a-z])(?<episode>\d+)\W(?!\\)", RegexOptions.IgnoreCase | RegexOptions.Compiled),
|
||||
new Regex(@"(?<title>.+?)?\W?(?<year>\d+?)?\WS?(?<season>\d+)((?:\-|\.|[a-z])(?<episode>\d+))+\W(?!\\)", RegexOptions.IgnoreCase | RegexOptions.Compiled),
|
||||
new Regex(@"(?<title>.+?)?\W?(?<year>\d+?)?\WS?(?<season>\d+)(?<episode>\d{2})\W(?!\\)", RegexOptions.IgnoreCase | RegexOptions.Compiled) //Supports 103/113 naming
|
||||
};
|
||||
|
||||
|
@ -58,18 +58,22 @@ namespace NzbDrone.Core
|
|||
foreach (Match matchGroup in match)
|
||||
{
|
||||
|
||||
var parsedEpisode = new EpisodeParseResult
|
||||
{
|
||||
SeriesTitle = seriesName,
|
||||
SeasonNumber = Convert.ToInt32(matchGroup.Groups["season"].Value),
|
||||
EpisodeNumber = Convert.ToInt32(matchGroup.Groups["episode"].Value),
|
||||
Year = year
|
||||
};
|
||||
var seasonNumber = Convert.ToInt32(matchGroup.Groups["season"].Value);
|
||||
|
||||
foreach (Capture episode in matchGroup.Groups["episode"].Captures)
|
||||
{
|
||||
var parsedEpisode = new EpisodeParseResult
|
||||
{
|
||||
SeriesTitle = seriesName,
|
||||
SeasonNumber = seasonNumber,
|
||||
EpisodeNumber = Convert.ToInt32(episode.Value),
|
||||
Year = year
|
||||
};
|
||||
|
||||
|
||||
result.Add(parsedEpisode);
|
||||
|
||||
Logger.Trace("Episode Parsed. {0}", parsedEpisode);
|
||||
result.Add(parsedEpisode);
|
||||
Logger.Trace("Episode Parsed. {0}", parsedEpisode);
|
||||
}
|
||||
}
|
||||
break; //Break out of the for loop, we don't want to process every REGEX for each item otherwise we'll get duplicates
|
||||
}
|
||||
|
|
|
@ -4,6 +4,6 @@
|
|||
<supportedRuntime version="v4.0" />
|
||||
</startup>
|
||||
<appSettings>
|
||||
<add key="port" value="8111" />
|
||||
<add key="port" value="8989" />
|
||||
</appSettings>
|
||||
</configuration>
|
Loading…
Reference in a new issue