42 lines
1.5 KiB
Bash
Executable file
42 lines
1.5 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
wttr_cache="${HOME}/.cache/wttr.json"
|
|
|
|
if [[ ! $(find "${wttr_cache}" -cmin -60 -print 2>/dev/null) ]]; then
|
|
if ! ping -w 15 -c 1 wttr.in;then
|
|
exit
|
|
fi
|
|
wttr_json=$(curl --silent wttr.in/Eugene?format=j1)
|
|
if [ "" != "${wttr_json}" ]; then
|
|
echo "${wttr_json}" | tee "${wttr_cache}"
|
|
fi
|
|
fi
|
|
|
|
condition="$(jq -r '.current_condition[0].weatherDesc[0].value' ${wttr_cache})"
|
|
condition_code="$(jq -r '.current_condition[0].weatherCode' ${wttr_cache})"
|
|
current_temp="$(jq -r '.current_condition[0].temp_F' ${wttr_cache})"
|
|
feels_temp="$(jq -r '.current_condition[0].FeelsLikeF' ${wttr_cache})"
|
|
min_temp="$(jq -r '.weather[0].mintempF' ${wttr_cache})"
|
|
max_temp="$(jq -r '.weather[0].maxtempF' ${wttr_cache})"
|
|
humidity="$(jq -r '.current_condition[0].humidity' ${wttr_cache})"
|
|
updated="$(date -r ${wttr_cache} '+%Y-%m-%d, %H:%M')"
|
|
|
|
case "${condition_code}" in
|
|
113)
|
|
""
|
|
;;
|
|
116|119|122|143)
|
|
condition_icon=""
|
|
;;
|
|
179|227|230)
|
|
condition_icon=""
|
|
;;
|
|
248|260)
|
|
condition_icon="▒"
|
|
;;
|
|
176|182|185|200|263|266|281|284|293|296|299|302|305|308|311)
|
|
condition_icon=""
|
|
;;
|
|
esac
|
|
|
|
jq -n --arg condition "${condition}" --arg current_temp "${current_temp}" --arg feels_temp "${feels_temp}" --arg min_temp "${min_temp}" --arg max_temp "${max_temp}" --arg humidity "${humidity}" --arg icon "${condition_icon}" --arg updated "${updated}" '{condition: $condition,current_temp: $current_temp,feels_temp: $feels_temp,min_temp: $min_temp,max_temp: $max_temp,humidity: $humidity,icon: $icon,updated: $updated}'
|