From f5d966fcc3eb3c5f8aa39a22caa8cf615029e1c5 Mon Sep 17 00:00:00 2001 From: Shadowghost Date: Sat, 7 Feb 2026 09:37:13 +0100 Subject: Remove Collection and Playlist cleanup task --- MediaBrowser.Providers/BoxSets/BoxSetMetadataService.cs | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'MediaBrowser.Providers/BoxSets/BoxSetMetadataService.cs') diff --git a/MediaBrowser.Providers/BoxSets/BoxSetMetadataService.cs b/MediaBrowser.Providers/BoxSets/BoxSetMetadataService.cs index 3a872f687c..5f80151dd3 100644 --- a/MediaBrowser.Providers/BoxSets/BoxSetMetadataService.cs +++ b/MediaBrowser.Providers/BoxSets/BoxSetMetadataService.cs @@ -70,12 +70,18 @@ public class BoxSetMetadataService : MetadataService if (mergeMetadataSettings) { - // TODO: Change to only replace when currently empty or requested. This is currently not done because the metadata service is not handling attaching collection items based on the provider responses + // Only merge LinkedChildren from metadata for external collections (not managed by Jellyfin). + // For internal collections, the database LinkedChildren table is the source of truth. + var targetPath = targetItem.Path; + if (!string.IsNullOrEmpty(targetPath) + && !FileSystem.ContainsSubPath(ServerConfigurationManager.ApplicationPaths.DataPath, targetPath)) + { #pragma warning disable CS0618 // Type or member is obsolete - fallback for legacy path-based dedup - targetItem.LinkedChildren = sourceItem.LinkedChildren.Concat(targetItem.LinkedChildren) - .DistinctBy(i => i.ItemId.HasValue && !i.ItemId.Value.Equals(Guid.Empty) ? i.ItemId.Value.ToString() : i.Path ?? string.Empty) - .ToArray(); + targetItem.LinkedChildren = sourceItem.LinkedChildren.Concat(targetItem.LinkedChildren) + .DistinctBy(i => i.ItemId.HasValue && !i.ItemId.Value.Equals(Guid.Empty) ? i.ItemId.Value.ToString() : i.Path ?? string.Empty) + .ToArray(); #pragma warning restore CS0618 + } } } -- cgit v1.2.3