diff --git a/Emby.Server.Implementations/Library/LibraryManager.cs b/Emby.Server.Implementations/Library/LibraryManager.cs index c8026960df..91a43bda96 100644 --- a/Emby.Server.Implementations/Library/LibraryManager.cs +++ b/Emby.Server.Implementations/Library/LibraryManager.cs @@ -698,7 +698,7 @@ namespace Emby.Server.Implementations.Library foreach (var resolver in multiItemResolvers) { - var result = resolver.ResolveMultiple(parent, fileList, collectionType, directoryService); + var result = resolver.ResolveMultiple(parent, fileList, collectionType, directoryService, libraryOptions); if (result?.Items.Count > 0) { diff --git a/Emby.Server.Implementations/Library/Resolvers/Audio/AudioResolver.cs b/Emby.Server.Implementations/Library/Resolvers/Audio/AudioResolver.cs index dbf05c1dbb..3bed0ca0f8 100644 --- a/Emby.Server.Implementations/Library/Resolvers/Audio/AudioResolver.cs +++ b/Emby.Server.Implementations/Library/Resolvers/Audio/AudioResolver.cs @@ -15,6 +15,7 @@ using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Library; using MediaBrowser.Controller.Providers; using MediaBrowser.Controller.Resolvers; +using MediaBrowser.Model.Configuration; using MediaBrowser.Model.IO; namespace Emby.Server.Implementations.Library.Resolvers.Audio @@ -41,7 +42,8 @@ namespace Emby.Server.Implementations.Library.Resolvers.Audio Folder parent, List files, CollectionType? collectionType, - IDirectoryService directoryService) + IDirectoryService directoryService, + LibraryOptions libraryOptions) { var result = ResolveMultipleInternal(parent, files, collectionType); diff --git a/Emby.Server.Implementations/Library/Resolvers/Movies/MovieResolver.cs b/Emby.Server.Implementations/Library/Resolvers/Movies/MovieResolver.cs index f1aeb1340a..34146400f9 100644 --- a/Emby.Server.Implementations/Library/Resolvers/Movies/MovieResolver.cs +++ b/Emby.Server.Implementations/Library/Resolvers/Movies/MovieResolver.cs @@ -16,6 +16,7 @@ using MediaBrowser.Controller.Entities.TV; using MediaBrowser.Controller.Library; using MediaBrowser.Controller.Providers; using MediaBrowser.Controller.Resolvers; +using MediaBrowser.Model.Configuration; using MediaBrowser.Model.Entities; using MediaBrowser.Model.IO; using Microsoft.Extensions.Logging; @@ -65,9 +66,10 @@ namespace Emby.Server.Implementations.Library.Resolvers.Movies Folder parent, List files, CollectionType? collectionType, - IDirectoryService directoryService) + IDirectoryService directoryService, + LibraryOptions libraryOptions) { - var result = ResolveMultipleInternal(parent, files, collectionType); + var result = ResolveMultipleInternal(parent, files, collectionType, libraryOptions.EnableVersionGrouping); if (result is not null) { @@ -188,7 +190,8 @@ namespace Emby.Server.Implementations.Library.Resolvers.Movies private MultiItemResolverResult ResolveMultipleInternal( Folder parent, List files, - CollectionType? collectionType) + CollectionType? collectionType, + bool supportMultiEditions) { if (IsInvalid(parent, collectionType)) { @@ -197,7 +200,7 @@ namespace Emby.Server.Implementations.Library.Resolvers.Movies if (collectionType is CollectionType.musicvideos) { - return ResolveVideos(parent, files, true, collectionType, false); + return ResolveVideos(parent, files, supportMultiEditions, collectionType, false); } if (collectionType == CollectionType.homevideos || collectionType == CollectionType.photos) @@ -223,12 +226,12 @@ namespace Emby.Server.Implementations.Library.Resolvers.Movies if (collectionType == CollectionType.movies) { - return ResolveVideos(parent, files, true, collectionType, true); + return ResolveVideos(parent, files, supportMultiEditions, collectionType, true); } if (collectionType == CollectionType.tvshows) { - return ResolveVideos(parent, files, false, collectionType, true); + return ResolveVideos(parent, files, supportMultiEditions, collectionType, true); } return null; diff --git a/MediaBrowser.Controller/Resolvers/IItemResolver.cs b/MediaBrowser.Controller/Resolvers/IItemResolver.cs index 0699734c4b..12cd208ffd 100644 --- a/MediaBrowser.Controller/Resolvers/IItemResolver.cs +++ b/MediaBrowser.Controller/Resolvers/IItemResolver.cs @@ -5,6 +5,7 @@ using Jellyfin.Data.Enums; using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Library; using MediaBrowser.Controller.Providers; +using MediaBrowser.Model.Configuration; using MediaBrowser.Model.IO; namespace MediaBrowser.Controller.Resolvers @@ -34,7 +35,8 @@ namespace MediaBrowser.Controller.Resolvers Folder parent, List files, CollectionType? collectionType, - IDirectoryService directoryService); + IDirectoryService directoryService, + LibraryOptions libraryOptions); } public class MultiItemResolverResult diff --git a/MediaBrowser.Model/Configuration/LibraryOptions.cs b/MediaBrowser.Model/Configuration/LibraryOptions.cs index 590b74304d..6728af6016 100644 --- a/MediaBrowser.Model/Configuration/LibraryOptions.cs +++ b/MediaBrowser.Model/Configuration/LibraryOptions.cs @@ -56,6 +56,8 @@ namespace MediaBrowser.Model.Configuration public bool ExtractTrickplayImagesDuringLibraryScan { get; set; } + public bool EnableVersionGrouping { get; set; } + public MediaPathInfo[] PathInfos { get; set; } public bool SaveLocalMetadata { get; set; }