diff options
| author | Claus Vium <cvium@users.noreply.github.com> | 2022-01-15 20:24:14 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-01-15 20:24:14 +0100 |
| commit | 1d7ec1071fd0743219ff82f49157d8032641e828 (patch) | |
| tree | c61346d111584cbf5f9fd4ff36fcd01792deaf23 | |
| parent | d88e39b71db1eff5d650cfc815019c25ad299172 (diff) | |
| parent | 19b9646d72bb8793392d4afa3616e1ed341a5f13 (diff) | |
Merge pull request #7186 from 1337joe/extra-rule-reorder
Order extra rules so directory takes precedence over naming
| -rw-r--r-- | Emby.Naming/Common/NamingOptions.cs | 118 | ||||
| -rw-r--r-- | tests/Jellyfin.Server.Implementations.Tests/Library/LibraryManager/FindExtrasTests.cs | 46 |
2 files changed, 95 insertions, 69 deletions
diff --git a/Emby.Naming/Common/NamingOptions.cs b/Emby.Naming/Common/NamingOptions.cs index c0be0b7c6..e8c855b5a 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", @@ -537,51 +585,9 @@ namespace Emby.Naming.Common 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", + ExtraRuleType.Suffix, + "-extra", 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..f5c8cc970 100644 --- a/tests/Jellyfin.Server.Implementations.Tests/Library/LibraryManager/FindExtrasTests.cs +++ b/tests/Jellyfin.Server.Implementations.Tests/Library/LibraryManager/FindExtrasTests.cs @@ -60,7 +60,8 @@ public class FindExtrasTests "/movies/Up/Up.mkv", "/movies/Up/Up - trailer.mkv", "/movies/Up/Up - sample.mkv", - "/movies/Up/Up something else.mkv" + "/movies/Up/Up something else.mkv", + "/movies/Up/Up-extra.mkv" }; var files = paths.Select(p => new FileSystemMetadata @@ -71,10 +72,11 @@ public class FindExtrasTests var extras = _libraryManager.FindExtras(owner, files, new DirectoryService(_fileSystemMock.Object)).OrderBy(e => e.ExtraType).ToList(); - Assert.Equal(2, extras.Count); - Assert.Equal(ExtraType.Trailer, extras[0].ExtraType); - Assert.Equal(typeof(Trailer), extras[0].GetType()); - Assert.Equal(ExtraType.Sample, extras[1].ExtraType); + Assert.Equal(3, extras.Count); + Assert.Equal(ExtraType.Unknown, extras[0].ExtraType); + Assert.Equal(ExtraType.Trailer, extras[1].ExtraType); + Assert.Equal(typeof(Trailer), extras[1].GetType()); + Assert.Equal(ExtraType.Sample, extras[2].ExtraType); } [Fact] @@ -92,7 +94,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 +143,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 +168,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] |
