From 0d58c773f9ffa33794bd272d1b0783603e2e46d6 Mon Sep 17 00:00:00 2001 From: Shadowghost Date: Mon, 4 May 2026 21:42:31 +0200 Subject: [PATCH] Fix review comments --- Emby.Server.Implementations/Dto/DtoService.cs | 8 ++++---- .../Item/BaseItemRepository.Querying.cs | 4 +--- .../Item/BaseItemRepository.cs | 2 ++ 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/Emby.Server.Implementations/Dto/DtoService.cs b/Emby.Server.Implementations/Dto/DtoService.cs index 9f36577410..94e2468719 100644 --- a/Emby.Server.Implementations/Dto/DtoService.cs +++ b/Emby.Server.Implementations/Dto/DtoService.cs @@ -205,7 +205,7 @@ namespace Emby.Server.Implementations.Dto // Batch-fetch MusicArtist lookups across all items to avoid N+1 queries. IReadOnlyDictionary? artistsBatch = null; - HashSet? artistNames = null; + var artistNames = new HashSet(StringComparer.Ordinal); foreach (var item in accessibleItems) { if (item is IHasArtist hasArtist) @@ -214,7 +214,7 @@ namespace Emby.Server.Implementations.Dto { if (!string.IsNullOrWhiteSpace(name)) { - (artistNames ??= new HashSet(StringComparer.Ordinal)).Add(name); + artistNames.Add(name); } } } @@ -225,13 +225,13 @@ namespace Emby.Server.Implementations.Dto { if (!string.IsNullOrWhiteSpace(name)) { - (artistNames ??= new HashSet(StringComparer.Ordinal)).Add(name); + artistNames.Add(name); } } } } - if (artistNames is { Count: > 0 }) + if (artistNames.Count > 0) { artistsBatch = _libraryManager.GetArtists(artistNames.ToArray()); } diff --git a/Jellyfin.Server.Implementations/Item/BaseItemRepository.Querying.cs b/Jellyfin.Server.Implementations/Item/BaseItemRepository.Querying.cs index b7b40e76d8..85f49eeadd 100644 --- a/Jellyfin.Server.Implementations/Item/BaseItemRepository.Querying.cs +++ b/Jellyfin.Server.Implementations/Item/BaseItemRepository.Querying.cs @@ -145,13 +145,11 @@ public sealed partial class BaseItemRepository } // Albums whose Id is the parent of any track matching the user's filter. - var musicAlbumType = _itemTypeLookup.BaseItemKindNames[BaseItemKind.MusicAlbum]!; - var albumIdsWithMatchingTrack = context.AncestorIds .Join(baseQuery, ai => ai.ItemId, t => t.Id, (ai, _) => ai.ParentItemId); var topAlbumsQuery = context.BaseItems.AsNoTracking() - .Where(album => album.Type == musicAlbumType) + .Where(album => album.Type == _musicAlbumTypeName) .Where(album => albumIdsWithMatchingTrack.Contains(album.Id)) .OrderByDescending(album => album.DateCreated) .ThenByDescending(album => album.Id); diff --git a/Jellyfin.Server.Implementations/Item/BaseItemRepository.cs b/Jellyfin.Server.Implementations/Item/BaseItemRepository.cs index 94dedaeba8..e2c77437a8 100644 --- a/Jellyfin.Server.Implementations/Item/BaseItemRepository.cs +++ b/Jellyfin.Server.Implementations/Item/BaseItemRepository.cs @@ -39,6 +39,7 @@ public sealed partial class BaseItemRepository private readonly IItemTypeLookup _itemTypeLookup; private readonly IServerConfigurationManager _serverConfigurationManager; private readonly ILogger _logger; + private readonly string _musicAlbumTypeName; private static readonly IReadOnlyList _getAllArtistsValueTypes = [ItemValueType.Artist, ItemValueType.AlbumArtist]; private static readonly IReadOnlyList _getArtistValueTypes = [ItemValueType.Artist]; @@ -66,6 +67,7 @@ public sealed partial class BaseItemRepository _itemTypeLookup = itemTypeLookup; _serverConfigurationManager = serverConfigurationManager; _logger = logger; + _musicAlbumTypeName = itemTypeLookup.BaseItemKindNames[BaseItemKind.MusicAlbum]!; } ///