Diese Seite ist statisches HTML und am besten betrachtet mit Java-Script eingeschaltet!

Fernbedienung eines Linux-Computers per mobilem Gerät - jq Kenntnisse erweitern

 ·  ☕ 2 Min. Lesen  ·  🤖 SWU

Vorbereitung für das Verwenden der Radiotray-NG Bookmarks Datei

Bloß ein einziges Webradio einzurichten, ist natürlich blöd. Das war aber auch nur am Anfang, als ich anfing, meine Vision zu verwirklichen. Natürlich soll das Webradio ferngesteuert genau die gleichen und die Vielzahl an Webradio-Stationen bieten, wie der PC.

Eine Vorbereitung dazu war, die Bookmarks von Radiotray-NG aufzulösen, damit ich sie in ein Webformular einbinden kann. Natürlich wollte ich das mit jq machen. Das erste Mal, dass ich mich in die jq Syntax wirklich vertiefen musste. Ich war am Ende erfolgreich und möchte daher meine Ergebnisse posten. Es gab da eine Schwelle zu überwinden, die in von der von mir gefundenen Dokus nicht so im Detail zum abschreiben vorgegeben war.

Der Schlüssel zum Ziel war, die Form der Json Datei in eigenen Worten zu beschreiben:

bookmarks.json ist ein einzelnes Array mit den zusammen gehörenden Datensätzen “group” und “stations”. Zu einer “group”/Ordnername gehört “stations” mit Arrays von “name” und “url”, sowie “image”.

Wer die unten angegebenen Kommandozeilen testen will, aber über keine radiotray-ng Installation verfügt, kann die bookmarks.json hier herunterladen.

Ordnernamen ausgeben:

jq -r '.[].group' .config/radiotray-ng/bookmarks.json

Stationen ausgeben:

jq '.[].stations' .config/radiotray-ng/bookmarks.json

Die Anzahl der Ordner und Stationen kann einfach ermittelt werden durch anhängen einer Pipe und “wc -l” um die ausgegebenen Zeilen zu zählen.

Ordneranzahl ausgeben:

jq -r '.[].group' .config/radiotray-ng/bookmarks.json | wc -l

Stationenanzahl ausgeben:

jq '.[].stations[].name' .config/radiotray-ng/bookmarks.json | wc -l

Man beachte, dass jq anfängt, bei 0 zu zählen

Den ersten Ordner ausgeben:

jq -r '.[0].group' .config/radiotray-ng/bookmarks.json

Um die Stationen des ersten Ordners auszugeben, in Datensätzen mit Name und URL, ohne image:

jq '.[0].stations' .config/radiotray-ng/bookmarks.json | jq '.[] |{Name: .name, URL: .url}'

Um das Ergebnis in ein Array zu packen:

jq '.[0].stations' .config/radiotray-ng/bookmarks.json | jq '[.[] |{Name: .name, URL: .url}]'

Letzteres soll ja für weitere Ausgabetools in einer Pipe notwendig sein.

Das wären die Basics, sich die Informationen aus der Bookmarks.json verfügbar zu machen aus der Sicht meiner Vorbereitung. Möglicherweise ist sie unvollständig, ich werde das dann im posting über die Webradio Erweiterung ggfs. ergänzen.


wüsti
Author
SWU
human