206 lines
		
	
	
		
			No EOL
		
	
	
		
			4.8 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			206 lines
		
	
	
		
			No EOL
		
	
	
		
			4.8 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
#!/bin/sh
 | 
						|
 | 
						|
# Show a Doppler RADAR of an American user's preferred location.
 | 
						|
 | 
						|
secs=600 # Download a new doppler radar if one hasn't been downloaded in $secs seconds.
 | 
						|
radarloc="${XDG_CACHE_HOME:-$HOME/.cache}/radar"
 | 
						|
doppler="${XDG_CACHE_HOME:-$HOME/.cache}/doppler.gif"
 | 
						|
 | 
						|
pickloc() { chosen="$(echo "Northeast
 | 
						|
Southeast
 | 
						|
PacNorthWest
 | 
						|
PacSouthWest
 | 
						|
UpperMissVly
 | 
						|
SouthMissVly
 | 
						|
SouthPlains
 | 
						|
NorthRockies
 | 
						|
SouthRockies
 | 
						|
Alaska
 | 
						|
Carib
 | 
						|
Hawaii
 | 
						|
CentGrLakes
 | 
						|
Conus-Large
 | 
						|
KABR: Aberdeen, SD
 | 
						|
KBIS: Bismarck, ND
 | 
						|
KFTG: Denver/Boulder, CO
 | 
						|
KDMX: Des Moines, IA
 | 
						|
KDTX: Detroit, MI
 | 
						|
KDDC: Dodge City, KS
 | 
						|
KDLH: Duluth, MN
 | 
						|
KCYS: Cheyenne, WY
 | 
						|
KLOT: Chicago, IL
 | 
						|
KGLD: Goodland, KS
 | 
						|
KUEX: Hastings, NE
 | 
						|
KGJX: Grand Junction, CO
 | 
						|
KGRR: Grand Rapids, MI
 | 
						|
KMVX: Fargo/Grand Forks, ND
 | 
						|
KGRB: Green Bay, WI
 | 
						|
KIND: Indianapolis, IN
 | 
						|
KJKL: Jackson, KY
 | 
						|
KARX: La Crosse, WI
 | 
						|
KILX: Lincoln/Central Illinois, IL
 | 
						|
KLVX: Louisville, KY
 | 
						|
KMQT: Marquette
 | 
						|
KMKX: Milwaukee, WI
 | 
						|
KMPX: Minneapolis, MN
 | 
						|
KAPX: Gaylord/Alpena, MI
 | 
						|
KLNX: North Platte, NE
 | 
						|
KIWX: N. Webster/Northern, IN
 | 
						|
KOAX: Omaha, NE
 | 
						|
KPAH: Paducah, KY
 | 
						|
KEAX: Pleasant Hill, MO
 | 
						|
KPUX: Pueblo, CO
 | 
						|
KDVN: Quad Cities, IA
 | 
						|
KUDX: Rapid City, SD
 | 
						|
KRIW: Riverton, WY
 | 
						|
KSGF: Springfield, MO
 | 
						|
KLSX: St. LOUIS, MO
 | 
						|
KFSD: Sioux Falls, IA
 | 
						|
KTWX: Topeka, KS
 | 
						|
KICT: Wichita, KS
 | 
						|
KVWX: Paducah, KY
 | 
						|
ICAO: Responsible Wfo
 | 
						|
KLTX: WILMINGTON, NC
 | 
						|
KCCX: State College/Central, PA
 | 
						|
KLWX: Sterling, VA
 | 
						|
KFCX: Blacksburg/Roanoke, VA
 | 
						|
KRAX: Raleigh/Durham, NC
 | 
						|
KGYX: Portland, ME
 | 
						|
KDIX: Mt Holly/Philadelphia, PA
 | 
						|
KPBZ: Pittsburgh, PA
 | 
						|
KAKQ: Wakefield, VA
 | 
						|
KMHX: Morehead City, NC
 | 
						|
KGSP: Greer/Greenville/Sprtbg, SC
 | 
						|
KILN: Wilmington/Cincinnati, OH
 | 
						|
KCLE: Cleveland, OH
 | 
						|
KCAE: Columbia, SC
 | 
						|
KBGM: Binghamton, NY
 | 
						|
KENX: Albany, NY
 | 
						|
KBUF: Buffalo, NY
 | 
						|
KCXX: Burlington, VT
 | 
						|
KCBW: Caribou, ME
 | 
						|
KBOX: Boston /Taunton, MA
 | 
						|
KOKX: New York City, NY
 | 
						|
KCLX: Charleston, SC
 | 
						|
KRLX: Charleston, WV
 | 
						|
ICAO: Responsible WFO
 | 
						|
KBRO: Brownsville, TX
 | 
						|
KABX: Albuquerque, NM
 | 
						|
KAMA: Amarillo, TX
 | 
						|
KFFC: Peachtree City/Atlanta, GA
 | 
						|
KEWX: Austin/Sanantonio, TX
 | 
						|
KBMX: Birmingham, AL
 | 
						|
KCRP: Corpus Christi, TX
 | 
						|
KFWS: Dallas / Ft. Worth, TX
 | 
						|
KEPZ: El Paso, TX
 | 
						|
KHGX: Houston/ Galveston, TX
 | 
						|
KJAX: Jacksonville, FL
 | 
						|
KBYX: Key West, FL
 | 
						|
KMRX: Morristown/knoxville, TN
 | 
						|
KLBB: Lubbock, TX
 | 
						|
KLZK: Little Rock, AR
 | 
						|
KLCH: Lake Charles, LA
 | 
						|
KOHX: Nashville, TN
 | 
						|
KMLB: Melbourne, FL
 | 
						|
KNQA: Memphis, TN
 | 
						|
KAMX: Miami, FL
 | 
						|
KMAF: Midland/odessa, TX
 | 
						|
KTLX: Norman, OK
 | 
						|
KHTX: Huntsville, AL
 | 
						|
KMOB: Mobile, AL
 | 
						|
KTLH: Tallahassee, FL
 | 
						|
KTBW: Tampa Bay Area, FL
 | 
						|
KSJT: San Angelo, TX
 | 
						|
KINX: Tulsa, OK
 | 
						|
KSRX: Tulsa, OK
 | 
						|
KLIX: New Orleans/slidell, LA
 | 
						|
KDGX: Jackson, MS
 | 
						|
KSHV: Shreveport, LA
 | 
						|
ICAO: Responsible WFO
 | 
						|
KLGX: Seattle / Tacoma, WA
 | 
						|
KOTX: Spokane, WA
 | 
						|
KEMX: Tucson, AZ
 | 
						|
KYUX: Phoenix, AZ
 | 
						|
KNKX: San Diego, CA
 | 
						|
KMUX: Monterey/san Francisco, CA
 | 
						|
KHNX: San Joaquin/hanford, CA
 | 
						|
KSOX: San Diego, CA
 | 
						|
KATX: Seattle / Tacoma, WA
 | 
						|
KIWA: Phoenix, AZ
 | 
						|
KRTX: Portland, OR
 | 
						|
KSFX: Pocatello, ID
 | 
						|
KRGX: Reno, NV
 | 
						|
KDAX: Sacramento, CA
 | 
						|
KMTX: Salt Lake City, UT
 | 
						|
KPDT: Pendleton, OR
 | 
						|
KMSX: Missoula, MT
 | 
						|
KESX: Las Vegas, NV
 | 
						|
KVTX: Los Angeles, CA
 | 
						|
KMAX: Medford, OR
 | 
						|
KFSX: Flagstaff, AZ
 | 
						|
KGGW: Glasgow, MT
 | 
						|
KLRX: Elko, NV
 | 
						|
KBHX: Eureka, CA
 | 
						|
KTFX: Great Falls, MT
 | 
						|
KCBX: Boise, ID
 | 
						|
KBLX: Billings, MT
 | 
						|
KICX: Salt Lake City, UT
 | 
						|
ICAO: Responsible Wfo W/ MSCF
 | 
						|
PABC: Anchorage, AK
 | 
						|
PAPD: Fairbanks, AK
 | 
						|
PHKM: Honolulu, HI
 | 
						|
PAHG: Anchorage, AK
 | 
						|
PAKC: Anchorage, AK
 | 
						|
PAIH: Anchorage, AK
 | 
						|
PHMO: Honolulu, HI
 | 
						|
PAEC: Fairbanks, AK
 | 
						|
TJUA: San Juan, PR
 | 
						|
PACG: Juneau, AK
 | 
						|
PHKI: Honolulu, HI
 | 
						|
PHWA: Honolulu, HI
 | 
						|
ICAO: Responsible Wfo W/ MSCF
 | 
						|
KFDR: Norman, OK
 | 
						|
PGUA: Guam
 | 
						|
KBBX: Sacramento, CA
 | 
						|
KFDX: Albuquerque, NM
 | 
						|
KGWX: Jackson, MS
 | 
						|
KDOX: Wakefield, VA
 | 
						|
KDYX: San Angelo, TX
 | 
						|
KEYX: Las Vegas, NV
 | 
						|
KEVX: Mobile, AL
 | 
						|
KHPX: Paducah, KY
 | 
						|
KTYX: Burlington, VT
 | 
						|
KGRK: Dallas / Ft. Worth, TX
 | 
						|
KPOE: Lake Charles, LA
 | 
						|
KEOX: Tallahassee, FL
 | 
						|
KHDX: El Paso, TX
 | 
						|
KDFX: San Antonio, TX
 | 
						|
KMXX: Birmingham, AL
 | 
						|
KMBX: Bismarck, ND
 | 
						|
KVAX: Jacksonville, FL
 | 
						|
KJGX: Peachtree City/atlanta, GA
 | 
						|
KVNX: Norman, OK
 | 
						|
KVBX: Vandenberg Afb: Orcutt, CA" | dmenu -r -i -l 50 -p "Select a National Weather Service radar to use as default:" | sed "s/:.*//" | tr "[:lower:]" "[:upper:]")"
 | 
						|
 | 
						|
# Sanity check of selection and ensure user did not escape.
 | 
						|
echo "$chosen" | grep -q "^[A-Z]\+$" && echo "$chosen" > "$radarloc" ;}
 | 
						|
 | 
						|
