mirror of
https://github.com/jellyfin/jellyfin.git
synced 2026-08-04 15:28:23 +00:00
Merge pull request #17482 from Shadowghost/fix-stale-versions
Fix video version links being read from stale serialised item data instead of the LinkedChildren table
This commit is contained in:
commit
044f651299
2 changed files with 21 additions and 3 deletions
|
|
@ -134,6 +134,21 @@ public static class BaseItemMapper
|
|||
if (dto is Video video)
|
||||
{
|
||||
video.PrimaryVersionId = entity.PrimaryVersionId;
|
||||
|
||||
// The LinkedChildren table is the source of truth for version links
|
||||
if (entity.LinkedChildEntities is not null)
|
||||
{
|
||||
video.LinkedAlternateVersions = entity.LinkedChildEntities
|
||||
// LocalAlternateVersion links belong to Video.LocalAlternateVersions, not here
|
||||
.Where(e => e.ChildType == Database.Implementations.Entities.LinkedChildType.LinkedAlternateVersion)
|
||||
.OrderBy(e => e.SortOrder)
|
||||
.Select(e => new LinkedChild
|
||||
{
|
||||
ItemId = e.ChildId,
|
||||
Type = (MediaBrowser.Controller.Entities.LinkedChildType)e.ChildType
|
||||
})
|
||||
.ToArray();
|
||||
}
|
||||
}
|
||||
|
||||
if (dto is IHasSeries hasSeriesName)
|
||||
|
|
|
|||
|
|
@ -244,8 +244,8 @@ public sealed partial class BaseItemRepository
|
|||
dbQuery = dbQuery.Include(e => e.Images);
|
||||
}
|
||||
|
||||
// Include LinkedChildEntities for container types and videos that use them
|
||||
// (BoxSet, Playlist, CollectionFolder for manual linking; Video, Movie for alternate versions).
|
||||
// Include LinkedChildEntities for container types and videos that use them (BoxSet, Playlist,
|
||||
// CollectionFolder for manual linking; every video type for alternate versions).
|
||||
// When IncludeItemTypes is empty (any type may be returned), always include them to ensure
|
||||
// LinkedChildren are loaded before items are saved back, preventing accidental deletion.
|
||||
var linkedChildTypes = new[]
|
||||
|
|
@ -254,7 +254,10 @@ public sealed partial class BaseItemRepository
|
|||
BaseItemKind.Playlist,
|
||||
BaseItemKind.CollectionFolder,
|
||||
BaseItemKind.Video,
|
||||
BaseItemKind.Movie
|
||||
BaseItemKind.Movie,
|
||||
BaseItemKind.Episode,
|
||||
BaseItemKind.MusicVideo,
|
||||
BaseItemKind.Trailer
|
||||
};
|
||||
if (filter.IncludeItemTypes.Length == 0 || filter.IncludeItemTypes.Any(linkedChildTypes.Contains))
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue