Merge pull request #2429 from Bond-009/episode

Fix episode parsing
This commit is contained in:
dkanada 2020-02-22 00:17:37 +09:00 committed by GitHub
commit 4355b453d4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 30 additions and 7 deletions

View File

@ -277,7 +277,7 @@ namespace Emby.Naming.Common
// This isn't a Kodi naming rule, but the expression below causes false positives,
// so we make sure this one gets tested first.
// "Foo Bar 889"
new EpisodeExpression(@".*[\\\/](?![Ee]pisode)(?<seriesname>[\w\s]+?)\s(?<epnumber>\d{1,3})(-(?<endingepnumber>\d{2,3}))*[^\\\/]*$")
new EpisodeExpression(@".*[\\\/](?![Ee]pisode)(?<seriesname>[\w\s]+?)\s(?<epnumber>\d{1,3})(-(?<endingepnumber>\d{2,3}))*[^\\\/x]*$")
{
IsNamed = true
},

View File

@ -6,6 +6,21 @@ namespace Jellyfin.Naming.Tests.TV
{
public class EpisodeNumberTests
{
private readonly NamingOptions _namingOptions = new NamingOptions();
[Theory]
[InlineData("Watchmen (2019)/Watchmen 1x03 [WEBDL-720p][EAC3 5.1][h264][-TBS] - She Was Killed by Space Junk.mkv", 3)]
[InlineData("The Daily Show/The Daily Show 25x22 - [WEBDL-720p][AAC 2.0][x264] Noah Baumbach-TBS.mkv", 22)]
[InlineData("Castle Rock 2x01 Que el rio siga su curso [WEB-DL HULU 1080p h264 Dual DD5.1 Subs].mkv", 1)]
[InlineData("After Life 1x06 Episodio 6 [WEB-DL NF 1080p h264 Dual DD 5.1 Sub].mkv", 6)]
public void GetEpisodeNumberFromFileTest(string path, int? expected)
{
var result = new EpisodePathParser(_namingOptions)
.Parse(path, false);
Assert.Equal(expected, result.EpisodeNumber);
}
[Fact]
public void TestEpisodeNumber1()
{
@ -382,9 +397,7 @@ namespace Jellyfin.Naming.Tests.TV
private int? GetEpisodeNumberFromFile(string path)
{
var options = new NamingOptions();
var result = new EpisodePathParser(options)
var result = new EpisodePathParser(_namingOptions)
.Parse(path, false);
return result.EpisodeNumber;

View File

@ -6,11 +6,21 @@ namespace Jellyfin.Naming.Tests.TV
{
public class SeasonNumberTests
{
private readonly NamingOptions _namingOptions = new NamingOptions();
[Theory]
[InlineData("The Daily Show/The Daily Show 25x22 - [WEBDL-720p][AAC 2.0][x264] Noah Baumbach-TBS.mkv", 25)]
public void GetSeasonNumberFromEpisodeFileTest(string path, int? expected)
{
var result = new EpisodeResolver(_namingOptions)
.Resolve(path, false);
Assert.Equal(expected, result.SeasonNumber);
}
private int? GetSeasonNumberFromEpisodeFile(string path)
{
var options = new NamingOptions();
var result = new EpisodeResolver(options)
var result = new EpisodeResolver(_namingOptions)
.Resolve(path, false);
return result.SeasonNumber;