aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcvium <clausvium@gmail.com>2021-03-10 19:29:52 +0100
committercvium <clausvium@gmail.com>2021-03-10 19:29:52 +0100
commitb0af11c34e1c4ac476433944d68a7944598cc5f9 (patch)
tree1e1d4c1288d99f5d89b5cc5759e36f80bcc8157e
parent3824c09e774f35df18f37b56e2fc6101dc2022fe (diff)
make the eligibility check more strict wrt. brackets
-rw-r--r--Emby.Naming/Video/VideoListResolver.cs7
-rw-r--r--tests/Jellyfin.Naming.Tests/Video/MultiVersionTests.cs18
2 files changed, 21 insertions, 4 deletions
diff --git a/Emby.Naming/Video/VideoListResolver.cs b/Emby.Naming/Video/VideoListResolver.cs
index 0b44763a2..d71d60954 100644
--- a/Emby.Naming/Video/VideoListResolver.cs
+++ b/Emby.Naming/Video/VideoListResolver.cs
@@ -229,15 +229,14 @@ namespace Emby.Naming.Video
if (CleanStringParser.TryClean(testFilename, _options.CleanStringRegexes, out var cleanName))
{
- testFilename = cleanName.ToString();
+ testFilename = cleanName.Trim().ToString();
}
- // The CleanStringParser should have removed common keywords etc., so if it starts with -, _ or [ it's eligible.
+ // The CleanStringParser should have removed common keywords etc.
return string.IsNullOrEmpty(testFilename)
|| testFilename[0] == '-'
|| testFilename[0] == '_'
- || testFilename[0] == '['
- || string.IsNullOrWhiteSpace(Regex.Replace(testFilename, @"\[([^]]*)\]", string.Empty));
+ || Regex.IsMatch(testFilename, @"^\[([^]]*)\]");
}
return false;
diff --git a/tests/Jellyfin.Naming.Tests/Video/MultiVersionTests.cs b/tests/Jellyfin.Naming.Tests/Video/MultiVersionTests.cs
index a46caeca0..4121a2749 100644
--- a/tests/Jellyfin.Naming.Tests/Video/MultiVersionTests.cs
+++ b/tests/Jellyfin.Naming.Tests/Video/MultiVersionTests.cs
@@ -389,6 +389,24 @@ namespace Jellyfin.Naming.Tests.Video
}
[Fact]
+ public void Resolve_GivenUnclosedBrackets_DoesNotGroup()
+ {
+ var files = new[]
+ {
+ @"/movies/John Wick - Chapter 3 (2019)/John Wick - Kapitel 3 (2019) [Version 1].mkv",
+ @"/movies/John Wick - Chapter 3 (2019)/John Wick - Kapitel 3 (2019) [Version 2.mkv"
+ };
+
+ var result = _videoListResolver.Resolve(files.Select(i => new FileSystemMetadata
+ {
+ IsDirectory = false,
+ FullName = i
+ }).ToList()).ToList();
+
+ Assert.Equal(2, result.Count);
+ }
+
+ [Fact]
public void TestEmptyList()
{
var result = _videoListResolver.Resolve(new List<FileSystemMetadata>()).ToList();