From 209156e38a1a136ba8c8cf0e9df122eb63c8f2c9 Mon Sep 17 00:00:00 2001 From: Dirk Koopman Date: Tue, 27 Dec 2011 15:19:34 +0000 Subject: [PATCH] make sh/contest async --- cmd/show/contest.pl | 46 +++++++++++++++++-------------------------- cmd/show/qrz.pl | 46 +++++++++++++++++++++++-------------------- cmd/show/wm7d.pl | 3 ++- perl/DXCommandmode.pm | 1 - perl/Messages | 2 +- perl/Version.pm | 4 ++-- 6 files changed, 48 insertions(+), 54 deletions(-) diff --git a/cmd/show/contest.pl b/cmd/show/contest.pl index 4b3e68ba..f29bbfe4 100644 --- a/cmd/show/contest.pl +++ b/cmd/show/contest.pl @@ -13,7 +13,7 @@ my ($self, $line) = @_; my @out; -my $mon;; +my $mon; # trying to make the syntax abit more user friendly... # and yes, I have been here and it *is* all my fault (dirk) @@ -40,32 +40,22 @@ my $port = 80; my $url = $Internet::contest_url || "http://www.sk3bg.se/contest/text"; $url .= "/$filename"; -my $t = new Net::Telnet (Telnetmode => 0); -eval { - $t->open(Host => $host, Port => $port, Timeout => 15); - }; - -if (!$t || $@) { - push @out, $self->msg('e18','sk3bg.se'); -} else { - my $s = "GET $url"; - $t->print($s); - my $notfound = $t->getline(Timeout => 10); - if ($notfound =~ /404 Object Not Found/) { - return (1, "there is no contest info for $mon") - } else { - push @out, $notfound; - } - while (!$t->eof) { - eval { - push @out, $t->getline(Timeout => 10); - }; - if ($@) { - push @out, $self->msg('e18', 'sk3bg.se'); - last; - } - } -} -$t->close; +push @out, $self->msg('http1', 'sk3bg.se', "$filename"); + +$self->http_get($host, $url, sub + { + my ($response, $header, $body) = @_; + my @out; + + if ($response =~ /^4/) { + push @out, "There is no contest info $mon"; + } elsif ($response =~ /^5/) { + push @out, $self->msg('e18','sk3bg.se'); + } else { + push @out, split /\r?\n/, $body; + } + $self->send_ans(@out); + } + ); return (1, @out); diff --git a/cmd/show/qrz.pl b/cmd/show/qrz.pl index a5d14138..5aef1828 100644 --- a/cmd/show/qrz.pl +++ b/cmd/show/qrz.pl @@ -29,7 +29,7 @@ foreach $l (@list) { } Log('call', "$call: show/qrz \U$l"); - push @out, $self->msg('http1', "show/qrz \U$l"); + push @out, $self->msg('http1', 'qrz.com', "\U$l"); $self->http_get($host, $s, sub { @@ -40,27 +40,31 @@ foreach $l (@list) { dbg("qrz response: $response"); dbg("qrz body: $body"); } - Log('call', "$call: show/qrz \U$body"); - my $state = "blank"; - foreach my $result (split /\r?\n/, $body) { - dbg("qrz: $result") if isdbg('qrz') && $result; - if ($state eq 'blank' && $result =~ /^/i) { - $state = 'go'; - } elsif ($state eq 'go') { - next if $result =~ m||; - next if $result =~ m||; - next if $result =~ m||; - next if $result =~ m||; - next if $result =~ m||; - last if $result =~ m||; - my ($tag, $data) = $result =~ m|^\s*<(\w+)>(.*)msg('http2', "show/qrz \U$l"); + if ($response =~ /^5/) { + push @out, $self->msg('e18',"qrz.com $!"); } else { - push @out, $self->msg('e3', 'show/qrz', uc $l); + Log('call', "$call: show/qrz \U$body"); + my $state = "blank"; + foreach my $result (split /\r?\n/, $body) { + dbg("qrz: $result") if isdbg('qrz') && $result; + if ($state eq 'blank' && $result =~ /^/i) { + $state = 'go'; + } elsif ($state eq 'go') { + next if $result =~ m||; + next if $result =~ m||; + next if $result =~ m||; + next if $result =~ m||; + next if $result =~ m||; + last if $result =~ m||; + my ($tag, $data) = $result =~ m|^\s*<(\w+)>(.*)msg('http2', "show/qrz \U$l"); + } else { + push @out, $self->msg('e3', 'show/qrz', uc $l); + } } $self->send_ans(@out); } diff --git a/cmd/show/wm7d.pl b/cmd/show/wm7d.pl index 6dfb5b14..291823d7 100644 --- a/cmd/show/wm7d.pl +++ b/cmd/show/wm7d.pl @@ -21,7 +21,8 @@ my $port = 5000; my $cmdprompt = '/query->.*$/'; my($info, $t); - + +use Net::Telnet; $t = new Net::Telnet; $info = $t->open(Host => $target, Port => $port, diff --git a/perl/DXCommandmode.pm b/perl/DXCommandmode.pm index a9777cbf..a27d8d30 100644 --- a/perl/DXCommandmode.pm +++ b/perl/DXCommandmode.pm @@ -36,7 +36,6 @@ use WCY; use Sun; use Internet; use Script; -use Net::Telnet; use QSL; use DB_File; use VE7CC; diff --git a/perl/Messages b/perl/Messages index 22551f00..77e818e3 100644 --- a/perl/Messages +++ b/perl/Messages @@ -150,7 +150,7 @@ package DXM; hnodee1 => 'Please enter your Home Node, set/homenode ', hnodee2 => 'Failed to set homenode on $_[0]', hnode => 'Your Homenode is now \"$_[0]\"', - http1 => '$_[0] working ...', + http1 => 'Searching $_[0] for $_[1] ...', http2 => '$_[0] returned:', init1 => 'sent initialisation message to $_[0]', iso => '$_[0] Isolated', diff --git a/perl/Version.pm b/perl/Version.pm index 3088501f..fdfe4d13 100644 --- a/perl/Version.pm +++ b/perl/Version.pm @@ -11,7 +11,7 @@ use vars qw($version $subversion $build $gitversion); $version = '1.56'; $subversion = '0'; -$build = '10'; -$gitversion = '370d356'; +$build = '11'; +$gitversion = 'ed2d469'; 1; -- 2.34.1