nixos-config/modules/home-manager/ricing/hyprland/eww/scripts/weathercopy.sh
2024-07-12 18:19:30 +09:00

154 lines
2.9 KiB
Bash

#!/bin/sh
# Rename This To weather.sh and add your api key
encode_to_url_format() {
echo "$1" | sed 's/ /%20/g'
}
check_if_empty() {
[[ -z "$1" ]] && echo "0" || echo "$1"
}
KEY=""
CITY="New Delhi"
CITY=$(encode_to_url_format "$CITY")
WEATHER=$(curl -sf "api.openweathermap.org/data/2.5/weather?q=$CITY&appid=$KEY&units=metric")
WEATHER_DESC=$(echo $WEATHER | jq -r ".weather[0].main")
WEATHER_TEMP=$(echo $WEATHER | jq ".main.temp" | cut -d "." -f 1)
WEATHER_ICON_CODE=$(echo "$WEATHER" | jq -r ".weather[].icon" | head -1)
WEATHER_FEELS_LIKE=$(echo $WEATHER | jq ".main.feels_like" | cut -d "." -f 1)
WEATHER_HUMIDITY=$(echo $WEATHER | jq ".main.humidity" | cut -d "." -f 1)
WEATHER_ICON=""
WEATHER_IMAGE=""
WEATHER_HEX=""
case $WEATHER_ICON_CODE in
"01d")
WEATHER_ICON=" "
WEATHER_IMAGE="clear-sky"
WEATHER_HEX="#ffd86b"
;;
"01n")
WEATHER_ICON=" "
WEATHER_IMAGE="clear-night"
WEATHER_HEX="#fcdcf6"
;;
"02d")
WEATHER_ICON=" "
WEATHER_IMAGE="clouds"
WEATHER_HEX="#adadff"
;;
"02n")
WEATHER_ICON=" "
WEATHER_HEX="#adadff"
WEATHER_IMAGE="clouds-night"
;;
"03d")
WEATHER_ICON=" "
WEATHER_IMAGE="clouds"
WEATHER_HEX="#adadff"
;;
"03n")
WEATHER_ICON=" "
WEATHER_IMAGE="clouds-night"
WEATHER_HEX="#adadff"
;;
"04d")
WEATHER_ICON=" "
WEATHER_IMAGE="clouds"
WEATHER_HEX="#adadff"
;;
"04n")
WEATHER_ICON=" "
WEATHER_IMAGE="clouds-night"
WEATHER_HEX="#adadff"
;;
"09d")
WEATHER_ICON=""
WEATHER_IMAGE="clouds-showers-scattered"
WEATHER_HEX="#6b95ff"
;;
"09n")
WEATHER_ICON=""
WEATHER_IMAGE="clouds-showers-scattered"
WEATHER_HEX="#6b95ff"
;;
"10d")
WEATHER_ICON=""
WEATHER_IMAGE="clouds-showers"
WEATHER_HEX="#6b95ff"
;;
"10n")
WEATHER_ICON=""
WEATHER_IMAGE="clouds-showers"
WEATHER_HEX="#6b95ff"
;;
"11d")
WEATHER_ICON=""
WEATHER_IMAGE="stroms"
WEATHER_HEX="#ffeb57"
;;
"11n")
WEATHER_ICON=""
WEATHER_IMAGE="stroms"
WEATHER_HEX="#ffeb57"
;;
"13d")
WEATHER_ICON=" "
WEATHER_IMAGE="snow"
WEATHER_HEX="#e3e6fc"
;;
"13n")
WEATHER_ICON=" "
WEATHER_IMAGE="snow"
WEATHER_HEX="#e3e6fc"
;;
"50d")
WEATHER_ICON=" "
WEATHER_IMAGE="fog"
WEATHER_HEX="#84afdb"
;;
"50n")
WEATHER_IMAGE="fog"
WEATHER_ICON=" "
WEATHER_HEX="#84afdb"
;;
*)
WEATHER_ICON=" "
WEATHER_IMAGE="clouds"
WEATHER_HEX="#adadff"
;;
esac
case $1 in
"current_temp")
check_if_empty $WEATHER_TEMP
;;
"current_temp_fahrenheit")
WEATHER_TEMP=$((($WEATHER_TEMP * 9 / 5) + 32))
check_if_empty $WEATHER_TEMP
;;
"feels_like")
check_if_empty $WEATHER_FEELS_LIKE
;;
"humidity")
check_if_empty $WEATHER_HUMIDITY
;;
"weather_desc")
[[ -z $WEATHER_DESC ]] && echo "Not Available." || echo "$WEATHER_DESC"
;;
"icon")
echo $WEATHER_ICON
;;
"hex")
echo $WEATHER_HEX
;;
"image")
echo $WEATHER_IMAGE
;;
"full")
echo $WEATHER
;;
esac