2021-04-16 18:38:41 +00:00
|
|
|
#!/bin/sh
|
|
|
|
|
2021-10-04 18:56:57 +00:00
|
|
|
# Show a Doppler RADAR of a user's preferred location.
|
2021-04-16 18:38:41 +00:00
|
|
|
|
|
|
|
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"
|
|
|
|
|
2021-10-04 18:56:57 +00:00
|
|
|
pickloc() { chosen="$(echo "US: Northeast
|
|
|
|
US: Southeast
|
|
|
|
US: PacNorthWest
|
|
|
|
US: PacSouthWest
|
|
|
|
US: UpperMissVly
|
|
|
|
US: SouthMissVly
|
|
|
|
US: SouthPlains
|
|
|
|
US: NorthRockies
|
|
|
|
US: SouthRockies
|
|
|
|
US: Alaska
|
|
|
|
US: Carib
|
|
|
|
US: Hawaii
|
|
|
|
US: CentGrLakes
|
|
|
|
US: Conus-Large
|
|
|
|
US: KABR: Aberdeen, SD
|
|
|
|
US: KBIS: Bismarck, ND
|
|
|
|
US: KFTG: Denver/Boulder, CO
|
|
|
|
US: KDMX: Des Moines, IA
|
|
|
|
US: KDTX: Detroit, MI
|
|
|
|
US: KDDC: Dodge City, KS
|
|
|
|
US: KDLH: Duluth, MN
|
|
|
|
US: KCYS: Cheyenne, WY
|
|
|
|
US: KLOT: Chicago, IL
|
|
|
|
US: KGLD: Goodland, KS
|
|
|
|
US: KUEX: Hastings, NE
|
|
|
|
US: KGJX: Grand Junction, CO
|
|
|
|
US: KGRR: Grand Rapids, MI
|
|
|
|
US: KMVX: Fargo/Grand Forks, ND
|
|
|
|
US: KGRB: Green Bay, WI
|
|
|
|
US: KIND: Indianapolis, IN
|
|
|
|
US: KJKL: Jackson, KY
|
|
|
|
US: KARX: La Crosse, WI
|
|
|
|
US: KILX: Lincoln/Central Illinois, IL
|
|
|
|
US: KLVX: Louisville, KY
|
|
|
|
US: KMQT: Marquette
|
|
|
|
US: KMKX: Milwaukee, WI
|
|
|
|
US: KMPX: Minneapolis, MN
|
|
|
|
US: KAPX: Gaylord/Alpena, MI
|
|
|
|
US: KLNX: North Platte, NE
|
|
|
|
US: KIWX: N. Webster/Northern, IN
|
|
|
|
US: KOAX: Omaha, NE
|
|
|
|
US: KPAH: Paducah, KY
|
|
|
|
US: KEAX: Pleasant Hill, MO
|
|
|
|
US: KPUX: Pueblo, CO
|
|
|
|
US: KDVN: Quad Cities, IA
|
|
|
|
US: KUDX: Rapid City, SD
|
|
|
|
US: KRIW: Riverton, WY
|
|
|
|
US: KSGF: Springfield, MO
|
|
|
|
US: KLSX: St. LOUIS, MO
|
2022-10-10 14:27:40 +00:00
|
|
|
US: KFSD: Sioux Falls, SD
|
2021-10-04 18:56:57 +00:00
|
|
|
US: KTWX: Topeka, KS
|
|
|
|
US: KICT: Wichita, KS
|
|
|
|
US: KVWX: Paducah, KY
|
|
|
|
US: ICAO: Responsible Wfo
|
|
|
|
US: KLTX: WILMINGTON, NC
|
|
|
|
US: KCCX: State College/Central, PA
|
|
|
|
US: KLWX: Sterling, VA
|
|
|
|
US: KFCX: Blacksburg/Roanoke, VA
|
|
|
|
US: KRAX: Raleigh/Durham, NC
|
|
|
|
US: KGYX: Portland, ME
|
|
|
|
US: KDIX: Mt Holly/Philadelphia, PA
|
|
|
|
US: KPBZ: Pittsburgh, PA
|
|
|
|
US: KAKQ: Wakefield, VA
|
|
|
|
US: KMHX: Morehead City, NC
|
|
|
|
US: KGSP: Greer/Greenville/Sprtbg, SC
|
|
|
|
US: KILN: Wilmington/Cincinnati, OH
|
|
|
|
US: KCLE: Cleveland, OH
|
|
|
|
US: KCAE: Columbia, SC
|
|
|
|
US: KBGM: Binghamton, NY
|
|
|
|
US: KENX: Albany, NY
|
|
|
|
US: KBUF: Buffalo, NY
|
|
|
|
US: KCXX: Burlington, VT
|
|
|
|
US: KCBW: Caribou, ME
|
|
|
|
US: KBOX: Boston /Taunton, MA
|
|
|
|
US: KOKX: New York City, NY
|
|
|
|
US: KCLX: Charleston, SC
|
|
|
|
US: KRLX: Charleston, WV
|
|
|
|
US: ICAO: Responsible WFO
|
|
|
|
US: KBRO: Brownsville, TX
|
|
|
|
US: KABX: Albuquerque, NM
|
|
|
|
US: KAMA: Amarillo, TX
|
|
|
|
US: KFFC: Peachtree City/Atlanta, GA
|
|
|
|
US: KEWX: Austin/Sanantonio, TX
|
|
|
|
US: KBMX: Birmingham, AL
|
|
|
|
US: KCRP: Corpus Christi, TX
|
|
|
|
US: KFWS: Dallas / Ft. Worth, TX
|
|
|
|
US: KEPZ: El Paso, TX
|
|
|
|
US: KHGX: Houston/ Galveston, TX
|
|
|
|
US: KJAX: Jacksonville, FL
|
|
|
|
US: KBYX: Key West, FL
|
|
|
|
US: KMRX: Morristown/knoxville, TN
|
|
|
|
US: KLBB: Lubbock, TX
|
|
|
|
US: KLZK: Little Rock, AR
|
|
|
|
US: KLCH: Lake Charles, LA
|
|
|
|
US: KOHX: Nashville, TN
|
|
|
|
US: KMLB: Melbourne, FL
|
|
|
|
US: KNQA: Memphis, TN
|
|
|
|
US: KAMX: Miami, FL
|
|
|
|
US: KMAF: Midland/odessa, TX
|
|
|
|
US: KTLX: Norman, OK
|
|
|
|
US: KHTX: Huntsville, AL
|
|
|
|
US: KMOB: Mobile, AL
|
|
|
|
US: KTLH: Tallahassee, FL
|
|
|
|
US: KTBW: Tampa Bay Area, FL
|
|
|
|
US: KSJT: San Angelo, TX
|
|
|
|
US: KINX: Tulsa, OK
|
|
|
|
US: KSRX: Tulsa, OK
|
|
|
|
US: KLIX: New Orleans/slidell, LA
|
|
|
|
US: KDGX: Jackson, MS
|
|
|
|
US: KSHV: Shreveport, LA
|
|
|
|
US: ICAO: Responsible WFO
|
|
|
|
US: KLGX: Seattle / Tacoma, WA
|
|
|
|
US: KOTX: Spokane, WA
|
|
|
|
US: KEMX: Tucson, AZ
|
|
|
|
US: KYUX: Phoenix, AZ
|
|
|
|
US: KNKX: San Diego, CA
|
|
|
|
US: KMUX: Monterey/san Francisco, CA
|
|
|
|
US: KHNX: San Joaquin/hanford, CA
|
|
|
|
US: KSOX: San Diego, CA
|
|
|
|
US: KATX: Seattle / Tacoma, WA
|
|
|
|
US: KIWA: Phoenix, AZ
|
|
|
|
US: KRTX: Portland, OR
|
|
|
|
US: KSFX: Pocatello, ID
|
|
|
|
US: KRGX: Reno, NV
|
|
|
|
US: KDAX: Sacramento, CA
|
|
|
|
US: KMTX: Salt Lake City, UT
|
|
|
|
US: KPDT: Pendleton, OR
|
|
|
|
US: KMSX: Missoula, MT
|
|
|
|
US: KESX: Las Vegas, NV
|
|
|
|
US: KVTX: Los Angeles, CA
|
|
|
|
US: KMAX: Medford, OR
|
|
|
|
US: KFSX: Flagstaff, AZ
|
|
|
|
US: KGGW: Glasgow, MT
|
|
|
|
US: KLRX: Elko, NV
|
|
|
|
US: KBHX: Eureka, CA
|
|
|
|
US: KTFX: Great Falls, MT
|
|
|
|
US: KCBX: Boise, ID
|
|
|
|
US: KBLX: Billings, MT
|
|
|
|
US: KICX: Salt Lake City, UT
|
|
|
|
US: ICAO: Responsible Wfo W/ MSCF
|
|
|
|
US: PABC: Anchorage, AK
|
|
|
|
US: PAPD: Fairbanks, AK
|
|
|
|
US: PHKM: Honolulu, HI
|
|
|
|
US: PAHG: Anchorage, AK
|
|
|
|
US: PAKC: Anchorage, AK
|
|
|
|
US: PAIH: Anchorage, AK
|
|
|
|
US: PHMO: Honolulu, HI
|
|
|
|
US: PAEC: Fairbanks, AK
|
|
|
|
US: TJUA: San Juan, PR
|
|
|
|
US: PACG: Juneau, AK
|
|
|
|
US: PHKI: Honolulu, HI
|
|
|
|
US: PHWA: Honolulu, HI
|
|
|
|
US: ICAO: Responsible Wfo W/ MSCF
|
|
|
|
US: KFDR: Norman, OK
|
|
|
|
US: PGUA: Guam
|
|
|
|
US: KBBX: Sacramento, CA
|
|
|
|
US: KFDX: Albuquerque, NM
|
|
|
|
US: KGWX: Jackson, MS
|
|
|
|
US: KDOX: Wakefield, VA
|
|
|
|
US: KDYX: San Angelo, TX
|
|
|
|
US: KEYX: Las Vegas, NV
|
|
|
|
US: KEVX: Mobile, AL
|
|
|
|
US: KHPX: Paducah, KY
|
|
|
|
US: KTYX: Burlington, VT
|
|
|
|
US: KGRK: Dallas / Ft. Worth, TX
|
|
|
|
US: KPOE: Lake Charles, LA
|
|
|
|
US: KEOX: Tallahassee, FL
|
|
|
|
US: KHDX: El Paso, TX
|
|
|
|
US: KDFX: San Antonio, TX
|
|
|
|
US: KMXX: Birmingham, AL
|
|
|
|
US: KMBX: Bismarck, ND
|
|
|
|
US: KVAX: Jacksonville, FL
|
|
|
|
US: KJGX: Peachtree City/atlanta, GA
|
|
|
|
US: KVNX: Norman, OK
|
|
|
|
US: KVBX: Vandenberg Afb: Orcutt, CA
|
|
|
|
EU: Europe
|
|
|
|
EU: GB: Great Brittain
|
|
|
|
EU: SCAN: Scandinavia
|
|
|
|
EU: ALPS: The Alps
|
|
|
|
EU: NL: The Netherlands
|
|
|
|
EU: DE: Germany
|
|
|
|
EU: SP: Spain
|
|
|
|
EU: FR: France
|
|
|
|
EU: IT: Italy
|
|
|
|
EU: PL: Poland
|
|
|
|
EU: GR: Greece
|
|
|
|
EU: TU: Turkey
|
|
|
|
EU: RU: Russia
|
|
|
|
EU: BA: Bahrain
|
|
|
|
EU: BC: Botswana
|
|
|
|
EU: SE: Republic of Seychelles
|
|
|
|
EU: HU: Hungary
|
|
|
|
EU: UK: Ukraine
|
|
|
|
AF: AF: Africa
|
|
|
|
AF: WA: West Africa
|
|
|
|
AF: ZA: South Africa
|
|
|
|
AF: DZ: Algeria
|
|
|
|
AF: CE: Canary Islands
|
|
|
|
AF: NG: Nigeria
|
|
|
|
AF: TD: Chad
|
|
|
|
AF: CG: Democratic Republic of Congo
|
|
|
|
AF: EG: Egypt
|
|
|
|
AF: ET: Ethiopia
|
|
|
|
AF: CM: Cameroon
|
|
|
|
AF: IS: Israel
|
|
|
|
AF: LY: Libya
|
|
|
|
AF: MG: Madagascar
|
|
|
|
AF: MO: Morocco
|
|
|
|
AF: BW: Namibia
|
|
|
|
AF: SA: Saudi Arabia
|
|
|
|
AF: SO: Somalia
|
|
|
|
AF: SD: Sudan
|
|
|
|
AF: TZ: Tanzania
|
|
|
|
AF: TN: Tunisia
|
|
|
|
AF: ZM: Zambia
|
|
|
|
AF: KE: Kenya
|
2022-07-02 01:30:08 +00:00
|
|
|
AF: AO: Angola
|
|
|
|
DE: BAW: Baden-Württemberg
|
|
|
|
DE: BAY: Bavaria
|
|
|
|
DE: BBB: Berlin
|
|
|
|
DE: BBB: Brandenburg
|
|
|
|
DE: HES: Hesse
|
|
|
|
DE: MVP: Mecklenburg-Western Pomerania
|
|
|
|
DE: NIB: Lower Saxony
|
|
|
|
DE: NIB: Bremen
|
|
|
|
DE: NRW: North Rhine-Westphalia
|
|
|
|
DE: RPS: Rhineland-Palatinate
|
|
|
|
DE: RPS: Saarland
|
|
|
|
DE: SAC: Saxony
|
|
|
|
DE: SAA: Saxony-Anhalt
|
|
|
|
DE: SHH: Schleswig-Holstein
|
|
|
|
DE: SHH: Hamburg
|
|
|
|
DE: THU: Thuringia" | dmenu -r -i -l 50 -p "Select a radar to use as default:" | tr "[:lower:]" "[:upper:]")"
|
2021-10-04 18:56:57 +00:00
|
|
|
|
2022-07-06 16:09:17 +00:00
|
|
|
# Ensure user did not escape.
|
|
|
|
[ -z "$chosen" ] && exit 1
|
|
|
|
|
2021-10-04 18:56:57 +00:00
|
|
|
# Set continent code and radar code.
|
2022-07-06 16:09:17 +00:00
|
|
|
continentcode=${chosen%%:*}
|
|
|
|
radarcode=${chosen#* } radarcode=${radarcode%:*}
|
2021-04-16 18:38:41 +00:00
|
|
|
|
2022-07-06 16:09:17 +00:00
|
|
|
# Print codes to $radarloc file.
|
|
|
|
printf "%s,%s\\n" "$continentcode" "$radarcode" > "$radarloc" ;}
|
2021-04-16 18:38:41 +00:00
|
|
|
|
2022-07-02 01:30:08 +00:00
|
|
|
getdoppler() {
|
2022-07-06 16:09:17 +00:00
|
|
|
cont=$(cut -c -2 "$radarloc")
|
|
|
|
loc=$(cut -c 4- "$radarloc")
|
2022-07-02 01:30:08 +00:00
|
|
|
notify-send "🌦️ Doppler RADAR" "Pulling most recent Doppler RADAR for $loc."
|
2022-07-06 16:09:17 +00:00
|
|
|
case "$cont" in
|
2022-07-05 21:40:16 +00:00
|
|
|
"US") curl -sL "https://radar.weather.gov/ridge/lite/${loc}_loop.gif" > "$doppler" ;;
|
|
|
|
"EU") curl -sL "https://api.sat24.com/animated/${loc}/rainTMC/2/" > "$doppler" ;;
|
|
|
|
"AF") curl -sL "https://api.sat24.com/animated/${loc}/rain/2/" > "$doppler" ;;
|
|
|
|
"DE") loc="$(echo "$loc" | tr "[:upper:]" "[:lower:]")"
|
|
|
|
curl -sL "https://www.dwd.de/DWD/wetter/radar/radfilm_${loc}_akt.gif" > "$doppler" ;;
|
|
|
|
esac
|
2022-07-02 01:30:08 +00:00
|
|
|
}
|
2021-04-16 18:38:41 +00:00
|
|
|
|
|
|
|
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.
|
2021-10-04 18:56:57 +00:00
|
|
|
- Middle click to update RADAR location.
|
2021-04-16 18:38:41 +00:00
|
|
|
After $secs seconds, new clicks will also automatically update the doppler RADAR." ;;
|
|
|
|
6) "$TERMINAL" -e "$EDITOR" "$0" ;;
|
|
|
|
esac
|
|
|
|
|
|
|
|
echo 🗺️
|