164 lines
3.9 KiB
Bash
Executable File
164 lines
3.9 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
cache="$HOME/.cache/eww/weather"
|
|
cache_status="$cache/status"
|
|
cache_temperature="$cache/temperature"
|
|
cache_gradient_1="$cache/gradient_1"
|
|
cache_gradient_2="$cache/gradient_2"
|
|
cache_icon="$cache/icon"
|
|
cache_city="$cache/city"
|
|
cache_country="$cache/country"
|
|
|
|
[ ! -d $cache ] && mkdir $cache
|
|
|
|
key="1f6e449790b8cf73a3cab8d5715483f8"
|
|
id="6941099"
|
|
unit="metric" # Available options : 'metric' or 'imperial'
|
|
|
|
data () {
|
|
weather=`curl -sf "http://api.openweathermap.org/data/2.5/weather?APPID=$key&id=$id&units=$unit"`
|
|
|
|
if [ ! -z "$weather" ]; then
|
|
temperature=$(echo "$weather" | jq ".main.temp" | cut -d "." -f 1)
|
|
city=$(echo "$weather" | jq -r ".name" | head -1)
|
|
country=$(echo "$weather" | jq -r ".sys.country" | head -1)
|
|
icon_code=$(echo "$weather" | jq -r ".weather[].icon" | head -1)
|
|
description=$(echo "$weather" | jq -r ".weather[].description" | head -1 | sed -e "s/\b\(.\)/\u\1/g")
|
|
|
|
if [ "$icon_code" == "50d" ]; then
|
|
icon=""
|
|
gradient_1="#ece3b1"
|
|
gradient_2="#c9d4ff"
|
|
elif [ "$icon_code" == "50n" ]; then
|
|
icon=""
|
|
gradient_1="#ceace8"
|
|
gradient_2="#c9d4ff"
|
|
elif [ "$icon_code" == "01d" ]; then
|
|
icon=""
|
|
gradient_1="#ece3b1"
|
|
gradient_2="#ece3b1"
|
|
elif [ "$icon_code" == "01n" ]; then
|
|
icon=""
|
|
gradient_1="#ceace8"
|
|
gradient_2="#ceace8"
|
|
elif [ "$icon_code" == "02d" ]; then
|
|
icon=""
|
|
gradient_1="#ece3b1"
|
|
gradient_2="#a3cbe7"
|
|
elif [ "$icon_code" == "02n" ]; then
|
|
icon=""
|
|
gradient_1="#ceace8"
|
|
gradient_2="#a3cbe7"
|
|
elif [ "$icon_code" == "03d" ]; then
|
|
icon=""
|
|
gradient_1="#ece3b1"
|
|
gradient_2="#a3cbe7"
|
|
elif [ "$icon_code" == "03n" ]; then
|
|
icon=""
|
|
gradient_1="#ceace8"
|
|
gradient_2="#a3cbe7"
|
|
elif [ "$icon_code" == "04d" ]; then
|
|
icon=""
|
|
gradient_1="#a3cbe7"
|
|
gradient_2="#ece3b1"
|
|
elif [ "$icon_code" == "04n" ]; then
|
|
icon=""
|
|
gradient_1="#a3cbe7"
|
|
gradient_2="#ceace8"
|
|
elif [ "$icon_code" == "09d" ]; then
|
|
icon=""
|
|
gradient_1="#b4e3ad"
|
|
gradient_2="#ece3b1"
|
|
elif [ "$icon_code" == "09n" ]; then
|
|
icon=""
|
|
gradient_1="#b4e3ad"
|
|
gradient_2="#ceace8"
|
|
elif [ "$icon_code" == "10d" ]; then
|
|
icon=""
|
|
gradient_1="#ffdede"
|
|
gradient_2="#ece3b1"
|
|
elif [ "$icon_code" == "10n" ]; then
|
|
icon=""
|
|
gradient_1="#ffdede"
|
|
gradient_2="#ceace8"
|
|
elif [ "$icon_code" == "11d" ]; then
|
|
icon=""
|
|
gradient_1="#e5a3a1"
|
|
gradient_2="#ece3b1"
|
|
elif [ "$icon_code" == "11n" ]; then
|
|
icon=""
|
|
gradient_1="#e5a3a1"
|
|
gradient_2="#ceace8"
|
|
elif [ "$icon_code" == "13d" ]; then
|
|
icon=""
|
|
gradient_1="#c9d4ff"
|
|
gradient_2="#c9d4ff"
|
|
elif [ "$icon_code" == "13n" ]; then
|
|
icon=""
|
|
gradient_1="#c9d4ff"
|
|
gradient_2="#c9d4ff"
|
|
elif [ "$icon_code" == "40d" ]; then
|
|
icon="煮"
|
|
gradient_1="#a3cbe7"
|
|
gradient_2="#a3cbe7"
|
|
elif [ "$icon_code" == "40n" ]; then
|
|
icon="煮"
|
|
gradient_1="#a3cbe7"
|
|
gradient_2="#a3cbe7"
|
|
else
|
|
icon=""
|
|
gradient_1="#b4e3ad"
|
|
gradient_2="#a3cbe7"
|
|
fi
|
|
|
|
echo "$icon" > $cache_icon
|
|
echo "$city" > $cache_city
|
|
echo "$country" > $cache_country
|
|
echo "$description" > $cache_status
|
|
echo "$temperature""°C" > $cache_temperature
|
|
echo "$gradient_1" > $cache_gradient_1
|
|
echo "$gradient_2" > $cache_gradient_2
|
|
else
|
|
echo "-" > $cache_city
|
|
echo "-" > $cache_country
|
|
echo "Weather Unavailable" > $cache_status
|
|
echo "" > $cache_icon
|
|
echo "-" > $cache_temperature
|
|
echo "#b4e3ad" > $cache_gradient_1
|
|
echo "#a3cbe7" > $cache_gradient_2
|
|
fi
|
|
}
|
|
|
|
case $1 in
|
|
data)
|
|
data
|
|
;;
|
|
icon)
|
|
data &
|
|
cat $cache_icon
|
|
;;
|
|
color-1)
|
|
data &
|
|
cat $cache_gradient_1
|
|
;;
|
|
color-2)
|
|
data &
|
|
cat $cache_gradient_2
|
|
;;
|
|
city)
|
|
data &
|
|
cat $cache_city
|
|
;;
|
|
country)
|
|
data &
|
|
cat $cache_country
|
|
;;
|
|
temperature)
|
|
data &
|
|
cat $cache_temperature
|
|
;;
|
|
status)
|
|
data &
|
|
cat $cache_status
|
|
;;
|
|
esac |