exec expect
-f "$0" ${1+"$@"}
# weather - Expect script to get the weather (courtesy University of Michigan)
# local weather is retrieved if no argument
# argument is the National Weather Service designation for an area
# I.e., WBC = Washington DC (oh yeah, that's obvious)
# Notes from Larry Virden <lvirden@yahoo.com> about the new host,
# rainmaker.wunderground.com: "[the] new site requires the
# machine doing the request be located in reverse dns lookup
# or it refuses to provide data." This appears to be a blind error
# condition on the part of rainmaker.
if {$argc>0} {set code
$argv} else {set code
"WBC"}
send_user
"Weather server timed out. Try again later when weather server is not so busy.\n"
set env
(TERM
) vt100
;# actual value doesn't matter, just has to be set
spawn
telnet rainmaker.wunderground.com
3000
send_user
"failed to contact weather server\n"
} "Press Return to continue*" {
# this prompt used sometimes, eg, upon opening connection
} "Press Return for menu*" {
# this prompt used sometimes, eg, upon opening connection
} "M to display main menu*" {
# sometimes ask this if there is a weather watch in effect
} "Change scrolling to screen*Selection:" {
send_user
"failed to telnet to weather server\n"
expect timeout timedout
"Selection:"
expect timeout timedout
"Selection:"
expect timeout timedout
"Selection:"
expect timeout timedout
"city code:"
expect
$code ;# discard this
} "Press Return to continue*:*" {
} "Press Return to display statement, M for menu:*" {
} -re "(.*)CITY FORECAST MENU.*Selection:" {