Transcoder: lebt der Zweig überhaupt?
Jede Variante scheitert, auch „nur Pfad und Token". Damit ist es kein Parameter — es ist der Endpunkt. Also die Frage eine Ebene höher: `ping` und `stop` gehören zu derselben Familie und brauchen nur eine Sitzungskennung. Antworten auch sie mit 400, ist nicht die Anfrage falsch, sondern der ganze Zweig nicht da. Dazu zwei Gegenkontrollen von Dingen, die nachweislich gehen: der Bild-Transcoder, der denselben `/:/`-Aufbau hat und aus dem die Plakate kommen, und die Mediathek selbst. Wenn die antworten und der Video-Transcoder nicht, liegt es nicht an Flixys Adressen. Und der Probe nimmt jetzt `--channel 002`: bisher hat er immer Sender 001 genommen, auf dem gerade nichts läuft — ein Sender ohne Sendung sagt über das Einschalten wenig aus. Ohne Angabe nimmt er den ersten, auf dem etwas läuft. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
8ab7baecb8
commit
2a19db2757
@@ -66,7 +66,11 @@ print("Server: \(resource.name) über \(connection.local ? "lokal" : "entfernt")
|
||||
// `swift run FlixyProbe /pfad /noch-ein-pfad …` fragt genau diese Adressen ab
|
||||
// und zeigt die Antwort. Dafür ist das Werkzeug da: eine Schnittstelle ohne
|
||||
// Beschreibung erkundet man, indem man sie fragt, nicht indem man rät.
|
||||
let requested = CommandLine.arguments.dropFirst().filter { !$0.hasPrefix("--") }
|
||||
var requested = CommandLine.arguments.dropFirst().filter { !$0.hasPrefix("--") }
|
||||
// Was hinter `--channel` steht, ist keine Adresse.
|
||||
if let wanted = CommandLine.arguments.drop(while: { $0 != "--channel" }).dropFirst().first {
|
||||
requested.removeAll { $0 == wanted }
|
||||
}
|
||||
if !requested.isEmpty {
|
||||
for path in requested {
|
||||
print("=== \(path) ===")
|
||||
@@ -115,7 +119,21 @@ print("Empfänger: \(dvr.key), Programmführer: \(dvr.epgIdentifier ?? "–")")
|
||||
let guide = await server.liveTVGuide(dvr: dvr, hours: 2)
|
||||
print("Sender: \(guide.channels.count) — \(guide.source)\n")
|
||||
|
||||
guard let channel = guide.channels.first else { exit(0) }
|
||||
// `--channel 002` wählt einen bestimmten Sender. Sonst der erste, auf dem
|
||||
// überhaupt etwas läuft — ein Sender ohne Sendung sagt über das
|
||||
// Einschalten wenig aus.
|
||||
let wanted = CommandLine.arguments.drop(while: { $0 != "--channel" }).dropFirst().first
|
||||
|
||||
let channel = guide.channels.first { candidate in
|
||||
guard let wanted else { return false }
|
||||
return candidate.channelIdentifier == wanted
|
||||
|| candidate.channelIdentifier == wanted.trimmingCharacters(in: CharacterSet(charactersIn: "0"))
|
||||
|| candidate.title.localizedCaseInsensitiveContains(wanted)
|
||||
}
|
||||
?? guide.channels.first { guide.programs[$0.id]?.contains { $0.isRunning() } == true }
|
||||
?? guide.channels.first
|
||||
|
||||
guard let channel else { exit(0) }
|
||||
let program = guide.programs[channel.id]?.first { $0.isRunning() }
|
||||
|
||||
print("Einschalten: \(channel.title) (\(channel.channelIdentifier ?? "–"))")
|
||||
|
||||
Reference in New Issue
Block a user