From b5cc10a0ccb59cc677dff3cb6bdba06a101ec295 Mon Sep 17 00:00:00 2001 From: c0dev0id Date: Sun, 24 Dec 2023 11:11:13 +0100 Subject: [PATCH] change weather api --- start.sh | 34 +++++++++++++++++++++++++++++----- 1 file changed, 29 insertions(+), 5 deletions(-) diff --git a/start.sh b/start.sh index 1062985..b6b4a5d 100755 --- a/start.sh +++ b/start.sh @@ -162,10 +162,34 @@ usage() { # $1 loc weather() { - l=$1 - [ -z "$l" ] \ - && l=heidelberg - say "$(curl -s "https://wttr.in/$l?lang=de&format=%l:+%t+%C+%w+%h+Regen")" + param=$1 + + [ -z $param ] \ + && param=Heidelberg,DE + + echo "$param" | fgrep -q "," \ + || param="$param,DE" + + + DATA=$(curl -s "https://api.openweathermap.org/data/2.5/weather?q=$param&lang=de&units=metric&appid=a4c6e6d6beba2ff733ed81b7e2cac530") + #DATA=$(cat test.json) + + RESPONSE=$(echo "$DATA" \ + | jq -rc '.name,[.main.temp, .weather[].description][], .main.humidity, .wind.speed' 2> /dev/null \ + | awk ' \ + NR == 1 { printf("Wetter in %s: ", $0) } \ + NR == 2 { printf("%.0d°C, ", $0) } \ + NR == 3 { printf("%s", $0) } \ + NR == 4 { printf(" (%d%%), ", $0) } \ + NR == 5 { printf("Wind: %.0dkm/h", $0) } \ + ') + + case "$RESPONSE" in + *null:*) RESPONSE="$param konnte nicht gefunden werden. Usage: !wetter [,]" + esac + + say "$RESPONSE" + } @@ -225,7 +249,7 @@ do # character set for safety reasons. ARG=$(echo "$line" \ | tr '[:upper:]' '[:lower:]' \ - | sed -n 's|.*![a-z]* \([a-zA-Z0-9\-_+]*\).*|\1|p') + | sed -n 's|.*![a-z]* \([a-zA-Z0-9,\-_+]*\).*|\1|p') # We call it gummipunkte now. KARMA=$(echo "$line" \