Some checks failed
release / build-release (push) Has been cancelled
- IChannel: creators -> sub-channels -> video posts (public listing API, search mapped) - IRequiresMediaInfoCallback -> signed proxy URLs; stream controller rewrites HLS so the AES-128 key is fetched server-side with the session cookie, segments stay on the CDN - delivery/info cached per token lifetime and throttled (~2/min) - config page: paste sails.sid + validate, extra creators, quality, search test - scripts/package.sh -> plugin folder + zip + md5 + manifest.json; Gitea release workflow - research docs, HAR analysis (HAR itself gitignored), install-pi5.sh Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
77 lines
2.3 KiB
C#
77 lines
2.3 KiB
C#
using MediaBrowser.Model.Plugins;
|
|
|
|
namespace Jellyfin.Plugin.Chaosflix.Configuration;
|
|
|
|
/// <summary>
|
|
/// Plugin configuration.
|
|
/// </summary>
|
|
public class PluginConfiguration : BasePluginConfiguration
|
|
{
|
|
/// <summary>
|
|
/// Gets or sets the preferred video quality.
|
|
/// </summary>
|
|
public VideoQuality PreferredQuality { get; set; } = VideoQuality.High;
|
|
|
|
/// <summary>
|
|
/// Gets or sets the preferred language (ISO 639 code, e.g. "deu", "eng").
|
|
/// Empty means original language.
|
|
/// </summary>
|
|
public string PreferredLanguage { get; set; } = string.Empty;
|
|
|
|
/// <summary>
|
|
/// Gets or sets the preferred video format.
|
|
/// </summary>
|
|
public VideoFormat PreferredFormat { get; set; } = VideoFormat.Mp4;
|
|
|
|
/// <summary>
|
|
/// Gets or sets a value indicating whether a talk starts on a version every client
|
|
/// can stream without a re-encode, leaving <see cref="PreferredFormat"/> to order
|
|
/// the versions behind it.
|
|
/// </summary>
|
|
public bool CompatibleDefaultVersion { get; set; }
|
|
|
|
/// <summary>
|
|
/// Gets or sets the conferences to show, separated by commas or newlines. An entry
|
|
/// is either an acronym ("38c3") or a series as media.ccc.de files it in the slug
|
|
/// ("congress", "gpn"), which also covers the editions not published yet.
|
|
/// Empty means every conference, which is what the plugin did before this existed.
|
|
/// </summary>
|
|
public string ConferenceFilter { get; set; } = string.Empty;
|
|
|
|
/// <summary>
|
|
/// Gets or sets the streaming endpoint that reports which rooms are on air.
|
|
/// Empty means the public one at streaming.media.ccc.de.
|
|
/// </summary>
|
|
public string StreamingBaseUrl { get; set; } = string.Empty;
|
|
|
|
/// <summary>
|
|
/// Gets or sets the CCC API endpoint. Empty means the public API at media.ccc.de;
|
|
/// set it to use a mirror or, in the e2e tests, a local stand-in.
|
|
/// </summary>
|
|
public string ApiBaseUrl { get; set; } = string.Empty;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Video quality preference.
|
|
/// </summary>
|
|
public enum VideoQuality
|
|
{
|
|
/// <summary>High quality (1080p).</summary>
|
|
High,
|
|
|
|
/// <summary>Standard quality (576p).</summary>
|
|
Standard
|
|
}
|
|
|
|
/// <summary>
|
|
/// Video format preference.
|
|
/// </summary>
|
|
public enum VideoFormat
|
|
{
|
|
/// <summary>H.264 MP4.</summary>
|
|
Mp4,
|
|
|
|
/// <summary>WebM/VP9.</summary>
|
|
WebM
|
|
}
|