From 6e18fda4aaa364e8a4cca72f01f2bd82ed40ae06 Mon Sep 17 00:00:00 2001 From: Scarriffle Date: Sun, 27 Sep 2026 17:30:25 +0200 Subject: [PATCH] Die Probe zeigt Fassung und Wortlaut MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Der Proxy ist gelöst — Jellyfin hält die Verbindung jetzt für ausserhalb —, und es kommt trotzdem nur eine Stufe. Damit sind alle Hürden widerlegt, die im Quelltext von `master` stehen. Also stimmt etwas an der Annahme nicht, und am wahrscheinlichsten ist es die Fassung: ich lese womöglich den Quelltext einer anderen Version als der, die dort läuft. Deshalb meldet die Probe jetzt `Jellyfin ` — und druckt bei nur einer Stufe die Master-Playlist **im Wortlaut**. Ab da hilft keine Zusammenfassung mehr: was fehlt, sieht man nur im Original. Co-Authored-By: Claude Opus 5 --- .../FlixyKit/Sources/FlixyProbe/Leiter.swift | 27 +++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/Packages/FlixyKit/Sources/FlixyProbe/Leiter.swift b/Packages/FlixyKit/Sources/FlixyProbe/Leiter.swift index 871727b..00c8f94 100644 --- a/Packages/FlixyKit/Sources/FlixyProbe/Leiter.swift +++ b/Packages/FlixyKit/Sources/FlixyProbe/Leiter.swift @@ -29,6 +29,12 @@ struct Endpunktlage: Decodable { } } +/// Welche Fassung der Server hat. +struct Serverfassung: Decodable { + let version: String? + private enum CodingKeys: String, CodingKey { case version = "Version" } +} + /// Die Netzwerkeinstellungen des Servers — nur der Teil, der hier zählt. struct Netzwerkeinstellung: Decodable { let knownProxies: [String]? @@ -99,7 +105,13 @@ func prüfePlaylist(_ url: URL, kopfzeilen: [String: String] = [:]) async -> Str guard (200..<300).contains(status) else { return " HTTP \(status) — keine Playlist bekommen." } - return leiter(in: String(decoding: daten, as: UTF8.self)).beschreibung + let text = String(decoding: daten, as: UTF8.self) + let gelesen = leiter(in: text) + // **Bei einer Stufe den Wortlaut zeigen.** Ab hier hilft keine + // Zusammenfassung mehr: was fehlt, sieht man nur im Original. + guard gelesen.stufen.count <= 1 else { return gelesen.beschreibung } + return gelesen.beschreibung + "\n ——— Wortlaut ———\n" + + text.split(separator: "\n").map { " " + $0 }.joined(separator: "\n") } catch { return " Nicht erreichbar: \(error.localizedDescription)" } @@ -167,7 +179,18 @@ func jellyfinLeiter(host: String) async { print("Anmeldung gescheitert: \(error)") return } - print("Angemeldet als \(konto.userName).\n") + print("Angemeldet als \(konto.userName).") + + // Die Fassung des Servers. Ohne sie lese ich womöglich den Quelltext + // einer anderen — und suche den Fehler an einer Stelle, die es dort + // gar nicht gibt. + if let info = try? await client.send( + JellyfinRequest(path: "/System/Info/Public"), + as: Serverfassung.self + ) { + print("Jellyfin \(info.version ?? "unbekannt")") + } + print("") let backend = JellyfinBackend(client: client, account: konto, serverName: "Probe")