aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordkanada <dkanada@users.noreply.github.com>2020-02-22 00:17:37 +0900
committerGitHub <noreply@github.com>2020-02-22 00:17:37 +0900
commit4355b453d4f3c565d43d51b34d62dcb9cc487075 (patch)
treedfabcc5a8b1570fe20c25c6444307a388021c448
parent61015c1d0f1e3c8521f3cd107fb979eb1b47b008 (diff)
parent7df6d4e7a09faf54fb7b907fd40fed2eb354f813 (diff)
Merge pull request #2429 from Bond-009/episode
Fix episode parsing
-rw-r--r--Emby.Naming/Common/NamingOptions.cs2
-rw-r--r--tests/Jellyfin.Naming.Tests/TV/EpisodeNumberTests.cs19
-rw-r--r--tests/Jellyfin.Naming.Tests/TV/SeasonNumberTests.cs16
3 files changed, 30 insertions, 7 deletions
diff --git a/Emby.Naming/Common/NamingOptions.cs b/Emby.Naming/Common/NamingOptions.cs
index 1554e61d8..b4f22ed69 100644
--- a/Emby.Naming/Common/NamingOptions.cs
+++ b/Emby.Naming/Common/NamingOptions.cs
@@ -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
},
diff --git a/tests/Jellyfin.Naming.Tests/TV/EpisodeNumberTests.cs b/tests/Jellyfin.Naming.Tests/TV/EpisodeNumberTests.cs
index 93c59c9ca..5017fce4d 100644
--- a/tests/Jellyfin.Naming.Tests/TV/EpisodeNumberTests.cs
+++ b/tests/Jellyfin.Naming.Tests/TV/EpisodeNumberTests.cs
@@ -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;
diff --git a/tests/Jellyfin.Naming.Tests/TV/SeasonNumberTests.cs b/tests/Jellyfin.Naming.Tests/TV/SeasonNumberTests.cs
index ba3c5ecac..1df28c974 100644
--- a/tests/Jellyfin.Naming.Tests/TV/SeasonNumberTests.cs
+++ b/tests/Jellyfin.Naming.Tests/TV/SeasonNumberTests.cs
@@ -6,11 +6,21 @@ namespace Jellyfin.Naming.Tests.TV
{
public class SeasonNumberTests
{
- private int? GetSeasonNumberFromEpisodeFile(string path)
+ 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 options = new NamingOptions();
+ var result = new EpisodeResolver(_namingOptions)
+ .Resolve(path, false);
- var result = new EpisodeResolver(options)
+ Assert.Equal(expected, result.SeasonNumber);
+ }
+
+ private int? GetSeasonNumberFromEpisodeFile(string path)
+ {
+ var result = new EpisodeResolver(_namingOptions)
.Resolve(path, false);
return result.SeasonNumber;