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:
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.
|
/// Die Netzwerkeinstellungen des Servers — nur der Teil, der hier zählt.
|
||||||
struct Netzwerkeinstellung: Decodable {
|
struct Netzwerkeinstellung: Decodable {
|
||||||
let knownProxies: [String]?
|
let knownProxies: [String]?
|
||||||
@@ -99,7 +105,13 @@ func prüfePlaylist(_ url: URL, kopfzeilen: [String: String] = [:]) async -> Str
|
|||||||
guard (200..<300).contains(status) else {
|
guard (200..<300).contains(status) else {
|
||||||
return " HTTP \(status) — keine Playlist bekommen."
|
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 {
|
} catch {
|
||||||
return " Nicht erreichbar: \(error.localizedDescription)"
|
return " Nicht erreichbar: \(error.localizedDescription)"
|
||||||
}
|
}
|
||||||
@@ -167,7 +179,18 @@ func jellyfinLeiter(host: String) async {
|
|||||||
print("Anmeldung gescheitert: \(error)")
|
print("Anmeldung gescheitert: \(error)")
|
||||||
return
|
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")
|
let backend = JellyfinBackend(client: client, account: konto, serverName: "Probe")
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user