Today:
# script poorly clobbered together by NA7Q
# Dec 27 2022
# This script downloads the weather forecast from the NWS
# converts it from a txt file to a .ul file
# and plays the .ul file on the air.
# Play the forecast at 8:00 am and edit the crontab
# crontab -e
# 00 8 * * * /tmp/NWS/Forecast.sh
mkdir /tmp/NWS
#Astoria
lynx --dump "https://forecast.weather.gov/MapClick.php?lat=46.1898&lon=-123.8339&FcstType=text&TextType=2" > /tmp/NWS/today.txt
DATE="$(date +%A)"
if grep -q 'Today: ' /tmp/NWS/today.txt; then
sed -i '100,200d' /tmp/NWS/today.txt
sed -i "/n/{H;$!d};x;/Today: /!d" /tmp/NWS/today.txt
elif
grep -q 'This Afternoon: ' /tmp/NWS/today.txt; then
sed -i '100,200d' /tmp/NWS/today.txt
sed -i "/n/{H;$!d};x;/This Afternoon: /!d" /tmp/NWS/today.txt
elif
grep -q 'Tonight: ' /tmp/NWS/today.txt; then
sed -i '100,200d' /tmp/NWS/today.txt
sed -i "/n/{H;$!d};x;/Tonight: /!d" /tmp/NWS/today.txt
else
grep -q 'Overnight: ' /tmp/NWS/today.txt
sed -i '100,200d' /tmp/NWS/today.txt
sed -i "/n/{H;$!d};x;/Overnight: /!d" /tmp/NWS/today.txt
fi
# tts_audio doesn't say winds correctly. Make her say "wend" instead. Change mph to miles per hour. Remove new lines to fix audio pauses.
sed -i 's/ //g' /tmp/NWS/today.txt
sed -i 's/wind/wend/g' /tmp/NWS/today.txt
sed -i 's/mph/miles per hour/g' /tmp/NWS/today.txt
sed -i ':a;$!{N;s/\n/ /;ba;}' /tmp/NWS/today.txt
# convert the file to a ul file using tts_audio.sh
tts_audio.sh /tmp/NWS/today.txt
# play the resulting file on the air by calling asterisk
# for 46891 ... insert your own node number
asterisk -rx "rpt localplay NODENUMBER /tmp/NWS/today"
# remove the temporary files after debugging
rm /tmp/NWS/today.txt
Tomorrow:
mkdir /tmp/NWS
#Astoria
lynx --dump "https://forecast.weather.gov/MapClick.php?lat=46.1898&lon=-123.8339&FcstType=text&TextType=2" > /tmp/NWS/tomorrow.txt
DATE="$(date -d tomorrow +'%A')"
# take the header out by removing lines 2 through 4.
sed -i '100,200d' /tmp/NWS/tomorrow.txt
sed -i "/n/{H;$!d};x;/$DATE:/!d" /tmp/NWS/tomorrow.txt
# tts_audio doesn't say winds correctly. Make her say "wend" instead. Change mph to miles per hour. Remove new lines to fix audio pauses.
sed -i 's/ //g' /tmp/NWS/tomorrow.txt
sed -i 's/wind/wend/g' /tmp/NWS/tomorrow.txt
sed -i 's/mph/miles per hour/g' /tmp/NWS/tomorrow.txt
sed -i ':a;$!{N;s/\n/ /;ba;}' /tmp/NWS/tomorrow.txt
# convert the file to a ul file using tts_audio.sh
tts_audio.sh /tmp/NWS/tomorrow.txt
# play the resulting file on the air by calling asterisk
# for 46891 ... insert your own node number
asterisk -rx "rpt localplay NODENUMBER /tmp/NWS/tomorrow"
# remove the temporary files after debugging
rm /tmp/NWS/tomorrow.txt
Day After Tomorrow:
mkdir /tmp/NWS
#Astoria
lynx --dump "https://forecast.weather.gov/MapClick.php?lat=46.1898&lon=-123.8339&FcstType=text&TextType=2" > /tmp/NWS/tomorrowafter.txt
DATE="$(date -d "2 days" '+%A')"
# take the header out by removing lines 2 through 4.
sed -i '100,200d' /tmp/NWS/tomorrowafter.txt
sed -i "/n/{H;$!d};x;/$DATE:/!d" /tmp/NWS/tomorrowafter.txt
# tts_audio doesn't say winds correctly. Make her say "wend" instead. Change mph to miles per hour. Remove new lines to fix audio pauses.
sed -i 's/ //g' /tmp/NWS/tomorrowafter.txt
sed -i 's/wind/wend/g' /tmp/NWS/tomorrowafter.txt
sed -i 's/mph/miles per hour/g' /tmp/NWS/tomorrowafter.txt
sed -i ':a;$!{N;s/\n/ /;ba;}' /tmp/NWS/tomorrowafter.txt
# convert the file to a ul file using tts_audio.sh
tts_audio.sh /tmp/NWS/tomorrowafter.txt
# play the resulting file on the air by calling asterisk
# for 46891 ... insert your own node number
asterisk -rx "rpt localplay NODENUMBER /tmp/NWS/tomorrowafter"
# remove the temporary files after debugging
rm /tmp/NWS/tomorrowafter.txt