From 07455dfb4dd6f7b5743b1d1d00d018083d67ffff Mon Sep 17 00:00:00 2001 From: JPVenson Date: Wed, 13 Nov 2024 10:07:45 +0000 Subject: [PATCH] Readded External fields on request --- .../Item/BaseItemRepository.cs | 42 ++++++++++--------- 1 file changed, 23 insertions(+), 19 deletions(-) diff --git a/Jellyfin.Server.Implementations/Item/BaseItemRepository.cs b/Jellyfin.Server.Implementations/Item/BaseItemRepository.cs index 878b4044c1..e3070d0a26 100644 --- a/Jellyfin.Server.Implementations/Item/BaseItemRepository.cs +++ b/Jellyfin.Server.Implementations/Item/BaseItemRepository.cs @@ -200,15 +200,7 @@ public sealed class BaseItemRepository( using var context = dbProvider.CreateDbContext(); - IQueryable dbQuery = context.BaseItems.AsNoTracking().AsSingleQuery() - .Include(e => e.TrailerTypes) - .Include(e => e.Provider) - .Include(e => e.LockedFields); - - if (filter.DtoOptions.EnableImages) - { - dbQuery = dbQuery.Include(e => e.Images); - } + IQueryable dbQuery = PrepareItemQuery(context, filter); dbQuery = TranslateQuery(dbQuery, context, filter); dbQuery = dbQuery.Distinct(); @@ -232,15 +224,7 @@ public sealed class BaseItemRepository( PrepareFilterQuery(filter); using var context = dbProvider.CreateDbContext(); - IQueryable dbQuery = context.BaseItems.AsNoTracking().AsSingleQuery() - .Include(e => e.TrailerTypes) - .Include(e => e.Provider) - .Include(e => e.LockedFields); - - if (filter.DtoOptions.EnableImages) - { - dbQuery = dbQuery.Include(e => e.Images); - } + IQueryable dbQuery = PrepareItemQuery(context, filter); dbQuery = TranslateQuery(dbQuery, context, filter); dbQuery = dbQuery.Distinct(); @@ -314,7 +298,27 @@ public sealed class BaseItemRepository( dbQuery = dbQuery.Include(e => e.Images); } - return ApplyQueryFilter(dbQuery, context, filter); + if (filter.DtoOptions.ContainsField(ItemFields.MediaStreams)) + { + dbQuery = dbQuery.Include(e => e.MediaStreams); + } + + if (filter.DtoOptions.ContainsField(ItemFields.Chapters)) + { + dbQuery = dbQuery.Include(e => e.Chapters); + } + + if (filter.DtoOptions.ContainsField(ItemFields.People)) + { + dbQuery = dbQuery.Include(e => e.Peoples); + } + + if (filter.DtoOptions.ContainsField(ItemFields.SeasonUserData)) + { + dbQuery = dbQuery.Include(e => e.UserData); + } + + return dbQuery; } ///