#! /usr/local/bin/zsh # # this file: # https://dataswamp.org/~incal/sth/scripts/elem # # weather service: # https://github.com/chubin/wttr.in/blob/master/README.md # # script example run: # $ elem Uppsala # Uppsala -3C 86% →7km/h (1.9m/s) 1010hPa # {05:24 ↑06:08 12:52 ↓19:37 20:22} overcast [[ $# != 1 ]] && exit if [[ $1 == "help" ]]; then echo "weather in CITY. output: location temperature relative-humidity [precipitation] wind-direction/speed pressure dawn-sunrise-zenit-sunset-dusk summary" exit fi city=$1 windmsmark="WINDMS" wttr_url="https://wttr.in" opts="%l+%t+%h+%p+%w+($windmsmark)+%P+\{%D+↑%S+%z+↓%s+%d\}+%C" frmt="format=${opts}\n" wind_url="${wttr_url}/${city}?format=%w\n" wind=$(curl -s $wind_url) windonly=${wind//[^0-9]/} typeset -F1 windms=$(units "$windonly kilometers/hour" "meters/second" | awk '/\*/{ print $2 }') url="${wttr_url}/${city}?${frmt}" urlms=${url/$windmsmark/${windms}m/s} done=$(curl -s $urlms | sed -e ' s/ shower//; s/0.0mm //; s/\[0km\/h 0.00m\/s\] //; s/Clear/clear/; s/Drizzle/drizzle/; s/Fog/fog/; s/Freezing/freezing/; s/Haze/haze/; s/Heavy/heavy/; s/Light/light/; s/Mist/mist/; s/Moderate/moderate/; s/Overcast/overcast/; s/Partly/partly/; s/Patches/patches/; s/Patchy/patchy/; s/Rain/rain/; s/Shower/shower/; s/Snow/snow/; s/Sunny/sunny/; s/°//g') donenosecs=${done//:[0-5][0-9] / } final=${donenosecs//:[0-5][0-9]\}/\}} if [[ $final != '' && $final[1] != $'\n' ]]; then echo $final else echo "out of queries" fi