#!/bin/bash
#snow delay/closing parser program
#Kyle Bassett, Chris Merck
clear
echo "SNOWDAY Auto-TXTer V 0.1"
echo "By Kyle Bassett and Chris Merck"
#----DIR location for snowday----:
cd ~/snowday
#this file must have an empty last line
file_txt_clients="./email_clients"
http_vtsd="URL OF WEBSITE TO BE PARSED"
#time to wait to rec'v and parse file
timedelay=60
#time to stop txt msgs
timestopdelay=100000
#txtmsg body:
txtbody="School District-KBass's SnoInfo-reply STOP.SNOW to cancel. Have fun! `date`"
#infinite loop, stop for delay/closing
while [ "" = "" ]
do
#----------get page to parse-----------
lwp-download $http_vtsd ./vtsd
#----------parse page------------------
closed=`cat ./vtsd/index.html | grep -i closed | wc -l | cut -f 2`
delay=`cat ./vtsd/index.html | grep -i delay | wc -l | cut -f 2`
msg=""
#for debugging:
#msg="no delay / closing yet!"
if [ $delay = 1 ]
then
msg="Delayed Opening"
echo "Delayed Opening"
timedelay=$timestopdelay
fi
#closed=0
#msgcountperday=2
if [ $closed = 1 ]
then
timedelay=$timestopdelay
msg="School is Closed"
echo "School is Closed"
fi
if [ "" != "$msg" ]
then
#determine the number of lines in the file
#this is the number of ppl to send to,
# each line being another email address or vtext addr
lines=`wc -l $file_txt_clients | cut -d " " -f 1`
echo "email_clients contains $lines clients."
lineindex=$lines
until [ "$lineindex" = "0" ]
do
#send the top line in a text message
email=`tail -n $lineindex $file_txt_clients | head -n 1`
#create command file to carry out SMTP transaction
echo "HELO ksb" > tmp
echo "MAIL FROM: snowday@cipercast.net" >> tmp #you can make this anything!
echo "RCPT TO: $email" >> tmp
echo "DATA" >> tmp
echo "Subject: $msg" >> tmp
echo $txtbody >> tmp
echo "." >> tmp
echo "QUIT" >> tmp
#send message over an smtp relay
netcat smtp.find_your_own_mail_relay.net 25 < tmp
#update our index number
let "lineindex -= 1"
echo "lines left: $lineindex"
done
fi
rm ~/snowday/vtsd/index.html
sleep $timedelay
done