my @calls;
my $days = 31;
my @dxcc;
+my $limit = 100;
-push @dxcc, (61..67) if $self->dxcc >= 61 && $self->dxcc < 67;
-push @dxcc, $self->dxcc unless @dxcc;
+if ($line) {
+ my @pref = split /[\s,]+/, $line;
+ push @dxcc, Prefix::to_ciz('nc', @pref);
+ return (1, $self->msg('e27', $line)) unless @dxcc;
+} else {
+ push @dxcc, (61..67) if $self->dxcc >= 61 && $self->dxcc < 67;
+ push @dxcc, $self->dxcc unless @dxcc;
+}
my $now = Julian::Day->new(time())->sub(1);
my %list;
next unless grep $l[2] eq $_, @dxcc;
my $ref = $list{$l[0]} || [0,0,0,0,0,0,0,0,0,0];
my $j = 1;
- foreach my $item (@l[3..11]) {
+ foreach my $item (@l[4..13]) {
$ref->[$j] += $item;
$ref->[0] += $item;
$j++;
my @tot;
my $nocalls;
-push @out, $self->msg('stathft', join(',', @dxcc));
-push @out, sprintf "%10s|%4s|%4s|%4s|%4s|%4s|%4s|%4s|%4s|%4s|%4s|", qw(Callsign Tot 160m 80m 40m 30m 20m 17m 15m 12m 10m);
+push @out, $self->msg('stathft', join(',', @dxcc), cldate(time));
+push @out, sprintf "%10s|%4s|%4s|%4s|%4s|%4s|%4s|%4s|%4s|%4s|%4s|%4s", qw(Callsign Tot 160m 80m 60m 40m 30m 20m 17m 15m 12m 10m);
for (sort {$list{$b}->[0] <=> $list{$a}->[0] || $a cmp $b} keys %list) {
my $ref = $list{$_};
$nocalls++;
my @list = (sprintf "%10s", $_);
- foreach my $j (0..10) {
+ foreach my $j (0..11) {
my $r = $ref->[$j];
if ($r) {
$tot[$j] += $r;
push @list, $r;
}
push @out, join('|', @list);
+ last if $limit && $nocalls >= $limit;
}
$nocalls = sprintf "%10s", "$nocalls calls";