Live-TV bekommt einen neutralen Vertrag
Zwei Protokolle statt eines: LiveTVBackend für Sender, Programm und Einschalten, LiveTVRecordingBackend für Aufnahmen. Getrennt, weil Plex das eine kann und das andere nicht — ein as? sagt die Wahrheit, eine Methode, die bei Plex nur wirft, verspricht etwas und bricht es dann. Plex zieht um, ohne umgebaut zu werden. Der Suchlauf, der die Senderliste findet, bleibt Zeile für Zeile, wo er ist; davor liegt jetzt ein Actor, der sich Empfänger und Sender merkt. Nötig, weil PlexBackend ein struct ist und tune() den echten PlexChannel braucht — ohne Gedächtnis liefe der Suchlauf bei jedem Antippen neu. Jellyfin ist neu und deutlich kürzer, weil es dort nichts zu suchen gibt. Die Endpunkte stammen aus der OpenAPI-Spec des Servers. Beim Vormerken wird die Vorlage des Servers roh weitergereicht statt entschlüsselt und neu zusammengesetzt: welche Felder Pflicht sind, sagt die Beschreibung nicht, und ein verlorenes fiele erst an einer Aufnahme auf, die nicht startet. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
9df58ed5a6
commit
24765a5afc
@@ -14,8 +14,16 @@ public struct PlexBackend: MediaBackend {
|
||||
/// ihm sprechen — diese drei Bereiche wandern als Nächstes.
|
||||
public let server: PlexServer
|
||||
|
||||
/// Live-TV mit Gedächtnis.
|
||||
///
|
||||
/// Ein Actor, also ein Referenztyp: Kopien dieses Struct teilen sich
|
||||
/// denselben und damit die geladene Senderliste. Warum das nötig ist,
|
||||
/// steht bei `PlexLiveTVSession`.
|
||||
let live: PlexLiveTVSession
|
||||
|
||||
public init(server: PlexServer) {
|
||||
self.server = server
|
||||
self.live = PlexLiveTVSession(server: server)
|
||||
}
|
||||
|
||||
public nonisolated var serverName: String { server.name }
|
||||
|
||||
Reference in New Issue
Block a user