diff options
| author | Shadowghost <Ghost_of_Stone@web.de> | 2026-01-30 21:58:24 +0100 |
|---|---|---|
| committer | Shadowghost <Ghost_of_Stone@web.de> | 2026-01-31 19:21:36 +0100 |
| commit | 694db80d4c8e83ff381af56d2a3dde29e0855c3d (patch) | |
| tree | 4e23899944d4be1389f6f92d3bb98b400bb92a74 /Emby.Server.Implementations/Library/LibraryManager.cs | |
| parent | a650148dfd9920986e11d414a71df5b1a7f604e8 (diff) | |
Reroute on version removal
Diffstat (limited to 'Emby.Server.Implementations/Library/LibraryManager.cs')
| -rw-r--r-- | Emby.Server.Implementations/Library/LibraryManager.cs | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/Emby.Server.Implementations/Library/LibraryManager.cs b/Emby.Server.Implementations/Library/LibraryManager.cs index 2acfd68c36..830c918541 100644 --- a/Emby.Server.Implementations/Library/LibraryManager.cs +++ b/Emby.Server.Implementations/Library/LibraryManager.cs @@ -428,6 +428,9 @@ namespace Emby.Server.Implementations.Library newPrimary.SetPrimaryVersionId(null); newPrimary.UpdateToRepositoryAsync(ItemUpdateType.MetadataEdit, CancellationToken.None).GetAwaiter().GetResult(); + // Re-route playlist/collection references from deleted primary to new primary + _itemRepository.RerouteLinkedChildren(video.Id, newPrimary.Id); + // Update remaining alternates to point to new primary foreach (var alternate in alternateVersions.Skip(1)) { @@ -436,6 +439,12 @@ namespace Emby.Server.Implementations.Library } } } + else if (item is Video alternateVideo && !string.IsNullOrEmpty(alternateVideo.PrimaryVersionId) + && Guid.TryParse(alternateVideo.PrimaryVersionId, out var primaryId)) + { + // If deleting an alternate version, re-route references to its primary + _itemRepository.RerouteLinkedChildren(alternateVideo.Id, primaryId); + } var children = item.IsFolder ? ((Folder)item).GetRecursiveChildren(false) @@ -3480,5 +3489,11 @@ namespace Emby.Server.Implementations.Library _fileSystem.CreateShortcut(lnk, _appHost.ReverseVirtualPath(path)); RemoveContentTypeOverrides(path); } + + /// <inheritdoc /> + public int RerouteLinkedChildReferences(Guid fromChildId, Guid toChildId) + { + return _itemRepository.RerouteLinkedChildren(fromChildId, toChildId); + } } } |
