From 5541653f73c5ac7d6ff0de79b08ba332d346ee62 Mon Sep 17 00:00:00 2001 From: Shadowghost Date: Sat, 21 Feb 2026 22:51:46 +0100 Subject: [PATCH] Return Name instead of CleanName for legacy filters --- .../Item/BaseItemRepository.cs | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/Jellyfin.Server.Implementations/Item/BaseItemRepository.cs b/Jellyfin.Server.Implementations/Item/BaseItemRepository.cs index eda45ce01a..8f7300b0b9 100644 --- a/Jellyfin.Server.Implementations/Item/BaseItemRepository.cs +++ b/Jellyfin.Server.Implementations/Item/BaseItemRepository.cs @@ -1244,21 +1244,23 @@ public sealed class BaseItemRepository .OrderBy(r => r) .ToArray(); - // Tags via ItemValuesMap JOIN - uses subquery for matching items + // Tags via ItemValuesMap JOIN - uses subquery for matching items and dedupe based on CleanValue, but return the original Value for display var tags = context.ItemValuesMap .Where(ivm => ivm.ItemValue.Type == ItemValueType.Tags) .Where(ivm => matchingItemIds.Contains(ivm.ItemId)) - .Select(ivm => ivm.ItemValue.CleanValue) - .Distinct() + .Select(ivm => ivm.ItemValue) + .GroupBy(iv => iv.CleanValue) + .Select(g => g.OrderBy(iv => iv.Value).First().Value) .OrderBy(t => t) .ToArray(); - // Genres via ItemValuesMap JOIN - uses subquery for matching items + // Genres via ItemValuesMap JOIN - uses subquery for matching items and dedupe based on CleanValue, but return the original Value for display var genres = context.ItemValuesMap .Where(ivm => ivm.ItemValue.Type == ItemValueType.Genre) .Where(ivm => matchingItemIds.Contains(ivm.ItemId)) - .Select(ivm => ivm.ItemValue.CleanValue) - .Distinct() + .Select(ivm => ivm.ItemValue) + .GroupBy(iv => iv.CleanValue) + .Select(g => g.OrderBy(iv => iv.Value).First().Value) .OrderBy(g => g) .ToArray();