44 lines
1.4 KiB
Bash
44 lines
1.4 KiB
Bash
#!/usr/bin/env bash
|
|
|
|
command -v jq >/dev/null 2>&1 || { echo >&2 "Program 'jq' required but it is not installed.
|
|
Aborting."; exit 1; }
|
|
command -v wget >/dev/null 2>&1 || { echo >&2 "Program 'wget' required but is not installed.
|
|
Aborting."; exit 1; }
|
|
|
|
# To use this script you need to create an API key here https://home.openweathermap.org
|
|
# You need to put your Open Weather APIKEY here:
|
|
APIKEY="keykey"
|
|
# find your City ID here: https://openweathermap.org/
|
|
# search for your city and copy the ID from the URL inside the browser.
|
|
CITY_ID="idid"
|
|
URL="http://api.openweathermap.org/data/2.5/weather?id=${CITY_ID}&units=metric&APPID=${APIKEY}"
|
|
|
|
WEATHER_RESPONSE=$(wget -qO- "${URL}")
|
|
|
|
WEATHER_CONDITION=$(echo $WEATHER_RESPONSE | jq '.weather[0].main' | sed 's/"//g')
|
|
WEATHER_TEMP=$(echo $WEATHER_RESPONSE | jq '.main.temp')
|
|
WIND_DIR=$( echo "$WEATHER_RESPONSE" | jq '.wind.deg')
|
|
WIND_SPEED=$( echo "$WEATHER_RESPONSE" | jq '.wind.speed')
|
|
|
|
WIND_SPEED=$(awk "BEGIN {print 60*60*$WIND_SPEED/1000}")
|
|
WIND_DIR=$(awk "BEGIN {print int(($WIND_DIR % 360)/22.5)}")
|
|
DIR_ARRAY=( N NNE NE ENE E ESE SE SSE S SSW SW WSW W WNW NW NNW N )
|
|
WIND_DIR=${DIR_ARRAY[WIND_DIR]}
|
|
|
|
case $WEATHER_CONDITION in
|
|
'Clouds')
|
|
WEATHER_ICON=""
|
|
;;
|
|
'Rain')
|
|
WEATHER_ICON=""
|
|
;;
|
|
'Snow')
|
|
WEATHER_ICON=""
|
|
;;
|
|
*)
|
|
WEATHER_ICON=""
|
|
;;
|
|
esac
|
|
|
|
echo "${WEATHER_ICON} ${WEATHER_TEMP}°C: ${WIND_SPEED} km/h ${WIND_DIR}"
|