diff options
Diffstat (limited to 'nws')
| -rwxr-xr-x | nws | 120 |
1 files changed, 120 insertions, 0 deletions
@@ -0,0 +1,120 @@ +#!/bin/bash + +source ~/.config/nws.conf + +colors() { + NOCOLOR='\033[0m' + RED='\033[0;31m' + GREEN='\033[0;32m' +} + +cleanup() { + rm -rf ~/.cache/.county_ids ~/.cache/.weather_forecast ~/.cache/.weather_alerts +} + +retrieve_counties() { + curl -s "https://api.weather.gov/zones?area=${state}" >> ~/.cache/.county_ids + colors + count=0 + length=$(echo $(jq '.features | length' ~/.cache/.county_ids) -1 | bc) + while [ $count -le $length ] + do + echo -e ${GREEN}County: ${NOCOLOR}$(jq '.features['$count'].properties.name' ~/.cache/.county_ids) + echo -e ${GREEN}Id: ${NOCOLOR}$(jq '.features['$count'].properties.id' ~/.cache/.county_ids) + echo + ((count++)) + done +} + + +get_location() { + cords=$(curl ipinfo.io/json | jq -r .loc) +} + +show_radar() { + mpv --loop-file=inf "https://radar.weather.gov/ridge/standard/${area1}_loop.gif" +} + +show_full_radar() { + mpv --loop-file=inf "https://radar.weather.gov/ridge/standard/CONUS_loop.gif" +} + +show_timing() { + mpv --loop-file=inf "https://www.weather.gov/images/${area2}/graphicast/image6.png" +} + +show_alerts() { + colors + curl -s "https://api.weather.gov/alerts/active/zone/${countyId}" >> ~/.cache/.weather_alerts + length=$(echo $(jq '.features | length' ~/.cache/.weather_alerts) -1 | bc) + count=0 + while [ $count -le $length ] + do + echo + echo + echo -------------------------------------------------------------------------------------------------------------------------------------------- + echo + echo -e ${GREEN}Alert: ${NOCOLOR}$(jq '.features['$count'].properties.headline' ~/.cache/.weather_alerts) + echo -e ${GREEN}Starts: ${NOCOLOR}$(jq '.features['$count'].properties.effective' ~/.cache/.weather_alerts) + echo -e ${GREEN}Ends: ${NOCOLOR}$(jq '.features['$count'].properties.expires' ~/.cache/.weather_alerts) + echo -e ${GREEN}Sent: ${NOCOLOR}$(jq '.features['$count'].properties.sent' ~/.cache/.weather_alerts) + echo -e ${GREEN}Severity: ${RED}$(jq '.features['$count'].properties.severity' ~/.cache/.weather_alerts) + echo -e ${NOCOLOR} + echo -e $(jq '.features['$count'].properties.parameters.NWSheadline' ~/.cache/.weather_alerts) + echo -e $(jq '.features['$count'].properties.description' ~/.cache/.weather_alerts) + echo -e $(jq '.features['$count'].properties.instruction' ~/.cache/.weather_alerts) + echo + echo -e ${GREEN}Affected areas: ${NOCOLOR}$(jq '.features['$count'].properties.areaDesc' ~/.cache/.weather_alerts) + echo -e ${GREEN}Wind: ${NOCOLOR}$(jq '.features['$count'].properties.windThreat' ~/.cache/.weather_alerts) + echo -e ${GREEN}Max Wind Gust: ${NOCOLOR}$(jq '.features['$count'].properties.maxWindGust' ~/.cache/.weather_alerts) + echo -e ${GREEN}Hail: ${NOCOLOR}$(jq '.features['$count'].properties.hailThreat' ~/.cache/.weather_alerts) + echo -e ${GREEN}Issued by $(jq '.features['$count'].properties.senderName' ~/.cache/.weather_alerts)${NOCOLOR} + + echo -------------------------------------------------------------------------------------------------------------------------------------------- + ((count++)) + done + echo + echo + ((length++)) # json needs count to start at zero, real amount needs one added + echo -e ${GREEN}Total alerts: $length${NOCOLOR} +} + +count_alerts() { + curl -s "https://api.weather.gov/alerts/active/zone/${countyId}" >> ~/.cache/.weather_alerts + length=$(jq '.features | length' ~/.cache/.weather_alerts) + echo $length +} + +show_spc() { + mpv --loop-file=inf "https://www.spc.noaa.gov/products/activity_loop.gif" +} + +get_forecast() { + get_location + curl $(curl https://api.weather.gov/points/$cords | jq -r .properties.forecast) >> ~/.cache/.weather_forecast + echo $(jq .properties.periods[0].name ~/.cache/.weather_forecast | sed 's/"//g'): + echo "" +} + +help() { + echo "tw" + echo " --full-radar: shows radar of entire US" + echo " --radar: shows local radar" + echo " --spc: shows storm predictions" + echo " --retrieve-counties: shows county ids" + echo " -f: shows local forecast" +} + +cleanup +case $1 in + "--full-radar") show_full_radar;; + '--radar') show_radar;; + '--spc') show_spc;; + '--retrieve-counties') retrieve_counties;; + '--ca') count_alerts;; + '-t') show_timing;; + '-a') show_alerts | less -R;; + '-f') get_forecast;; + '-h') help;; + "") help;; +esac |