From 2789532aa88ccc899ff8497537642e1d78b31ef5 Mon Sep 17 00:00:00 2001 From: Shadowghost Date: Sat, 31 Jan 2026 19:19:26 +0100 Subject: Optimize Validator and Filter Performance --- Jellyfin.Api/Controllers/FilterController.cs | 44 ++++++---------------------- 1 file changed, 9 insertions(+), 35 deletions(-) (limited to 'Jellyfin.Api/Controllers/FilterController.cs') diff --git a/Jellyfin.Api/Controllers/FilterController.cs b/Jellyfin.Api/Controllers/FilterController.cs index 3f9aa93a64..5ad127ad8c 100644 --- a/Jellyfin.Api/Controllers/FilterController.cs +++ b/Jellyfin.Api/Controllers/FilterController.cs @@ -68,53 +68,27 @@ public class FilterController : BaseJellyfinApiController item = _libraryManager.GetParentItem(parentId, user?.Id); } - var query = new InternalItemsQuery + if (item is not Folder folder) + { + return new QueryFiltersLegacy(); + } + + var query = new InternalItemsQuery(user) { - User = user, MediaTypes = mediaTypes, IncludeItemTypes = includeItemTypes, Recursive = true, EnableTotalRecordCount = false, + AncestorIds = [folder.Id], DtoOptions = new DtoOptions { - Fields = new[] { ItemFields.Genres, ItemFields.Tags }, + Fields = [], EnableImages = false, EnableUserData = false } }; - if (item is not Folder folder) - { - return new QueryFiltersLegacy(); - } - - var itemList = folder.GetItemList(query); - return new QueryFiltersLegacy - { - Years = itemList.Select(i => i.ProductionYear ?? -1) - .Where(i => i > 0) - .Distinct() - .Order() - .ToArray(), - - Genres = itemList.SelectMany(i => i.Genres) - .DistinctNames() - .Order() - .ToArray(), - - Tags = itemList - .SelectMany(i => i.Tags) - .Distinct(StringComparer.OrdinalIgnoreCase) - .Order() - .ToArray(), - - OfficialRatings = itemList - .Select(i => i.OfficialRating) - .Where(i => !string.IsNullOrWhiteSpace(i)) - .Distinct(StringComparer.OrdinalIgnoreCase) - .Order() - .ToArray() - }; + return _libraryManager.GetQueryFiltersLegacy(query); } /// -- cgit v1.2.3