// **Nur für den Rechner, auf dem entwickelt wird.** // // Das hier ist ein Kommandozeilenwerkzeug: es fragt nach einem Passwort über // `getpass` und druckt in ein Terminal. Nichts davon gibt es auf iOS, und auf // tvOS erst recht nicht — die App hängt auch nicht daran. Ohne diese Bedingung // scheitert aber jeder Versuch, **das ganze Paket** für eine andere Plattform // zu übersetzen, an einem Werkzeug, das dort nie laufen sollte. Das kostete // eine halbe Stunde Fehlersuche an der falschen Stelle. #if os(macOS) import Foundation import MediaKit // Ein Werkzeug für die Fragen, die reines HTTP sind. // // Der Grund, dass es das gibt: eine Vermutung über die Schnittstelle eines // Servers ging bisher als TestFlight-Build zum Nutzer und kam einen halben Tag // später als Screenshot zurück. Irgendwann war das Upload-Kontingent des Tages // aufgebraucht — für eine Frage, die keine Oberfläche braucht. Hier dauert // eine Runde Sekunden. // // Der Token wird über die übliche Anmeldung geholt und liegt im Schlüsselbund // dieses Rechners. Er steht nirgends in der Ausgabe: gedruckt werden Pfade, // Kennungen und Antworten, keine vollständigen Adressen. if let index = CommandLine.arguments.firstIndex(of: "--playlist"), let roh = CommandLine.arguments.dropFirst(index + 1).first, let url = URL(string: roh) { print("=== \(url.lastPathComponent) ===") print(await prüfePlaylist(url)) exit(0) } if let index = CommandLine.arguments.firstIndex(of: "--spuren"), let host = CommandLine.arguments.dropFirst(index + 1).first, let suche = CommandLine.arguments.dropFirst(index + 2).first { await zeigeSpuren(host: host, suche: suche) exit(0) } if let index = CommandLine.arguments.firstIndex(of: "--jellyfin"), let host = CommandLine.arguments.dropFirst(index + 1).first { await jellyfinLeiter(host: host) exit(0) } // Kein Modus erkannt. Ohne diesen Hinweis endete das Werkzeug wortlos — und // ein Tippfehler im Argument sähe aus wie ein Server, der nichts liefert. print(""" FlaroProbe — fragt Server über reines HTTP, ohne Oberfläche und ohne Gerät. --playlist Eine HLS-Leiter prüfen: Varianten, Tonspuren, erster Schnipsel --jellyfin Die Leiter holen, die Jellyfin für einen Titel baut, und begründen, warum sie so aussieht --spuren Die Tonspuren eines Titels auflisten """) exit(1) #endif