X-Git-Url: http://dxcluster.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=cmd%2Fshow%2Fcontest.pl;h=524f6b86c84995e6e8e7af5530408e901df222b3;hb=89eaa6762e986e15ba3167ba3400a38cda1faf80;hp=33b98903b32c49e9f7f2a9eab1f9323aa9971bb8;hpb=f67292b60a4b1567c0c370818fa2a7f0bc308fbc;p=spider.git diff --git a/cmd/show/contest.pl b/cmd/show/contest.pl index 33b98903..524f6b86 100644 --- a/cmd/show/contest.pl +++ b/cmd/show/contest.pl @@ -2,85 +2,63 @@ # used with 1 argument: sh/contest # e g sh/contest 2002sep # Tommy Johansson (SM3OSM) 2002-07-23 -# New version using Net::Telnet 2003-03-09 # +# New version use AsyncMsg (c) Dirk Koopman G1TLH # -# - -my ($self, $line) = @_; - -#return (1, "usage: sh/contest [] [], e g sh/contest sep 2012") unless $line; -my @out; +sub handle +{ + my ($self, $line) = @_; -my $mon;; + return (1, $self->msg('e24')) unless $Internet::allow; -#$DB::single = 1; + my @out; + #$DB::single = 1; -# trying to make the syntax abit more user friendly... -# and yes, I have been here and it *is* all my fault (dirk) -$line = lc $line; -my ($m,$y); -($y) = $line =~ /(\d+)/; -($m) = $line =~ /([a-z]{3})/; - -unless ($y) { - ($y) = (gmtime)[5]; - $y += 1900; -} -unless ($m) { - ($m) = (gmtime)[4]; - $m = lc $DXUtil::month[$m]; -} -$y += 2000 if $y <= 50; -$y += 1900 if $y > 50 && $y <= 99; -$m = substr $m, 0, 3 if length $m > 3; -$m = 'oct' if $m eq 'okt'; -$m = 'may' if $m eq 'mai' || $m eq 'maj'; -$mon = "$y$m"; -dbg("sh/contest: month=$mon") if isdbg('contest'); + # trying to make the syntax abit more user friendly... + # and yes, I have been here and it *is* all my fault (dirk) + $line = lc $line; + my ($m,$y); + ($y) = $line =~ /(\d+)/; + ($m) = $line =~ /([a-z]{3})/; -my $filename = "c" . $mon . ".txt"; -my $host = $Internet::contest_host || 'www.sk3bg.se'; -my $port = 80; + unless ($y) { + ($y) = (gmtime)[5]; + $y += 1900; + } + unless ($m) { + ($m) = (gmtime)[4]; + $m = lc $DXUtil::month[$m]; + } + $y += 2000 if $y <= 50; + $y += 1900 if $y > 50 && $y <= 99; + $m = substr $m, 0, 3 if length $m > 3; + $m = 'oct' if $m eq 'okt'; + $m = 'may' if $m eq 'mai' || $m eq 'maj'; + my $mon = "$y$m"; -dbg("sh/contest: host=$host:$port") if isdbg('contest'); + dbg("sh/contest: month=$mon") if isdbg('contest'); -my $url = $Internet::contest_url || "/contest/text"; -$url .= "/$filename"; + my $filename = "c" . $mon . ".txt"; + my $host = $Internet::contest_host || 'www.sk3bg.se'; + my $port = 80; -dbg("sh/contest: url=$url") if isdbg("contest"); + dbg("sh/contest: host=$host:$port") if isdbg('contest'); -my $t = new Net::Telnet (Telnetmode => 0); -eval { $t->open(Host => $host, Port => $port, Timeout => 15); }; + my $url = $Internet::contest_url || "/contest/text"; + $url .= "/$filename"; -if (!$t || $@) { - push @out, $self->msg('e18','sk3bg.se'); -} else { - my $s = "GET $url HTTP/1.0"; - dbg("sh/contest: get='$s'") if isdbg('contest'); - - $t->print($s); - $t->print("Host: $host\n"); - $t->print("\n\n"); + dbg("sh/contest: url=$url") if isdbg("contest"); - my $notfound = $t->getline(Timeout => 10); - if (!$notfound || $notfound =~ /404 Object Not Found/) { - push @out, "there is no contest info for $mon at $host/$url"; - return (1, @out); - } else { - push @out, $notfound; + my $r = AsyncMsg->get($self->call, $host, $port, $url, prefix=>'ctst> '); + if ($r) { + push @out, $self->msg('m21', "show/contest"); + } + else { + push @out, $self->msg('e18','sk3bg.se'); } - while (!$t->eof) { - eval { push @out, $t->getline(Timeout => 10); }; - if ($@) { - push @out, $self->msg('e18', 'sk3bg.se'); - last; - } - } -} -$t->close; -return (1, @out); + return (1, @out); +}