sub Weather {
my ($args) = @_;
- &::performStrictReply(&queryText($args));
+ &::performStrictReply(&queryText($args, 'weather'));
+ return;
+}
+
+sub Metar {
+ my ($args) = @_;
+ &::performStrictReply(&queryText($args, 'metar'));
return;
}
sub queryText {
my ($station) = shift;
- $station = uc($station);
+ my ($wxmode) = shift;
my $result;
+ $station = uc($station);
+ $station =~ s/for //i;
+
if ($no_weather) {
return 0;
} else {
$ua->timeout(10);
my $request = new HTTP::Request('GET', "http://weather.noaa.gov/weather/current/$station.html");
- my $response = $ua->request($request);
+ my $response = $ua->request($request);
if (!$response->is_success) {
if ($response->code == 404) {
}
$content = $response->content;
- $content =~ s|.*?current weather conditions.*?<BR>([^<]*?)\s*<.*?</TR>||is;
+ $content =~ s|.*?<BODY[^>]*>||is;
+ #$content =~ s|.*?current weather conditions.*?<BR>([^<]*?)\s*<.*?</TR>||is;
+ $content =~ s|.*?current weather conditions[^<]*(<[^>]+>\s*)+||is;
+ $content =~ s|([^<]*?)\s*<.*?</TR>||is;
my $place = $1;
chomp $place;
$min_temp = $1;
if ($time) {
+ if ($wxmode eq 'metar' && defined($feat{'ob'})) {
+ return ("METAR " . $place . ": " . $feat{'ob'});
+ }
+
$result = "$place; $id; last updated: $time";
foreach (sort keys %feat) {
next if $_ eq 'ob';