Files
claude 9e33a343ab
Some checks failed
release / build-release (push) Has been cancelled
Floatplane channel plugin for Jellyfin 10.10.x: browse, HLS proxy, cookie session, CI release
- 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>
2026-10-25 09:42:27 +01:00

58 lines
1.8 KiB
C#

using System;
using System.Collections.Generic;
using System.Text.Json.Serialization;
namespace Jellyfin.Plugin.Chaosflix.Api.Models;
/// <summary>
/// CCC API conference (e.g. 38C3, Camp 2019).
/// </summary>
public class CccConference
{
/// <summary>Gets or sets the acronym (e.g. "38c3").</summary>
[JsonPropertyName("acronym")]
public string Acronym { get; set; } = string.Empty;
/// <summary>Gets or sets the title.</summary>
[JsonPropertyName("title")]
public string Title { get; set; } = string.Empty;
/// <summary>Gets or sets the description.</summary>
[JsonPropertyName("description")]
public string? Description { get; set; }
/// <summary>Gets or sets the slug.</summary>
[JsonPropertyName("slug")]
public string Slug { get; set; } = string.Empty;
/// <summary>Gets or sets the logo URL.</summary>
[JsonPropertyName("logo_url")]
public string? LogoUrl { get; set; }
/// <summary>Gets or sets the aspect ratio.</summary>
[JsonPropertyName("aspect_ratio")]
public string? AspectRatio { get; set; }
/// <summary>Gets or sets the API URL.</summary>
[JsonPropertyName("url")]
public string Url { get; set; } = string.Empty;
/// <summary>Gets or sets the last released event date.</summary>
[JsonPropertyName("event_last_released_at")]
public DateTimeOffset? EventLastReleasedAt { get; set; }
/// <summary>Gets or sets the events (only present in detail response).</summary>
[JsonPropertyName("events")]
public List<CccEvent>? Events { get; set; }
}
/// <summary>
/// Wrapper for conference list response.
/// </summary>
public class CccConferencesResponse
{
/// <summary>Gets or sets the conferences.</summary>
[JsonPropertyName("conferences")]
public List<CccConference> Conferences { get; set; } = new();
}