diff options
| author | JPVenson <github@jpb.email> | 2024-11-15 18:30:26 +0000 |
|---|---|---|
| committer | JPVenson <github@jpb.email> | 2024-11-15 18:30:26 +0000 |
| commit | c925f8688e64186a8500febbf8021b1733f36d40 (patch) | |
| tree | 2805fe628c603fd546696f867dda7f49fabf0243 /Jellyfin.Server.Implementations/Item/BaseItemRepository.cs | |
| parent | 77bae62acc7529ad7005ff0d72e27059779f1729 (diff) | |
Filter duplicate BaseItems on save
Diffstat (limited to 'Jellyfin.Server.Implementations/Item/BaseItemRepository.cs')
| -rw-r--r-- | Jellyfin.Server.Implementations/Item/BaseItemRepository.cs | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/Jellyfin.Server.Implementations/Item/BaseItemRepository.cs b/Jellyfin.Server.Implementations/Item/BaseItemRepository.cs index e9de36328..ba86f5fbd 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<Guid>? AncestorIds, BaseItemDto TopParent, IEnumerable<string> UserDataKey, List<string> InheritedTags)[itemsLen]; - for (int i = 0; i < itemsLen; i++) + var tuples = new List<(BaseItemDto Item, List<Guid>? AncestorIds, BaseItemDto TopParent, IEnumerable<string> UserDataKey, List<string> 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>(); |
