Fixed interface definition

pull/12916/head
JPVenson 4 months ago
parent aa4dd04b99
commit 0130580151

@ -55,7 +55,7 @@ public class MediaSegmentsController : BaseJellyfinApiController
return NotFound(); return NotFound();
} }
var items = await _mediaSegmentManager.GetSegmentsAsync(item.Id, includeSegmentTypes).ConfigureAwait(false); var items = await _mediaSegmentManager.GetSegmentsAsync(item, includeSegmentTypes).ConfigureAwait(false);
return Ok(new QueryResult<MediaSegmentDto>(items.ToArray())); return Ok(new QueryResult<MediaSegmentDto>(items.ToArray()));
} }
} }

@ -139,20 +139,26 @@ public class MediaSegmentManager : IMediaSegmentManager
} }
/// <inheritdoc /> /// <inheritdoc />
public async Task<IEnumerable<MediaSegmentDto>> GetSegmentsAsync(Guid itemId, IEnumerable<MediaSegmentType>? typeFilter, bool filterByProvider = true) public Task<IEnumerable<MediaSegmentDto>> GetSegmentsAsync(Guid itemId, IEnumerable<MediaSegmentType>? typeFilter, bool filterByProvider = true)
{ {
var baseItem = _libraryManager.GetItemById(itemId); var baseItem = _libraryManager.GetItemById(itemId);
if (baseItem is null) if (baseItem is null)
{ {
_logger.LogError("Tried to request segments for an invalid item"); _logger.LogError("Tried to request segments for an invalid item");
return []; return Task.FromResult<IEnumerable<MediaSegmentDto>>([]);
} }
return GetSegmentsAsync(baseItem, typeFilter, filterByProvider);
}
/// <inheritdoc />
public async Task<IEnumerable<MediaSegmentDto>> GetSegmentsAsync(BaseItem item, IEnumerable<MediaSegmentType>? typeFilter, bool filterByProvider = true)
{
using var db = await _dbProvider.CreateDbContextAsync().ConfigureAwait(false); using var db = await _dbProvider.CreateDbContextAsync().ConfigureAwait(false);
var query = db.MediaSegments var query = db.MediaSegments
.Where(e => e.ItemId.Equals(itemId)); .Where(e => e.ItemId.Equals(item.Id));
if (typeFilter is not null) if (typeFilter is not null)
{ {
@ -161,7 +167,7 @@ public class MediaSegmentManager : IMediaSegmentManager
if (filterByProvider) if (filterByProvider)
{ {
var libraryOptions = _libraryManager.GetLibraryOptions(baseItem); var libraryOptions = _libraryManager.GetLibraryOptions(item);
var providers = _segmentProviders var providers = _segmentProviders
.Where(e => !libraryOptions.DisabledMediaSegmentProviders.Contains(GetProviderId(e.Name))) .Where(e => !libraryOptions.DisabledMediaSegmentProviders.Contains(GetProviderId(e.Name)))
.ToArray(); .ToArray();

@ -54,6 +54,15 @@ public interface IMediaSegmentManager
/// <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, bool filterByProvider = true); Task<IEnumerable<MediaSegmentDto>> GetSegmentsAsync(Guid itemId, IEnumerable<MediaSegmentType>? typeFilter, bool filterByProvider = true);
/// <summary>
/// Obtains all segments accociated with the itemId.
/// </summary>
/// <param name="itemId">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="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>
Task<IEnumerable<MediaSegmentDto>> GetSegmentsAsync(BaseItem 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.
/// </summary> /// </summary>

Loading…
Cancel
Save