Show unicode characters for forecast, remove plus

Show unicode characters for forecast instead of an emoji.
Remove the plus sign for positive degrees.
Show city, region instead of city, country
This commit is contained in:
Hugo Licon 2020-07-13 22:02:47 -06:00
parent 107d7ab440
commit 304dd700c9

View file

@ -3,11 +3,18 @@
fahrenheit=$1 fahrenheit=$1
weather_information() load_request_params()
{
city=$(curl -s https://ipinfo.io/city 2> /dev/null)
region=$(curl -s https://ipinfo.io/region 2> /dev/null)
}
fetch_weather_information()
{ {
display_weather=$1 display_weather=$1
# it gets the weather condition (%c), the temperature (%t), and the location (%l) # it gets the weather condition textual name (%C), the temperature (%t), and the location (%l)
curl -sL curl wttr.in\?format="+%c+%t+%l$display_weather" curl -sL curl wttr.in\?format="+%C+%t$display_weather"
} }
#get weather display #get weather display
@ -18,14 +25,38 @@ display_weather()
else else
display_weather='&m' # for metric system display_weather='&m' # for metric system
fi fi
echo $(weather_information $display_weather) weather_information=$(fetch_weather_information $display_weather)
weather_condition=$(echo $weather_information | awk '{print $1;}') # Sunny, Snow, etc
temperature=$(echo $weather_information | awk '{print $2;}') # +31°C, -3°F, etc
unicode=$(forecast_unicode $weather_condition)
echo "$unicode ${temperature/+/}" # remove the plus sign to the temperature
}
forecast_unicode()
{
weather_condition=$1
if [[ $weather_condition =~ 'Snow' ]]; then
echo '❄ '
elif [[ (($weather_condition =~ 'Rain') || ($weather_condition =~ 'Shower')) ]]; then
echo '☂ '
elif [[ (($weather_condition =~ 'Overcast') || ($weather_condition =~ 'Cloud')) ]]; then
echo '☁ '
elif [[ $weather_condition = 'NA' ]]; then
echo ''
else
echo '☀ '
fi
} }
main() main()
{ {
load_request_params
# process should be cancelled when session is killed # process should be cancelled when session is killed
if ping -q -c 1 -W 1 ipinfo.io &>/dev/null; then if ping -q -c 1 -W 1 ipinfo.io &>/dev/null; then
echo "$(display_weather)" echo "$(display_weather) $city, $region"
else else
echo "Location Unavailable" echo "Location Unavailable"
fi fi