From c925f8688e64186a8500febbf8021b1733f36d40 Mon Sep 17 00:00:00 2001 From: JPVenson Date: Fri, 15 Nov 2024 18:30:26 +0000 Subject: [PATCH] Filter duplicate BaseItems on save --- Jellyfin.Server.Implementations/Item/BaseItemRepository.cs | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/Jellyfin.Server.Implementations/Item/BaseItemRepository.cs b/Jellyfin.Server.Implementations/Item/BaseItemRepository.cs index e9de363281..ba86f5fbdc 100644 --- a/Jellyfin.Server.Implementations/Item/BaseItemRepository.cs +++ b/Jellyfin.Server.Implementations/Item/BaseItemRepository.cs @@ -358,10 +358,9 @@ public sealed class BaseItemRepository( cancellationToken.ThrowIfCancellationRequested(); var itemsLen = items.Count; - var tuples = new (BaseItemDto Item, List? AncestorIds, BaseItemDto TopParent, IEnumerable UserDataKey, List InheritedTags)[itemsLen]; - for (int i = 0; i < itemsLen; i++) + var tuples = new List<(BaseItemDto Item, List? AncestorIds, BaseItemDto TopParent, IEnumerable UserDataKey, List InheritedTags)>(); + foreach (var item in items.GroupBy(e => e.Id).Select(e => e.Last())) { - var item = items[i]; var ancestorIds = item.SupportsAncestors ? item.GetAncestorIds().Distinct().ToList() : null; @@ -371,7 +370,7 @@ public sealed class BaseItemRepository( var userdataKey = item.GetUserDataKeys(); var inheritedTags = item.GetInheritedTags(); - tuples[i] = (item, ancestorIds, topParent, userdataKey, inheritedTags); + tuples.Add((item, ancestorIds, topParent, userdataKey, inheritedTags)); } var localFuckingItemValueCache = new Dictionary<(int MagicNumber, string Value), Guid>();