From 5fb4d6a169a43d0cd5b63ff728b37c9196599b95 Mon Sep 17 00:00:00 2001 From: JPVenson Date: Wed, 13 Nov 2024 10:43:11 +0000 Subject: [PATCH] Merge branch 'feature/EFUserData' of https://github.com/JPVenson/jellyfin into feature/EFUserData --- .devcontainer/devcontainer.json | 5 +--- .gitignore | 2 -- .vscode/launch.json | 2 +- .../Item/BaseItemRepository.cs | 26 ++++++++++++++++--- 4 files changed, 24 insertions(+), 11 deletions(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index df097a3d18..063901c800 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -24,8 +24,5 @@ "hostRequirements": { "memory": "8gb", "cpus": 4 - }, - "mounts": [ - "source=/opt/docker/data/jellyfin/config10.9.11/metadata/,target=/workspaces/jellyfin/TestData/metadata,type=bind,consistency=cached" - ] + } } diff --git a/.gitignore b/.gitignore index c636f797b8..d5a0367bff 100644 --- a/.gitignore +++ b/.gitignore @@ -20,8 +20,6 @@ local.properties .settings/ .loadpath -TestData - # External tool builders .externalToolBuilders/ diff --git a/.vscode/launch.json b/.vscode/launch.json index 72ee2f4181..7e50d4f0a4 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -35,7 +35,7 @@ "request": "launch", "preLaunchTask": "build", "program": "${workspaceFolder}/Jellyfin.Server/bin/Debug/net8.0/jellyfin.dll", - "args": ["--nowebclient", "--ffmpeg", "/usr/lib/jellyfin-ffmpeg/ffmpeg", "--datadir", "/workspaces/jellyfin/TestData"], + "args": ["--nowebclient", "--ffmpeg", "/usr/lib/jellyfin-ffmpeg/ffmpeg"], "cwd": "${workspaceFolder}/Jellyfin.Server", "console": "internalConsole", "stopAtEntry": false, diff --git a/Jellyfin.Server.Implementations/Item/BaseItemRepository.cs b/Jellyfin.Server.Implementations/Item/BaseItemRepository.cs index b161428399..e3070d0a26 100644 --- a/Jellyfin.Server.Implementations/Item/BaseItemRepository.cs +++ b/Jellyfin.Server.Implementations/Item/BaseItemRepository.cs @@ -32,7 +32,6 @@ using Microsoft.Extensions.Logging; using BaseItemDto = MediaBrowser.Controller.Entities.BaseItem; using BaseItemEntity = Jellyfin.Data.Entities.BaseItemEntity; #pragma warning disable RS0030 // Do not use banned APIs -#pragma warning disable CA1307 // Specify StringComparison for clarity namespace Jellyfin.Server.Implementations.Item; @@ -299,6 +298,26 @@ public sealed class BaseItemRepository( dbQuery = dbQuery.Include(e => e.Images); } + 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; } @@ -315,6 +334,7 @@ public sealed class BaseItemRepository( return dbQuery.Count(); } +#pragma warning disable CA1307 // Specify StringComparison for clarity private IQueryable TranslateQuery( IQueryable baseQuery, JellyfinDbContext context, @@ -1343,9 +1363,7 @@ public sealed class BaseItemRepository( .Include(e => e.TrailerTypes) .Include(e => e.Provider) .Include(e => e.Images) - .Include(e => e.LockedFields) - .AsNoTracking().AsSingleQuery().FirstOrDefault(e => e.Id == id); - + .Include(e => e.LockedFields).AsNoTracking().AsSingleQuery().FirstOrDefault(e => e.Id == id); if (item is null) { return null;