[fwlug] Need some help with a bash script
Jon
jonathan.bartels at gmail.com
Tue Apr 22 21:34:30 EDT 2008
I wrote this script to help my wife know when jobs were available in
that FWCS uses to post jobs for its subs. I did this to learn my way
around curl, bash scripting, and for some sick reason my wife thinks its
hot when I do my hacking on the command line.
The script takes a username and PIN as its arguments. It hits the login
page for the service, grabs a GUID (same as the session token in the
cookie I think), a hidden foil on the form (input-form validation I
think),
I'm missing two parts. One is to clear out the variable that I set after
checking for the errored message, the other is to properly handle
signals (like Ctrl-C) and cleanup my temp files.
Can anyone make some suggestions as to how to solve those two issues?
General comments/suggestions/improvements are also welcome.
This is published under the WTFPL, so if you're a FWCS sub using Aesop
feel free to have a whack with this script.
-----------CODE BEGINS---------------------------------------
#! /bin/bash
# DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
# Version 2, December 2004
#
# Copyright (C) 2008 Jon Bartels <jonathan.bartels at gmail.com>
# Everyone is permitted to copy and distribute verbatim or modified
# copies of this license document, and changing it is allowed as long
# as the name is changed.
#
# DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
# TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
#
# 0. You just DO WHAT THE FUCK YOU WANT TO.
#make the initial request
curl https://aesoponline.com/login.asp -k --silent > /tmp/aesop
#fetch the GUID from the form target
guid=$(grep GUID /tmp/aesop | cut -d '"' -f 6 | cut -d '=' -f 2 | cut -d
'&' -f 1)
#fetch the foil from the hidden form tags
foil=$(grep foil /tmp/aesop | cut -d '"' -f 4)
echo $guid
echo $foil
#use our GUID and foil to log in
curl https://aesoponline.com/login.asp -k --silent -d GUID=${guid} -d
pswd= -d location= -d qstring= -d absr_ID= -d foil=${foil} -d id=${1} -d
pin=${2} -A Mozilla/4.0 -d submit=Sign+In -c /tmp/aesop_cookies
> /tmp/aesop
#test success
login=$(grep 'sub_default.asp' /tmp/aesop)
echo $login
#if successful the login redirects us to this page with a link (rather
than a 302, wankers)
curl 'https://aesoponline.com/subweb/sub_default.asp?GUID=
${guid}&setcookie=true' -k --silent -b /tmp/aesop_cookies
#loop
while [ true ]; do
#hit the search page
curl 'https://aesoponline.com/subweb/sub_searchforjobs.asp?GUID=
${guid}' -k --silent -b /tmp/aesop_cookies > /tmp/aesop
#check for failure message
nofind=$(grep 'All qualifying absences are currently filled. However,
please review this web site periodically for new job
listings.' /tmp/aesop | cut -d '>' -f 15 | cut -d '<' -f 1)
echo $nofind
#beep if not failed
if [ -z "$nofind" ]; then
echo "JOB FOUND!!!"
beep -r 5
fi
#not sure if this is right
#I want to ensure that nofind is nullified/cleared/empty or otherwise
unable to meet the if condtion for the next pass on the loops
nofind=$('')
#spit out the date so we know when it last ran
date
#wait 15 minutes
sleep $((60*15))
#catch SIG
#trap break SIGINT SIGTERM SIGKILL
done
#cleanup
rm /tmp/aesop_cookies
rm /tmp/aesop
-----------CODE ENDS---------------------------------------
--
--
Jon Bartels
jonathan.bartels at gmail.com
More information about the Fwlug
mailing list