Ich bearbeite meine Frage zur Klarstellung. Es tut mir leid, wenn etwas durcheinander gerät. Die Conky-Syntax hat sich mit der neuesten Version geändert (ich ging davon aus, dass Benutzer der neuesten Version von Conky sich dessen bewusst waren).
Mein Problem geklärt:
Ich erstelle eine XML-Datei, die Wetterinformationen von Wunderground.com übernimmt.
Ich würde lieber eine einfache Möglichkeit finden, bestimmte Informationen aus der XML-Datei zu extrahieren, um sie in Conky anzuzeigen (einschließlich des Wettersymbols).
Die meisten Informationen, die ich bisher gefunden habe, erfüllen nicht meinen Zweck und ich kann mir aus dem, was ich gefunden habe, keine eigene Lösung zusammenschustern, da mir die Informationen unnötig komplex erscheinen. Ich möchte, dass die verwendete Methode nicht viele zusätzliche Programme und/oder Skripting-Kram erfordert.
Beispiel:
Ich verwende "curl -shttp://api.wunderground.com/api/[key]/conditions/q/TX/[mycity].xml-o ~/Pfad/weather.xml“, um meine XML-Datei mit Wunderground.com zu erstellen.
In der XML-Datei befindet sich der Pfad zum aktuellen Wettersymbol (sagen wir: "http://icons.wxug.com/i/c/k/cloudy.gif")
In der XML-Datei sind bestimmte Daten, die ich anzeigen möchte, wie etwa die aktuelle Temperatur (die XML-Datei zeigt „<'temp_f'>'68,9'<'/temp_f'>'"... Hinweis: Ich verwende „<', sonst wird das Tag in meinem Beitrag nicht angezeigt). Daher möchte ich die 68,9 nehmen und anzeigen (oder auf 69 runden).
Am Ende würde mein Conky im obigen Beispiel ein „bewölktes“ Symbol und 69 °F (oder 68,9 °F) anzeigen. Ich könnte dann (hoffentlich problemlos) andere Informationen auf ähnliche Weise extrahieren und anzeigen.
Vielen Dank im Voraus für Ihre Hilfe.
Antwort1
Teil 1:
Um die Informationen direkt aus der Web-URL zu extrahieren, verwenden Sie den folgenden Befehl:
curl api.wunderground.com/api/[key]/conditions/q/[state]/[mycity].xml | awk -F'[<|>]' '/<temp_f>/ {print "Current Temperature:"$3"°F"}/<windchill_f>/ {print "Windchill:"$3"°F"}'
... oder Sie können die Informationen alternativ aus einer heruntergeladenen XML-Datei extrahieren:
curl 'file:///home/path/weather.xml' | awk -F'[<|>]' '/<temp_f>/ {print "Current Temperature:"$3"°F"}/<windchill_f>/ {print "Windchill:"$3"°F"}'
Sie können ersetzen
'/<temp_f>/' {print "Current Temperature:"$3"°F"}
mit allen anderen Tags und Informationen, die Sie anzeigen möchten.
Teil 2:
Um die Symbol-URL zu extrahieren und das Symbol dann in Conky anzuzeigen, müssen Sie die URL wie folgt in eine Datei extrahieren:
curl api.wunderground.com/api/[key]/conditions/q/[state]/[mycity].xml | awk -F'[<|>]' '/<icon_url>/ {print $3}' >~/path/image
Anschließend müssen Sie das Symbol herunterladen, ihm einen allgemeinen Namen geben und es dann in den gewünschten Ordner verschieben:
wget -O weather.gif -i ~/path/image
mv ~/weather.gif ~/path/
Erstellen Sie mit den obigen Schritten ein Sh-Skript (wir nennen es „weather.sh“) und platzieren Sie es an der gewünschten Stelle.
Sie würden dann Befehle in Ihre „.conkyrc“ einfügen, etwa wie folgt:
${execi 300 sh ~/path/weather.sh}
${image ~/path/weather.gif -p 10,40 -s 32x32}
Im Befehl „image“ ist „-p“ die Position und „-s“ die Pixelgröße des Bildes. Ändern Sie die Koordinaten und die Größe nach Ihren Wünschen.
Dies sollte viel einfacher sein als viele der Wetterskripte usw., die ich für Conky gefunden habe.