From 5a6d9180fed81a30cb91ef3fed30176cd4402116 Mon Sep 17 00:00:00 2001 From: JPVenson Date: Thu, 25 Sep 2025 00:20:30 +0300 Subject: Add People Dedup and multiple progress fixes (#14848) --- MediaBrowser.Controller/Library/ILibraryManager.cs | 9 +++++++++ MediaBrowser.Controller/Persistence/IItemRepository.cs | 12 ++++++++++-- 2 files changed, 19 insertions(+), 2 deletions(-) (limited to 'MediaBrowser.Controller') diff --git a/MediaBrowser.Controller/Library/ILibraryManager.cs b/MediaBrowser.Controller/Library/ILibraryManager.cs index b72d1d0b4..fcc5ed672 100644 --- a/MediaBrowser.Controller/Library/ILibraryManager.cs +++ b/MediaBrowser.Controller/Library/ILibraryManager.cs @@ -336,6 +336,13 @@ namespace MediaBrowser.Controller.Library /// Options to use for deletion. void DeleteItem(BaseItem item, DeleteOptions options); + /// + /// Deletes items that are not having any children like Actors. + /// + /// Items to delete. + /// In comparison to this method skips a lot of steps assuming there are no children to recusively delete nor does it define the special handling for channels and alike. + public void DeleteItemsUnsafeFast(IEnumerable items); + /// /// Deletes the item. /// @@ -624,6 +631,8 @@ namespace MediaBrowser.Controller.Library QueryResult<(BaseItem Item, ItemCounts ItemCounts)> GetArtists(InternalItemsQuery query); + IReadOnlyDictionary GetArtists(IReadOnlyList names); + QueryResult<(BaseItem Item, ItemCounts ItemCounts)> GetAlbumArtists(InternalItemsQuery query); QueryResult<(BaseItem Item, ItemCounts ItemCounts)> GetAllArtists(InternalItemsQuery query); diff --git a/MediaBrowser.Controller/Persistence/IItemRepository.cs b/MediaBrowser.Controller/Persistence/IItemRepository.cs index e17dc38f7..0026ab2b5 100644 --- a/MediaBrowser.Controller/Persistence/IItemRepository.cs +++ b/MediaBrowser.Controller/Persistence/IItemRepository.cs @@ -9,6 +9,7 @@ using System.Threading.Tasks; using Jellyfin.Data.Enums; using Jellyfin.Database.Implementations.Entities; using MediaBrowser.Controller.Entities; +using MediaBrowser.Controller.Entities.Audio; using MediaBrowser.Model.Dto; using MediaBrowser.Model.Querying; @@ -22,8 +23,8 @@ public interface IItemRepository /// /// Deletes the item. /// - /// The identifier. - void DeleteItem(Guid id); + /// The identifier to delete. + void DeleteItem(params IReadOnlyList ids); /// /// Saves the items. @@ -122,4 +123,11 @@ public interface IItemRepository /// Whever the check should be done recursive. Warning expensive operation. /// A value indicating whever all children has been played. bool GetIsPlayed(User user, Guid id, bool recursive); + + /// + /// Gets all artist matches from the db. + /// + /// The names of the artists. + /// A map of the artist name and the potential matches. + IReadOnlyDictionary FindArtists(IReadOnlyList artistNames); } -- cgit v1.2.3