From 312ff4f3d875b9e5c738ee20273cd9f3bd32a58c Mon Sep 17 00:00:00 2001 From: JPVenson Date: Wed, 30 Oct 2024 10:05:52 +0000 Subject: [PATCH] Fixed disabled providers not beeing returned --- .../MediaSegments/MediaSegmentManager.cs | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/Jellyfin.Server.Implementations/MediaSegments/MediaSegmentManager.cs b/Jellyfin.Server.Implementations/MediaSegments/MediaSegmentManager.cs index d641f521b9..9d38167ac6 100644 --- a/Jellyfin.Server.Implementations/MediaSegments/MediaSegmentManager.cs +++ b/Jellyfin.Server.Implementations/MediaSegments/MediaSegmentManager.cs @@ -141,6 +141,19 @@ public class MediaSegmentManager : IMediaSegmentManager /// public async Task> GetSegmentsAsync(Guid itemId, IEnumerable? typeFilter) { + var baseItem = _libraryManager.GetItemById(itemId); + + if (baseItem is null) + { + _logger.LogError("Tried to request segments for an invalid item"); + return []; + } + + var libraryOptions = _libraryManager.GetLibraryOptions(baseItem); + var providers = _segmentProviders + .Where(e => !libraryOptions.DisabledMediaSegmentProviders.Contains(GetProviderId(e.Name))) + .ToArray(); + using var db = await _dbProvider.CreateDbContextAsync().ConfigureAwait(false); var query = db.MediaSegments @@ -151,6 +164,9 @@ public class MediaSegmentManager : IMediaSegmentManager query = query.Where(e => typeFilter.Contains(e.Type)); } + var providerIds = providers.Select(f => GetProviderId(f.Name)).ToArray(); + query = query.Where(e => providerIds.Contains(e.SegmentProviderId)); + return query .OrderBy(e => e.StartTicks) .AsNoTracking()