X-Git-Url: http://gb7djk.dxcluster.net/gitweb/gitweb.cgi?a=blobdiff_plain;f=cmd%2Fshow%2Fcontest.pl;h=33b98903b32c49e9f7f2a9eab1f9323aa9971bb8;hb=f67292b60a4b1567c0c370818fa2a7f0bc308fbc;hp=4b3e68ba813e0b5b3004a9dd07db520de385fd12;hpb=0417a5b16318d228a6c18d96db4ff1a35223f920;p=spider.git diff --git a/cmd/show/contest.pl b/cmd/show/contest.pl index 4b3e68ba..33b98903 100644 --- a/cmd/show/contest.pl +++ b/cmd/show/contest.pl @@ -9,22 +9,30 @@ my ($self, $line) = @_; -#return (1, "usage: sh/contest , e g sh/contest 2002sep ") unless $line; +#return (1, "usage: sh/contest [] [], e g sh/contest sep 2012") unless $line; my @out; my $mon;; +#$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) = $line =~ /^([a-z]+)\s*(\d+)/; -($y,$m) = $line =~ /^(\d+)\s*([a-z]+)/ unless $y && $m; -unless ($y && $m) { - ($m,$y) = (gmtime)[4,5]; - $m = lc $DXUtil::month[$m]; +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; @@ -32,38 +40,45 @@ $m = 'oct' if $m eq 'okt'; $m = 'may' if $m eq 'mai' || $m eq 'maj'; $mon = "$y$m"; -dbg($mon) if isdbg('contest'); +dbg("sh/contest: month=$mon") if isdbg('contest'); my $filename = "c" . $mon . ".txt"; my $host = $Internet::contest_host || 'www.sk3bg.se'; my $port = 80; -my $url = $Internet::contest_url || "http://www.sk3bg.se/contest/text"; + +dbg("sh/contest: host=$host:$port") if isdbg('contest'); + +my $url = $Internet::contest_url || "/contest/text"; $url .= "/$filename"; +dbg("sh/contest: url=$url") if isdbg("contest"); + my $t = new Net::Telnet (Telnetmode => 0); -eval { - $t->open(Host => $host, Port => $port, Timeout => 15); - }; +eval { $t->open(Host => $host, Port => $port, Timeout => 15); }; if (!$t || $@) { push @out, $self->msg('e18','sk3bg.se'); } else { - my $s = "GET $url"; + 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"); + my $notfound = $t->getline(Timeout => 10); - if ($notfound =~ /404 Object Not Found/) { - return (1, "there is no contest info for $mon") + 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; } while (!$t->eof) { - eval { - push @out, $t->getline(Timeout => 10); - }; - if ($@) { - push @out, $self->msg('e18', 'sk3bg.se'); - last; - } + eval { push @out, $t->getline(Timeout => 10); }; + if ($@) { + push @out, $self->msg('e18', 'sk3bg.se'); + last; + } } } $t->close;