Files
dotfile/home/.config/bspwm/scripts/info_weather
T
2023-05-25 01:33:22 +05:45

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