rendered paste body;/getweather <ZipCode|City>
alias getweather {
if (!$1) return
var %tmpr $r(1,10000)
.sockclose getw $+ %tmpr | .sockopen getw $+ %tmpr weather.latimes.com 80
.sockmark getw $+ %tmpr /cgi-bin/findweather/getForecast?query= $+ $replace($1-,$chr(32),+)
}
on *:sockopen:getw*:{
var %sw .sockwrite -n $sockname
%sw POST $sock($sockname).mark HTTP/1.1
%sw Host: $sock($sockname).ip
%sw Connection: Close
%sw $crlf
}
on *:sockread:getw*:{
sockread %tmpd
if ($regex(%tmpd, pwsvariable="humidity" english="" metric="" value=".*")) { if ($regex(%tmpd, <nobr><b>(.*)<\/b><\/nobr>)) set -u5 % $+ $sockname $+ .hum $regml(1) }
elseif ($regex(%tmpd, pwsvariable="windspeedmph")) && (!% [ $+ [ $sockname ] $+ ] .wstop) { set -u5 % $+ $sockname $+ .wstop 1 | set -u5 % $+ $sockname $+ .wind1 1 | return }
elseif (% [ $+ [ $sockname ] $+ ] .wind1) { set -u5 % $+ $sockname $+ .wind %tmpd | unset % [ $+ [ $sockname ] $+ ] .wind1 }
elseif ($regex(%tmpd, <title>(.*)</title>)) { set -u5 % $+ $sockname $+ .loc $gettok($regml(1),1,44) $+ , $gettok($gettok($regml(1),2,44),1,40) }
elseif ($regex(%tmpd, <td style="border-bottom: 1px solid #CCC;">(.*)<\/td>)) && (a href= !isin $regml(1)) && (!% [ $+ [ $sockname ] $+ ] .fore1) { set -u5 % $+ $sockname $+ .fore $regml(1) | set -u5 % $+ $sockname $+ .fore1 1 }
elseif ($regex(%tmpd, <nobr><b>(.*)<\/b> °F<\/nobr>)) && (!% [ $+ [ $sockname ] $+ ] .temp1) { set -u5 % $+ $sockname $+ .temp $regml(1) $+ °F | set -u5 % $+ $sockname $+ .temp1 1 }
elseif ($regex(%tmpd, <nobr><b>(.*)<\/b> °C<\/nobr>)) && (%temp1) && (!% [ $+ [ $sockname ] $+ ] .temp2) { set -u5 % $+ $sockname $+ .temp % [ $+ [ $sockname ] $+ ] .temp $regml(1) $+ °C | set -u5 % $+ $sockname $+ .temp2 1 }
}
on *:sockclose:getw*:{
if (*Weather Underground* iswm % [ $+ [ $sockname ] $+ ] .loc) { echo -a Couldnt find the location you entered. | return }
notice $me Location: % [ $+ [ $sockname ] $+ ] .loc
notice $me Forecast: % [ $+ [ $sockname ] $+ ] .fore
notice $me Humidity: % [ $+ [ $sockname ] $+ ] .hum
notice $me Temperature: % [ $+ [ $sockname ] $+ ] .temp
notice $me Wind: % [ $+ [ $sockname ] $+ ] .wind
}