getdoppler() {
 | 
						|
	loc="$(cat "$radarloc")"
 | 
						|
	notify-send "🌦️ Doppler RADAR" "Pulling most recent Doppler RADAR for $loc."
 | 
						|
	curl -sL "https://radar.weather.gov/ridge/lite/${loc}_loop.gif" > "$doppler" ;}
 | 
						|
 | 
						|
showdoppler() { setsid -f mpv --no-osc --loop=inf --no-terminal "$doppler" ;}
 | 
						|
 | 
						|
case $BLOCK_BUTTON in
 | 
						|
	1) [ ! -f "$radarloc" ] && pickloc && getdoppler
 | 
						|
	[ $(($(date '+%s') - $(stat -c %Y "$doppler"))) -gt "$secs" ] && getdoppler
 | 
						|
	showdoppler ;;
 | 
						|
	2) pickloc && getdoppler && showdoppler ;;
 | 
						|
	3) notify-send "🗺️ Doppler RADAR module" "\- Left click for local Doppler RADAR.
 | 
						|
- Middle click to update change RADAR location.
 | 
						|
After $secs seconds, new clicks will also automatically update the doppler RADAR."  ;;
 | 
						|
	6) "$TERMINAL" -e "$EDITOR" "$0" ;;
 | 
						|
esac
 | 
						|
 | 
						|
echo 🗺️ |