mirror of
https://github.com/jellyfin/jellyfin.git
synced 2026-01-15 08:23:28 -03:00
Add media segments API (#12345)
* Added Media segment manager * Added "HasSegments" to MediaSourceInfo when requesting though baseitem * Fixed ordering of Media Segements * Added media segment API controller * Added .ConfigureAwait(false) on media segments manager * renamed MediaSegmentsController removed empty route * Added Model layer for Media Segments Fixed review comments Media segments * Updated media segment naming refactored api and manager usage * Added mediaSegment type filter * Fixed codesmell * Fixed naming and typos * Added EF Migration * Added Identity Generation for MediaSegments Made mediasegment filter optional * Fixed optional filter parameter * refactored segment namespace * Added SegmentProviderId to MediaSegment * Media segment comment indentation * Added MediaSegmentManager query notracking
This commit is contained in:
42
Jellyfin.Data/Entities/MediaSegment.cs
Normal file
42
Jellyfin.Data/Entities/MediaSegment.cs
Normal file
@@ -0,0 +1,42 @@
|
||||
using System;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
using Jellyfin.Data.Enums;
|
||||
|
||||
namespace Jellyfin.Data.Entities;
|
||||
|
||||
/// <summary>
|
||||
/// An entity representing the metadata for a group of trickplay tiles.
|
||||
/// </summary>
|
||||
public class MediaSegment
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets or sets the id of the media segment.
|
||||
/// </summary>
|
||||
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
|
||||
public Guid Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the id of the associated item.
|
||||
/// </summary>
|
||||
public Guid ItemId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the Type of content this segment defines.
|
||||
/// </summary>
|
||||
public MediaSegmentType Type { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the end of the segment.
|
||||
/// </summary>
|
||||
public long EndTicks { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the start of the segment.
|
||||
/// </summary>
|
||||
public long StartTicks { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets Id of the media segment provider this entry originates from.
|
||||
/// </summary>
|
||||
public required string SegmentProviderId { get; set; }
|
||||
}
|
||||
39
Jellyfin.Data/Enums/MediaSegmentType.cs
Normal file
39
Jellyfin.Data/Enums/MediaSegmentType.cs
Normal file
@@ -0,0 +1,39 @@
|
||||
using Jellyfin.Data.Entities;
|
||||
|
||||
namespace Jellyfin.Data.Enums;
|
||||
|
||||
/// <summary>
|
||||
/// Defines the types of content an individual <see cref="MediaSegment"/> represents.
|
||||
/// </summary>
|
||||
public enum MediaSegmentType
|
||||
{
|
||||
/// <summary>
|
||||
/// Default media type or custom one.
|
||||
/// </summary>
|
||||
Unknown = 0,
|
||||
|
||||
/// <summary>
|
||||
/// Commercial.
|
||||
/// </summary>
|
||||
Commercial = 1,
|
||||
|
||||
/// <summary>
|
||||
/// Preview.
|
||||
/// </summary>
|
||||
Preview = 2,
|
||||
|
||||
/// <summary>
|
||||
/// Recap.
|
||||
/// </summary>
|
||||
Recap = 3,
|
||||
|
||||
/// <summary>
|
||||
/// Outro.
|
||||
/// </summary>
|
||||
Outro = 4,
|
||||
|
||||
/// <summary>
|
||||
/// Intro.
|
||||
/// </summary>
|
||||
Intro = 5
|
||||
}
|
||||
Reference in New Issue
Block a user