#!/usr/bin/perl use LWP::Simple; %urls = ( "Whistler" => "http://www.whistlerblackcomb.com/weather/snowreport/index.htm", "Crystal" => "http://www.skicrystal.com/conditions/conditions-main.php", "Stevens" => "http://www.stevenspass.com/Stevens/snowreport.aspx", "Alpental" => "http://www.summit-at-snoqualmie.com/winter/conditions.asp", "Baker" => "http://www.mtbaker.us/index.php/snow-report" ); %new = ( "Whistler" => "New 24 Hours 48 Hours 7 Days Snowbase (\\d+) cm", "Crystal" => "Summit \\d+ F (\\d+)", "Stevens" => "CURRENT CONDITIONS [^ ]+ \\d+ (\\d+)''", "Alpental" => "ALPENTAL \\d+\" (\\d+)", "Baker" => "(\\d+) inch\\S+ new"); %s24 = ( "Whistler" => "New 24 Hours 48 Hours 7 Days Snowbase \\d+ cm (\\d+) cm", "Crystal" => "Summit \\d+ F \\d+ (\\d+)", "Stevens" => "CURRENT CONDITIONS [^ ]+ \\d+ \\d+'' (\\d+)''", "Alpental" => "ALPENTAL \\d+\" (\\d+)", "Baker" => "(\\d+) inch\\S+ in 24"); %fcast = ( "Whistler" => "http://www.whistlerblackcomb.com/weather/forecast/index.htm", "Crystal" => "http://www.nwac.noaa.gov/products/SABNW", "Stevens" => "http://www.nwac.noaa.gov/products/SABNW", "Alpental" => "http://www.wrh.noaa.gov/total_forecast/index.php?zone=waz501&county=wac037&wfo=pdt&dgtl=1&lat=47.425687&lon=-121.37486", "Baker" => "http://www.wunderground.com/US/WA/Glacier.html" ); sub Fetch { my ($name, $url) = @_; print "$name\n"; my $page = get($url); # remove everything between all tags. #$page =~ s///gi; # remove all \n's $page =~ s/\n/ /g; $page =~ s/\r//g; $page =~ s/\s/ /g; # remove all  's $page =~ s/&[^;]+;/ /gi; # remove all other html tags $page =~ s/<[^>]+>/ /g; # remove adjacent spaces $page =~ s/ +/ /g; #print $page if $name eq "Stevens"; print ""; my $done = 0; if (defined $new{$name}) { if ($page =~ /$new{$name}/i) { my $x = $1; $x *= 0.3937 if $name eq "Whistler"; printf "%3.1f\"\n", $x; $done = 1; } } print "No data" if (!$done); print "\n"; print ""; $done = 0; if (defined $s24{$name}) { if ($page =~ /$s24{$name}/i) { my $y = $1; $y *= 0.3937 if $name eq "Whistler"; printf "%3.1f\"\n", $y; $done = 1; } } print "No data" if (!$done); print ""; print ""; if (defined $fcast{$name}) { print "forecast\n"; } print ""; } print <
END ; foreach $name (keys %urls) { &Fetch($name, $urls{$name}); } print "
New Snow
24 Hours
\n";