]> scm.dxcluster.org Git - spider.git/blob - cmd/show/contest.pl
AsyncMsgise sh/db0sdx
[spider.git] / cmd / show / contest.pl
1 # contest.pl - contest calendar from www.sk3bg.se/contest
2 # used with 1 argument: sh/contest <yearandmonth>
3 # e g sh/contest 2002sep
4 # Tommy Johansson (SM3OSM) 2002-07-23
5 #
6 # New version use AsyncMsg (c) Dirk Koopman G1TLH
7 #
8
9 sub handle
10 {
11         my ($self, $line) = @_;
12
13         return (1, $self->msg('e24')) unless $Internet::allow;
14
15         my @out;
16
17         #$DB::single = 1;
18
19
20         # trying to make the syntax abit more user friendly...
21         # and yes, I have been here and it *is* all my fault (dirk)
22         $line = lc $line;
23         my ($m,$y);
24         ($y) = $line =~ /(\d+)/;
25         ($m) = $line =~ /([a-z]{3})/;
26
27         unless ($y) {
28                 ($y) = (gmtime)[5];
29                 $y += 1900;
30         }
31         unless ($m) {
32                 ($m) = (gmtime)[4];
33                 $m = lc $DXUtil::month[$m];
34         }
35         $y += 2000 if $y <= 50;
36         $y += 1900 if $y > 50 && $y <= 99;
37         $m = substr $m, 0, 3 if length $m > 3;
38         $m = 'oct' if $m eq 'okt';
39         $m = 'may' if $m eq 'mai' || $m eq 'maj';
40         my $mon = "$y$m";
41
42         dbg("sh/contest: month=$mon") if isdbg('contest');
43
44         my $filename = "c" . $mon . ".txt";
45         my $host = $Internet::contest_host || 'www.sk3bg.se';
46         my $port = 80;
47
48         dbg("sh/contest: host=$host:$port") if isdbg('contest');
49
50         my $url = $Internet::contest_url || "/contest/text";
51         $url .= "/$filename";
52
53         dbg("sh/contest: url=$url") if isdbg("contest");
54
55         my $r = AsyncMsg->get($self->call, $host, $port, $url, prefix=>'ctst> ');
56         if ($r) {
57                 push @out, $self->msg('m21', "show/contest");
58         }
59         else {
60                 push @out, $self->msg('e18','sk3bg.se');
61         }
62
63         return (1, @out);
64 }