Probe: die Fehlerseiten stammen nicht von Plex
Zehn Runden lang habe ich die Antwort gelesen, ohne sie anzusehen:
<html><head><title>Bad Request</title></head><body><h1>400 Bad
Request</h1></body></html>
So antwortet Plex nicht. Plex schickt XML oder JSON. Das ist die
Standardseite eines Webservers. Dazu passt, dass ping und stop mit 404
antworten, obwohl es sie in jedem Plex gibt.
Die Anfragen erreichen Plex also womöglich gar nicht, sondern werden
davor abgewiesen — vom Router, vom Webserver des NAS oder einem Proxy.
Das erklärt, warum wirklich jede Variante scheitert, auch die minimalste,
und warum eine gewöhnliche Datei genauso betroffen ist.
Der Probe zeigt jetzt alle Wege zum Server und nimmt mit `--local` den
lokalen. Geht es dort, liegt es an dem, was von außen dazwischensteht,
und nicht an Flixy.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
5e1a878237
commit
f87cddbd21
@@ -54,12 +54,29 @@ let directory = PlexServerDirectory(identity: identity, token: token)
|
|||||||
let servers = try await directory.servers()
|
let servers = try await directory.servers()
|
||||||
guard let resource = servers.first else { fatalError("Kein Server am Konto.") }
|
guard let resource = servers.first else { fatalError("Kein Server am Konto.") }
|
||||||
|
|
||||||
|
// Welche Wege es zu diesem Server gibt. Die Fehlerseiten sehen nicht nach
|
||||||
|
// Plex aus, sondern nach einem Webserver davor — dann macht es einen
|
||||||
|
// Unterschied, ob die Anfrage durch die Portweiterleitung geht oder direkt.
|
||||||
|
print("Wege zu \(resource.name):")
|
||||||
|
for candidate in resource.connections {
|
||||||
|
print(" \(candidate.local ? "lokal " : "entfernt") \(candidate.uri)")
|
||||||
|
}
|
||||||
|
|
||||||
|
let forceLocal = CommandLine.arguments.contains("--local")
|
||||||
let selector = PlexConnectionSelector(identity: identity)
|
let selector = PlexConnectionSelector(identity: identity)
|
||||||
guard let connection = await selector.selectConnection(for: resource),
|
|
||||||
|
let chosen: PlexConnection?
|
||||||
|
if forceLocal {
|
||||||
|
chosen = resource.connections.first { $0.local }
|
||||||
|
} else {
|
||||||
|
chosen = await selector.selectConnection(for: resource)
|
||||||
|
}
|
||||||
|
|
||||||
|
guard let connection = chosen,
|
||||||
let server = PlexServer(resource: resource, connection: connection, identity: identity)
|
let server = PlexServer(resource: resource, connection: connection, identity: identity)
|
||||||
else { fatalError("Kein Weg zu \(resource.name) erreichbar.") }
|
else { fatalError("Kein Weg zu \(resource.name) erreichbar.") }
|
||||||
|
|
||||||
print("Server: \(resource.name) über \(connection.local ? "lokal" : "entfernt")\n")
|
print("\nGenommen: \(connection.local ? "lokal" : "entfernt") — \(connection.uri)\n")
|
||||||
|
|
||||||
// MARK: - Freie Abfrage
|
// MARK: - Freie Abfrage
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user