#!/bin/sh
# wetter.sh by Frank "yogan" Blendinger (fb@intoxicatedmind.net)
#
# Usage: wetter.sh PLZ 		- aktuelle Wetterlage
#        vorschau.sh PLZ 	- Wettervorhersage fuer die naechsten drei Tage
#
# Das Skript entscheidet anhand seines Names, ob es das aktuelle Wetter oder
# eine Vorhersage ausgeben soll. Es empfiehlt sich eine Symlink "vorschau.sh"
# auf "wetter.sh" anzulegen.

if [ $# -lt 1 ] ; then
	#echo "Usage: `basename $0` [-v] PLZ"
	echo "Postleitzahl angeben."
	exit 0		# to make TCL happy
fi

VERBOSE=0
while getopts ":v" Option
do
	case $Option in
		v ) VERBOSE=1;
#		* ) echo "Unimplemented option chosen.";;   # DEFAULT
	esac
done

shift $(($OPTIND - 1))
# Decrements the argument pointer so it points to next argument.
# $1 now references the first non option item supplied on the command line if
# one exists.

SITESRC=`wget -O - "http://de.weather.com/weather/local/${1}?x=0&y=0" 2> /dev/null`
SITE=`echo "$SITESRC" | lynx -width 300 -dump -stdin`

ORT=`echo "$SITE" | grep -A1 "Aktuelle Wetterlage" | tail -1 \
	| sed -e 's/.*\[blank\.gif\] *//' | sed -e 's/, Deutschland//'`
	
if [ "$ORT" == "" ] ; then
	echo "Nichts gefunden. Korrekte Postleitzahl angeben, du Stinker!"
	exit 0
fi
	
if [ "`basename $0`" == "wetter.sh" ] ; then
	MESSORT=`echo "$SITE" | grep -A2 "Aktuelle Wetterlage" | tail -1 | sed -e 's/ *//' \
		| sed -e 's/, Deutschland//' | sed -e 's/berichtet\..*/berichtet/'`
	ZEIT=`echo "$SITE" | grep -A2 "Aktuelle Wetterlage" | tail -1 \
		| sed -e 's/.*berichtet\. *//' | sed -e 's/ Local Time.*//'`
	WETTER=`echo "$SITE" | grep "°C" | head -1 | sed -e 's/°C/ °C/' | sed -e 's/^ *//' | tr -s ' '`
	GEF_TEMP=`echo "$SITE" | grep "Gefühlte Temp\." | sed -e 's/°C/ °C/' \
		| sed -e 's/Gefühlte/gefühlte/' | sed -e 's/^ *//' | tr -s ' '`
	WIND=`echo "$SITE" | grep "Wind:" | sed -e 's/^ *//' | tr -s ' '`
	FEUCHTE=`echo "$SITE" | grep "Luftfeuchtigkeit" | sed -e 's/^ *//' | tr -s ' '`
	SICHT=`echo "$SITE" | grep "Sicht:" | sed -e 's/^ *//' | tr -s ' '`
	LUFTDRUCK=`echo "$SITE" | grep "Luftdruck:" | sed -e 's/^ *//' | tr -s ' '`
	UV="UV-Index: `echo "$SITE" | grep -A1 "UV-Index" | head -2 | tail -1 | sed -e 's/ //g'` (`\
		echo "$SITE" | grep -A2 "UV-Index" | head -3 | tail -1 | sed -e 's/ //g'`)"
	if [ $VERBOSE -eq 0 ] ; then
		echo "Aktuelles Wetter für $ORT (${MESSORT}): ${WETTER}, ${GEF_TEMP}."
	else
		echo "Aktuelles Wetter für $ORT (${MESSORT}): ${WETTER}, ${GEF_TEMP}, ${WIND} "\
			"${FEUCHTE}, ${SICHT}, ${LUFTDRUCK}, ${UV} (Stand: ${ZEIT})."
	fi
fi

if [ "`basename $0`" == "vorschau.sh" ] ; then
	ZEIT=`echo "$SITE" | grep "Neueste Aktualisierung am" | sed -e 's/^.*am: //' | sed -e 's/Uhr .*$/Uhr/'`
	VORSCHAU=`echo "$SITESRC" | sed -s 's/ALT=\".*\"//' | sed -s 's/\(..\)<\/A><BR>/<\/A>\1\. /'\
		| lynx -width 300 -dump -stdin | sed -s 's/  \[.*\]Heute\./ Heute/' \
		| grep "°C" | grep "blank\.gif" | head -5 | tail -4 | sed -e 's/\[[a-z0-9]\+\.gif[a-z0-9?]*\]//g' \
		| sed -e 's/°C / °C (Max.) /' | sed -e 's/°C$/ °C (Min.)/' | sed -e 's/            //' \
		| sed -e 's/       /  /g'`
	echo "Wettervorhersage für ${ORT} (Stand: ${ZEIT}):"
	echo "$VORSCHAU"
fi

