mirror of
https://github.com/jellyfin/jellyfin.git
synced 2025-07-09 03:04:24 -04:00
Added parameter to enable or disable library filter
This commit is contained in:
parent
312ff4f3d8
commit
c08d1d5b7f
@ -139,7 +139,7 @@ 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, bool filterByProvider = true)
|
||||||
{
|
{
|
||||||
var baseItem = _libraryManager.GetItemById(itemId);
|
var baseItem = _libraryManager.GetItemById(itemId);
|
||||||
|
|
||||||
@ -149,11 +149,6 @@ public class MediaSegmentManager : IMediaSegmentManager
|
|||||||
return [];
|
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
|
||||||
@ -164,8 +159,15 @@ 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();
|
if (filterByProvider)
|
||||||
query = query.Where(e => providerIds.Contains(e.SegmentProviderId));
|
{
|
||||||
|
var libraryOptions = _libraryManager.GetLibraryOptions(baseItem);
|
||||||
|
var providers = _segmentProviders
|
||||||
|
.Where(e => !libraryOptions.DisabledMediaSegmentProviders.Contains(GetProviderId(e.Name)))
|
||||||
|
.ToArray();
|
||||||
|
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)
|
||||||
|
@ -50,8 +50,9 @@ public interface IMediaSegmentManager
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="itemId">The id of the <see cref="BaseItem"/>.</param>
|
/// <param name="itemId">The id of the <see cref="BaseItem"/>.</param>
|
||||||
/// <param name="typeFilter">filteres all media segments of the given type to be included. If null all types are included.</param>
|
/// <param name="typeFilter">filteres all media segments of the given type to be included. If null all types are included.</param>
|
||||||
|
/// <param name="filterByProvider">When set filteres the segments to only return those that which providers are currently enabled on their library.</param>
|
||||||
/// <returns>An enumerator of <see cref="MediaSegmentDto"/>'s.</returns>
|
/// <returns>An enumerator of <see cref="MediaSegmentDto"/>'s.</returns>
|
||||||
Task<IEnumerable<MediaSegmentDto>> GetSegmentsAsync(Guid itemId, IEnumerable<MediaSegmentType>? typeFilter);
|
Task<IEnumerable<MediaSegmentDto>> GetSegmentsAsync(Guid itemId, IEnumerable<MediaSegmentType>? typeFilter, bool filterByProvider = true);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets information about any media segments stored for the given itemId.
|
/// Gets information about any media segments stored for the given itemId.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user