From cdaf46995e19fe1571466c65465c4ffafa5e58a7 Mon Sep 17 00:00:00 2001 From: Jendrik Weise Date: Wed, 21 Feb 2024 14:16:03 +0100 Subject: [PATCH] make merging optional (cherry picked from commit e585c6c863758eb74a2c52ed167c3f629bc05e38) --- .../Library/LibraryManager.cs | 2 +- .../Library/Resolvers/Audio/AudioResolver.cs | 4 +++- .../Library/Resolvers/Movies/MovieResolver.cs | 15 +++++++++------ .../Resolvers/IItemResolver.cs | 4 +++- .../Configuration/LibraryOptions.cs | 2 ++ 5 files changed, 18 insertions(+), 9 deletions(-) diff --git a/Emby.Server.Implementations/Library/LibraryManager.cs b/Emby.Server.Implementations/Library/LibraryManager.cs index 2d1af82b31..09979dca89 100644 --- a/Emby.Server.Implementations/Library/LibraryManager.cs +++ b/Emby.Server.Implementations/Library/LibraryManager.cs @@ -673,7 +673,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 4debe722b9..18c8855247 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; }