Die Probe zeigt Fassung und Wortlaut

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 <Version>` — 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 <noreply@anthropic.com>
This commit is contained in:
Scarriffle
2026-09-27 17:30:25 +02:00
co-authored by Claude Opus 5
parent e4e6cc6cbd
commit 6e18fda4aa
@@ -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")