dotfiles/cfg/eww/scripts/weather

203 lines
4.4 KiB
Bash
Executable file

#!/bin/sh
# go here to get api and documentation https://openweathermap.org/api
# Documentation for weather quote below
# https://openweathermap.org/weather-conditions#Weather-Condition-Codes-2
# Documentation of Icons to use for weather
# https://erikflowers.github.io/weather-icons/api-list.html
updateweather() {
[ -d /tmp/weather ] || mkdir /tmp/weather
KEY="30689c795a0e1db1afef08740a97c479"
ID="1185241"
UNIT="metric"
weat=$(curl -sf "https://api.openweathermap.org/data/2.5/weather?id="$ID"&appid="$KEY"&units="$UNIT"")
ID=$(echo "$weat" | jq -r ".weather[].id")
desc=""
icon=""
if [ "$ID" = 200 ]; then
desc="Thunderstorm With Light Rain"
icon=""
elif [ "$ID" = 201 ]; then
desc="Thunderstorm With Rain"
icon=""
elif [ "$ID" = 202 ]; then
desc="Thunderstorm With Heavy Rain"
icon=""
elif [ "$ID" = 210 ]; then
desc="Light Thunderstorm"
icon=""
elif [ "$ID" = 211 ]; then
desc="Thunderstorm"
icon=""
elif [ "$ID" = 212 ]; then
desc="Heavy Thunderstorm"
icon=""
elif [ "$ID" = 221 ]; then
desc="Ragged Thunderstorm"
icon=""
elif [ "$ID" = 230 ]; then
desc="Thunderstorm With Light Drizzle"
icon=""
elif [ "$ID" = 231 ]; then
desc="Thunderstorm With Drizzle"
icon=""
elif [ "$ID" = 232 ]; then
desc="Thunderstorm With Heavy Drizzle"
icon=""
elif [ "$ID" = 300 ]; then
desc="Light Intensity Drizzle"
icon=""
elif [ "$ID" = 301 ]; then
desc="Drizzle"
icon=""
elif [ "$ID" = 302 ]; then
desc="Heavy Intensity Drizzle"
icon=""
elif [ "$ID" = 310 ]; then
desc="Light Intensity Drizzle Rain"
icon=""
elif [ "$ID" = 311 ]; then
desc="Drizzle Rain"
icon=""
elif [ "$ID" = 312 ]; then
desc="Heavy Intensity Drizzle Rain"
icon=""
elif [ "$ID" = 313 ]; then
desc="Shower Rain And Drizzle"
icon=""
elif [ "$ID" = 314 ]; then
desc="Heavy Shower Rain And Drizzle"
icon=""
elif [ "$ID" = 321 ]; then
desc="Shower Drizzle"
icon=""
elif [ "$ID" = 500 ]; then
desc="Light Rain"
icon=""
elif [ "$ID" = 501 ]; then
desc="Moderate Rain"
icon=""
elif [ "$ID" = 502 ]; then
desc="Heavy Intensity Rain"
icon=""
elif [ "$ID" = 503 ]; then
desc="Very Heavy Rain"
icon=""
elif [ "$ID" = 504 ]; then
desc="Extreme Rain"
icon=""
elif [ "$ID" = 511 ]; then
desc="Freezing Rain"
icon=""
elif [ "$ID" = 520 ]; then
desc="Light Intensity Shower Rain"
icon=""
elif [ "$ID" = 521 ]; then
desc="Shower Rain"
icon=""
elif [ "$ID" = 522 ]; then
desc="Heavy Intensity Shower Rain"
icon=""
elif [ "$ID" = 531 ]; then
desc="Ragged Shower Rain"
icon=""
elif [ "$ID" = 600 ]; then
desc="Light Snow"
icon=""
elif [ "$ID" = 601 ]; then
desc="Snow"
icon=""
elif [ "$ID" = 602 ]; then
desc="Heavy Snow"
icon=""
elif [ "$ID" = 611 ]; then
desc="Sleet"
icon=""
elif [ "$ID" = 612 ]; then
desc="Light Shower Sleet"
icon=""
elif [ "$ID" = 613 ]; then
desc="Shower Sleet"
icon=""
elif [ "$ID" = 615 ]; then
desc="Light Rain And Snow"
icon=""
elif [ "$ID" = 616 ]; then
desc="Rain And Snow"
icon=""
elif [ "$ID" = 620 ]; then
desc="Light Shower Snow"
icon=""
elif [ "$ID" = 621 ]; then
desc="Shower Snow"
icon=""
elif [ "$ID" = 622 ]; then
desc="Heavy Shower Snow"
icon=""
elif [ "$ID" = 701 ]; then
desc="Mist"
icon=""
elif [ "$ID" = 711 ]; then
desc="Smoke"
icon=""
elif [ "$ID" = 721 ]; then
desc="Haze"
icon=""
elif [ "$ID" = 731 ]; then
desc="Sand/ Dust Whirls"
icon=""
elif [ "$ID" = 741 ]; then
desc="Fog"
icon=""
elif [ "$ID" = 751 ]; then
desc="Sand"
icon=""
elif [ "$ID" = 761 ]; then
desc="Dust"
icon=""
elif [ "$ID" = 762 ]; then
desc="Volcanic Ash"
icon=""
elif [ "$ID" = 771 ]; then
desc="Squalls"
icon=""
elif [ "$ID" = 781 ]; then
desc="Tornado"
icon=""
elif [ "$ID" = 800 ]; then
desc="Clear Sky"
icon=""
elif [ "$ID" = 801 ]; then
desc="Few Clouds"
icon=""
elif [ "$ID" = 802 ]; then
desc="Scattered Clouds"
icon=""
elif [ "$ID" = 803 ]; then
desc="Broken Clouds"
icon=""
elif [ "$ID" = 804 ]; then
desc="Overcast Clouds"
icon=""
fi
if [ "$desc" = "" ]; then
desc="N/A"
icon=""
fi
echo "$weat" | jq ".main.temp" | cut -d "." -f 1 > /tmp/weather/temp
echo "$desc" > /tmp/weather/description
echo "$icon" > /tmp/weather/icon
}
case $1 in
--icon) cat /tmp/weather/icon ;;
--desc) cat /tmp/weather/description ;;
--temp) cat /tmp/weather/temp ;;
*) updateweather ;;
esac