repo creation with initial code after cloning public repo
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using Jellyfin.Api.Extensions;
|
||||
using Jellyfin.Database.Implementations.Enums;
|
||||
using MediaBrowser.Controller.Entities;
|
||||
using MediaBrowser.Controller.Library;
|
||||
using MediaBrowser.Controller.MediaSegments;
|
||||
using MediaBrowser.Model.MediaSegments;
|
||||
using MediaBrowser.Model.Querying;
|
||||
using Microsoft.AspNetCore.Authorization;
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
|
||||
namespace Jellyfin.Api.Controllers;
|
||||
|
||||
/// <summary>
|
||||
/// Media Segments api.
|
||||
/// </summary>
|
||||
[Authorize]
|
||||
public class MediaSegmentsController : BaseJellyfinApiController
|
||||
{
|
||||
private readonly IMediaSegmentManager _mediaSegmentManager;
|
||||
private readonly ILibraryManager _libraryManager;
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="MediaSegmentsController"/> class.
|
||||
/// </summary>
|
||||
/// <param name="mediaSegmentManager">MediaSegments Manager.</param>
|
||||
/// <param name="libraryManager">The Library manager.</param>
|
||||
public MediaSegmentsController(IMediaSegmentManager mediaSegmentManager, ILibraryManager libraryManager)
|
||||
{
|
||||
_mediaSegmentManager = mediaSegmentManager;
|
||||
_libraryManager = libraryManager;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets all media segments based on an itemId.
|
||||
/// </summary>
|
||||
/// <param name="itemId">The ItemId.</param>
|
||||
/// <param name="includeSegmentTypes">Optional filter of requested segment types.</param>
|
||||
/// <returns>A list of media segment objects related to the requested itemId.</returns>
|
||||
[HttpGet("{itemId}")]
|
||||
[ProducesResponseType(StatusCodes.Status200OK)]
|
||||
[ProducesResponseType(StatusCodes.Status404NotFound)]
|
||||
public async Task<ActionResult<QueryResult<MediaSegmentDto>>> GetItemSegments(
|
||||
[FromRoute, Required] Guid itemId,
|
||||
[FromQuery] IEnumerable<MediaSegmentType>? includeSegmentTypes = null)
|
||||
{
|
||||
var item = _libraryManager.GetItemById<BaseItem>(itemId, User.GetUserId());
|
||||
if (item is null)
|
||||
{
|
||||
return NotFound();
|
||||
}
|
||||
|
||||
var libraryOptions = _libraryManager.GetLibraryOptions(item);
|
||||
var items = await _mediaSegmentManager.GetSegmentsAsync(item, includeSegmentTypes, libraryOptions).ConfigureAwait(false);
|
||||
return Ok(new QueryResult<MediaSegmentDto>(items.ToArray()));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user