Fixed disabled providers not beeing returned

This commit is contained in:
JPVenson 2024-10-30 10:05:52 +00:00
parent c6629aebf8
commit 312ff4f3d8

View File

@ -141,6 +141,19 @@ public class MediaSegmentManager : IMediaSegmentManager
/// <inheritdoc /> /// <inheritdoc />
public async Task<IEnumerable<MediaSegmentDto>> GetSegmentsAsync(Guid itemId, IEnumerable<MediaSegmentType>? typeFilter) public async Task<IEnumerable<MediaSegmentDto>> GetSegmentsAsync(Guid itemId, IEnumerable<MediaSegmentType>? 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); using var db = await _dbProvider.CreateDbContextAsync().ConfigureAwait(false);
var query = db.MediaSegments var query = db.MediaSegments
@ -151,6 +164,9 @@ public class MediaSegmentManager : IMediaSegmentManager
query = query.Where(e => typeFilter.Contains(e.Type)); 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 return query
.OrderBy(e => e.StartTicks) .OrderBy(e => e.StartTicks)
.AsNoTracking() .AsNoTracking()