diff options
| author | Joe Rogers <1337joe@gmail.com> | 2022-01-15 15:16:11 +0100 |
|---|---|---|
| committer | Joe Rogers <1337joe@gmail.com> | 2022-01-15 15:16:11 +0100 |
| commit | f11fa59b153571d98ab7e61bc150e14f3ae3a870 (patch) | |
| tree | 6074646466619aa6dde27f57a967aaed56b0881b | |
| parent | d88e39b71db1eff5d650cfc815019c25ad299172 (diff) | |
Order rules so directory takes precedence over naming
| -rw-r--r-- | Emby.Naming/Common/NamingOptions.cs | 120 | ||||
| -rw-r--r-- | tests/Jellyfin.Server.Implementations.Tests/Library/LibraryManager/FindExtrasTests.cs | 34 |
2 files changed, 86 insertions, 68 deletions
diff --git a/Emby.Naming/Common/NamingOptions.cs b/Emby.Naming/Common/NamingOptions.cs index c0be0b7c6..6197faf50 100644 --- a/Emby.Naming/Common/NamingOptions.cs +++ b/Emby.Naming/Common/NamingOptions.cs @@ -411,6 +411,66 @@ namespace Emby.Naming.Common MediaType.Video), new ExtraRule( + ExtraType.ThemeVideo, + ExtraRuleType.DirectoryName, + "backdrops", + MediaType.Video), + + new ExtraRule( + ExtraType.ThemeSong, + ExtraRuleType.DirectoryName, + "theme-music", + MediaType.Audio), + + new ExtraRule( + ExtraType.BehindTheScenes, + ExtraRuleType.DirectoryName, + "behind the scenes", + MediaType.Video), + + new ExtraRule( + ExtraType.DeletedScene, + ExtraRuleType.DirectoryName, + "deleted scenes", + MediaType.Video), + + new ExtraRule( + ExtraType.Interview, + ExtraRuleType.DirectoryName, + "interviews", + MediaType.Video), + + new ExtraRule( + ExtraType.Scene, + ExtraRuleType.DirectoryName, + "scenes", + MediaType.Video), + + new ExtraRule( + ExtraType.Sample, + ExtraRuleType.DirectoryName, + "samples", + MediaType.Video), + + new ExtraRule( + ExtraType.Clip, + ExtraRuleType.DirectoryName, + "shorts", + MediaType.Video), + + new ExtraRule( + ExtraType.Clip, + ExtraRuleType.DirectoryName, + "featurettes", + MediaType.Video), + + new ExtraRule( + ExtraType.Unknown, + ExtraRuleType.DirectoryName, + "extras", + MediaType.Video), + + new ExtraRule( ExtraType.Trailer, ExtraRuleType.Filename, "trailer", @@ -471,24 +531,12 @@ namespace Emby.Naming.Common MediaType.Video), new ExtraRule( - ExtraType.ThemeVideo, - ExtraRuleType.DirectoryName, - "backdrops", - MediaType.Video), - - new ExtraRule( ExtraType.ThemeSong, ExtraRuleType.Filename, "theme", MediaType.Audio), new ExtraRule( - ExtraType.ThemeSong, - ExtraRuleType.DirectoryName, - "theme-music", - MediaType.Audio), - - new ExtraRule( ExtraType.Scene, ExtraRuleType.Suffix, "-scene", @@ -534,54 +582,6 @@ namespace Emby.Naming.Common ExtraType.Clip, ExtraRuleType.Suffix, "-short", - MediaType.Video), - - new ExtraRule( - ExtraType.BehindTheScenes, - ExtraRuleType.DirectoryName, - "behind the scenes", - MediaType.Video), - - new ExtraRule( - ExtraType.DeletedScene, - ExtraRuleType.DirectoryName, - "deleted scenes", - MediaType.Video), - - new ExtraRule( - ExtraType.Interview, - ExtraRuleType.DirectoryName, - "interviews", - MediaType.Video), - - new ExtraRule( - ExtraType.Scene, - ExtraRuleType.DirectoryName, - "scenes", - MediaType.Video), - - new ExtraRule( - ExtraType.Sample, - ExtraRuleType.DirectoryName, - "samples", - MediaType.Video), - - new ExtraRule( - ExtraType.Clip, - ExtraRuleType.DirectoryName, - "shorts", - MediaType.Video), - - new ExtraRule( - ExtraType.Clip, - ExtraRuleType.DirectoryName, - "featurettes", - MediaType.Video), - - new ExtraRule( - ExtraType.Unknown, - ExtraRuleType.DirectoryName, - "extras", MediaType.Video) }; diff --git a/tests/Jellyfin.Server.Implementations.Tests/Library/LibraryManager/FindExtrasTests.cs b/tests/Jellyfin.Server.Implementations.Tests/Library/LibraryManager/FindExtrasTests.cs index de4421320..166b618cf 100644 --- a/tests/Jellyfin.Server.Implementations.Tests/Library/LibraryManager/FindExtrasTests.cs +++ b/tests/Jellyfin.Server.Implementations.Tests/Library/LibraryManager/FindExtrasTests.cs @@ -92,7 +92,8 @@ public class FindExtrasTests "/movies/Up/behind the scenes", "/movies/Up/behind the scenes.mkv", "/movies/Up/Up - sample.mkv", - "/movies/Up/Up something else.mkv" + "/movies/Up/Up something else.mkv", + "/movies/Up/extras" }; _fileSystemMock.Setup(f => f.GetFiles( @@ -140,6 +141,21 @@ public class FindExtrasTests } }).Verifiable(); + _fileSystemMock.Setup(f => f.GetFiles( + "/movies/Up/extras", + It.IsAny<string[]>(), + false, + false)) + .Returns(new List<FileSystemMetadata> + { + new() + { + FullName = "/movies/Up/extras/Honest Trailer.mkv", + Name = "Honest Trailer.mkv", + IsDirectory = false + } + }).Verifiable(); + var files = paths.Select(p => new FileSystemMetadata { FullName = p, @@ -150,17 +166,19 @@ public class FindExtrasTests var extras = _libraryManager.FindExtras(owner, files, new DirectoryService(_fileSystemMock.Object)).OrderBy(e => e.ExtraType).ToList(); _fileSystemMock.Verify(); - Assert.Equal(6, extras.Count); - Assert.Equal(ExtraType.Trailer, extras[0].ExtraType); - Assert.Equal(typeof(Trailer), extras[0].GetType()); + Assert.Equal(7, extras.Count); + Assert.Equal(ExtraType.Unknown, extras[0].ExtraType); + Assert.Equal(typeof(Video), extras[0].GetType()); Assert.Equal(ExtraType.Trailer, extras[1].ExtraType); Assert.Equal(typeof(Trailer), extras[1].GetType()); - Assert.Equal(ExtraType.BehindTheScenes, extras[2].ExtraType); - Assert.Equal(ExtraType.Sample, extras[3].ExtraType); - Assert.Equal(ExtraType.ThemeSong, extras[4].ExtraType); - Assert.Equal(typeof(Audio), extras[4].GetType()); + Assert.Equal(ExtraType.Trailer, extras[2].ExtraType); + Assert.Equal(typeof(Trailer), extras[2].GetType()); + Assert.Equal(ExtraType.BehindTheScenes, extras[3].ExtraType); + Assert.Equal(ExtraType.Sample, extras[4].ExtraType); Assert.Equal(ExtraType.ThemeSong, extras[5].ExtraType); Assert.Equal(typeof(Audio), extras[5].GetType()); + Assert.Equal(ExtraType.ThemeSong, extras[6].ExtraType); + Assert.Equal(typeof(Audio), extras[6].GetType()); } [Fact] |
