DWD Wetterwarnungen im DokuWiki

Liesst die DWD Wetterwarnungen und bereitet sie ein bisschen auf.

Benötigt:

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: