dwd_wetterwarnungen_im_dokuwiki
DWD Wetterwarnungen im DokuWiki
Liesst die DWD Wetterwarnungen und bereitet sie ein bisschen auf.
Benötigt:
- curl
- tidy
- bash >= 4
- DokuWiki-Plugin: include (falls es auf eine bestehenden Seite engebunden werden soll)
Als Parameter muss der passende Code übergeben werden, den man auf der DWD Seite ermittlen kann, z.B. COX, BAX, KUX, etc. Die Varialbe HOST muss nur dann gesetzt werden wenn die Datei auf einen anderen Server übertragen werden soll.
#!/bin/bash CODE=$1 HOST="server" # auskommentieren wenn kein SCP gewünscht wird REMOTE="/var/www/dokuwiki/data/pages/dwd_${CODE,,}.txt" FILE="/tmp/dwd_${CODE}.txt" DWD_URL="http://www.dwd.de/dyn/app/ws/html/reports/${CODE}_warning_de.html" DWD_IMG="http://www.dwd.de/dyn/app/ws/maps/${CODE}_timeline.png" old_IFS=$IFS IFS=$'\n' t=( $(curl -q $DWD_URL 2>/dev/null | tidy -q -raw -wrap 200 2>/dev/null | grep ebp_ws_warning_content -A 1 | grep "<p>" | sed "s/<p>//;s/<\/p>//") ) c=( $(curl -q $DWD_URL 2>/dev/null | tidy -q 2>/dev/null | grep app_ws_warning_content_text -A1 | grep color | cut -d '"' -f 2 | cut -d " " -f 2) ) IFS=$old_IFS x=${#c[@]} rm -f $FILE i=0 for x in "${c[@]}" do echo "|@"$x":"${t[i]}"|" >> $FILE let i=i+1 done if [ -f $FILE ]; then echo "|{{"$DWD_IMG"?nolink|}}|" >> $FILE else echo "|Keine Wetterwarnungen vorhanden|" >> $FILE fi echo "|`date`|" >> $FILE if [ "X$HOST" = "X" ]; then cp $FILE $REMOTE else scp -q $FILE server:$REMOTE fi
Im DokuWiki wird das dann so auf einer Seite eingebunden:
{{page>dwd_cox}}
Dabei ist der Teil dwd_ fix und cox entspricht dem Code. Das Ergebnis sieht dann z.B. so aus:
Dann das Script noch per Cron nach Wunsch laufen lassen.
*/15 * * * * root /usr/local/wetter/dwd.sh COX */15 * * * * root /usr/local/wetter/dwd.sh BAX
Mehrere Gebiete zusammenfassen
Baut auf das „warp“-Plugin und muss von Hand angepasst werden. Wenn keine Warnungen vorliegen wird auch nichts angezeigt.
#!/bin/sh HOST="server" # auskommentieren wenn kein SCP gewünscht wird REMOTE="/var/www/dokuwiki/data/pages/dwd.txt" FILE="/tmp/dwd.txt" S=0 # eignetliche Sctiptaufrufe für die Gebiete /usr/local/wetter/dwd2.sh COX /usr/local/wetter/dwd2.sh BAX # File generieren grep -q "dwd.de" /var/www/dokuwiki/data/pages/dwd_* if [ $? ]; then TEXT=" <WRAP box 725px> **DWD Wetterwarnungen** \\\\\\\\ Coburg {{page>dwd_cox&inline}} Bamberg {{page>dwd_bax&inline}} </WRAP> " else TEXT="" fi echo $TEXT > $FILE # File bereitstellen if [ "X$HOST" = "X" ]; then cp $FILE $REMOTE else scp -q $FILE server:$REMOTE fi
Im DokuWiki wird das dann so auf einer Seite eingebunden:
{{page>dwd}}
Das Ergebnis sieht so aus:
dwd_wetterwarnungen_im_dokuwiki.txt · Zuletzt geändert: 2017/03/17 11:37 von 127.0.0.1