Merge pull request #5043 from senritsu/improve-episode-number-parsing-with-digits-in-names
adjust episode path expression to allow digits in series names
This commit is contained in:
commit
2e9661c415
|
@ -282,7 +282,13 @@ namespace Emby.Naming.Common
|
||||||
SupportsAbsoluteEpisodeNumbers = true
|
SupportsAbsoluteEpisodeNumbers = true
|
||||||
},
|
},
|
||||||
|
|
||||||
// Case Closed (1996-2007)/Case Closed - 317.mkv
|
// Not a Kodi rule as well, but below rule also causes false positives for triple-digit episode names
|
||||||
|
// [bar] Foo - 1 [baz] special case of below expression to prevent false positives with digits in the series name
|
||||||
|
new EpisodeExpression(@".*?(\[.*?\])+.*?(?<seriesname>[\w\s]+?)[\s_]*-[\s_]*(?<epnumber>\d+).*$")
|
||||||
|
{
|
||||||
|
IsNamed = true
|
||||||
|
},
|
||||||
|
|
||||||
// /server/anything_102.mp4
|
// /server/anything_102.mp4
|
||||||
// /server/james.corden.2017.04.20.anne.hathaway.720p.hdtv.x264-crooks.mkv
|
// /server/james.corden.2017.04.20.anne.hathaway.720p.hdtv.x264-crooks.mkv
|
||||||
// /server/anything_1996.11.14.mp4
|
// /server/anything_1996.11.14.mp4
|
||||||
|
@ -299,11 +305,6 @@ namespace Emby.Naming.Common
|
||||||
|
|
||||||
// *** End Kodi Standard Naming
|
// *** End Kodi Standard Naming
|
||||||
|
|
||||||
// [bar] Foo - 1 [baz]
|
|
||||||
new EpisodeExpression(@".*?(\[.*?\])+.*?(?<seriesname>[\w\s]+?)[-\s_]+(?<epnumber>[0-9]+).*$")
|
|
||||||
{
|
|
||||||
IsNamed = true
|
|
||||||
},
|
|
||||||
new EpisodeExpression(@".*(\\|\/)[sS]?(?<seasonnumber>[0-9]+)[xX](?<epnumber>[0-9]+)[^\\\/]*$")
|
new EpisodeExpression(@".*(\\|\/)[sS]?(?<seasonnumber>[0-9]+)[xX](?<epnumber>[0-9]+)[^\\\/]*$")
|
||||||
{
|
{
|
||||||
IsNamed = true
|
IsNamed = true
|
||||||
|
|
|
@ -66,12 +66,16 @@ namespace Jellyfin.Naming.Tests.TV
|
||||||
[InlineData("Season 2/2. Infestation.avi", 2)]
|
[InlineData("Season 2/2. Infestation.avi", 2)]
|
||||||
[InlineData("The Wonder Years/The.Wonder.Years.S04.PDTV.x264-JCH/The Wonder Years s04e07 Christmas Party NTSC PDTV.avi", 7)]
|
[InlineData("The Wonder Years/The.Wonder.Years.S04.PDTV.x264-JCH/The Wonder Years s04e07 Christmas Party NTSC PDTV.avi", 7)]
|
||||||
[InlineData("Running Man/Running Man S2017E368.mkv", 368)]
|
[InlineData("Running Man/Running Man S2017E368.mkv", 368)]
|
||||||
|
[InlineData("Season 2/[HorribleSubs] Hunter X Hunter - 136 [720p].mkv", 136)] // triple digit episode number
|
||||||
|
[InlineData("Log Horizon 2/[HorribleSubs] Log Horizon 2 - 03 [720p].mkv", 3)] // digit in series name
|
||||||
|
[InlineData("Season 1/seriesname 05.mkv", 5)] // no hyphen between series name and episode number
|
||||||
|
[InlineData("[BBT-RMX] Ranma ½ - 154 [50AC421A].mkv", 154)] // hyphens in the pre-name info, triple digit episode number
|
||||||
|
// TODO: [InlineData("Case Closed (1996-2007)/Case Closed - 317.mkv", 317)] // triple digit episode number
|
||||||
// TODO: [InlineData("Season 2/16 12 Some Title.avi", 16)]
|
// TODO: [InlineData("Season 2/16 12 Some Title.avi", 16)]
|
||||||
// TODO: [InlineData("/The.Legend.of.Condor.Heroes.2017.V2.web-dl.1080p.h264.aac-hdctv/The.Legend.of.Condor.Heroes.2017.E07.V2.web-dl.1080p.h264.aac-hdctv.mkv", 7)]
|
// TODO: [InlineData("/The.Legend.of.Condor.Heroes.2017.V2.web-dl.1080p.h264.aac-hdctv/The.Legend.of.Condor.Heroes.2017.E07.V2.web-dl.1080p.h264.aac-hdctv.mkv", 7)]
|
||||||
// TODO: [InlineData("Season 4/Uchuu.Senkan.Yamato.2199.E03.avi", 3)]
|
// TODO: [InlineData("Season 4/Uchuu.Senkan.Yamato.2199.E03.avi", 3)]
|
||||||
// TODO: [InlineData("Season 2/7 12 Angry Men.avi", 7)]
|
// TODO: [InlineData("Season 2/7 12 Angry Men.avi", 7)]
|
||||||
// TODO: [InlineData("Season 02/02x03x04x15 - Ep Name.mp4", 2)]
|
// TODO: [InlineData("Season 02/02x03x04x15 - Ep Name.mp4", 2)]
|
||||||
// TODO: [InlineData("Season 2/[HorribleSubs] Hunter X Hunter - 136 [720p].mkv", 136)]
|
|
||||||
public void GetEpisodeNumberFromFileTest(string path, int? expected)
|
public void GetEpisodeNumberFromFileTest(string path, int? expected)
|
||||||
{
|
{
|
||||||
var result = new EpisodePathParser(_namingOptions)
|
var result = new EpisodePathParser(_namingOptions)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user