Remove 9 dead methods, 6 unused constants, and redundant ReaderWriterLockSlim from MetadataCache. Consolidate repeated patterns into HasChapters, IsPlayable, and ToLowerString helpers. Extract shared API methods in SRFApiClient. Move variant manifest rewriting from controller to StreamProxyService. Make Auto quality distinct from HD. Update README architecture section.
35 lines
982 B
C#
35 lines
982 B
C#
using System.Collections.Generic;
|
|
using System.Text.Json.Serialization;
|
|
|
|
namespace Jellyfin.Plugin.SRFPlay.Api.Models;
|
|
|
|
/// <summary>
|
|
/// Represents the root media composition response from SRF API.
|
|
/// </summary>
|
|
public class MediaComposition
|
|
{
|
|
/// <summary>
|
|
/// Gets or sets the list of chapters (videos/episodes).
|
|
/// </summary>
|
|
[JsonPropertyName("chapterList")]
|
|
public IReadOnlyList<Chapter> ChapterList { get; set; } = new List<Chapter>();
|
|
|
|
/// <summary>
|
|
/// Gets a value indicating whether this composition has any chapters.
|
|
/// </summary>
|
|
[JsonIgnore]
|
|
public bool HasChapters => ChapterList != null && ChapterList.Count > 0;
|
|
|
|
/// <summary>
|
|
/// Gets or sets the episode information.
|
|
/// </summary>
|
|
[JsonPropertyName("episode")]
|
|
public Episode? Episode { get; set; }
|
|
|
|
/// <summary>
|
|
/// Gets or sets the show information.
|
|
/// </summary>
|
|
[JsonPropertyName("show")]
|
|
public Show? Show { get; set; }
|
|
}
|