====== DWD Wetterwarnungen im DokuWiki ====== Liesst die [[http://www.dwd.de/bvbw/appmanager/bvbw/dwdwwwDesktop/?_nfpb=true&_pageLabel=_dwdwww_wetter_warnungen_warnungen&T92053gsbDocumentPath=BEA__Navigation%2FWetter__Warnungen%2FWarnungen.html__nnn%3Dtrue&lastPageLabel=dwdwww_wetter_warnungen|DWD Wetterwarnungen]] und bereitet sie ein bisschen auf. Benötigt: * curl * tidy * bash >= 4 * DokuWiki-Plugin: [[http://dokuwiki.org/plugin:include|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 "

" | sed "s/

//;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: {{::dwd.png?nolink|}} 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=" **DWD Wetterwarnungen** \\\\\\\\ Coburg {{page>dwd_cox&inline}} Bamberg {{page>dwd_bax&inline}} " 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: {{:dwdkombi.png.png|}}