limit spot dup checking to first 12 characters
[spider.git] / perl / Spot.pm
index be8be669c8d9e8899210163112c805551cb10d7b..b5d560115dc5dd2f7b1502e436df399f83862d32 100644 (file)
@@ -30,7 +30,7 @@ use vars qw($fp $statp $maxspots $defaultspots $maxdays $dirprefix $duplth $dupa
 
 $fp = undef;
 $statp = undef;
-$maxspots = 50;                                        # maximum spots to return
+$maxspots = 100;                                       # maximum spots to return
 $defaultspots = 10;                            # normal number of spots to return
 $maxdays = 100;                                # normal maximum no of days to go back
 $dirprefix = "spots";
@@ -43,14 +43,14 @@ $filterdef = bless ([
                          ['call', 'c', 1],
                          ['info', 't', 3],
                          ['by', 'c', 4],
-                         ['call_dxcc', 'n', 5],
-                         ['by_dxcc', 'n', 6],
+                         ['call_dxcc', 'nc', 5],
+                         ['by_dxcc', 'nc', 6],
                          ['origin', 'c', 7, 9],
-                         ['call_itu', 'n', 8],
-                         ['call_zone', 'n', 9],
-                         ['by_itu', 'n', 10],
-                         ['by_zone', 'n', 11],
-                         ['channel', 'n', 12, 9],
+                         ['call_itu', 'ni', 8],
+                         ['call_zone', 'nz', 9],
+                         ['by_itu', 'ni', 10],
+                         ['by_zone', 'nz', 11],
+                         ['channel', 'c', 12],
                         ], 'Filter::Cmd');
 
 
@@ -123,12 +123,12 @@ sub prepare
        
        # add the 'dxcc' country on the end for both spotted and spotter, then the cluster call
        my @dxcc = Prefix::extract($out[1]);
-       my $spotted_dxcc = (@dxcc > 0 ) ? $dxcc[1]->dxcc() : 0;
+       my $spotted_dxcc = (@dxcc > 0 ) ? $dxcc[1]->dxcc() : 666;
        my $spotted_itu = (@dxcc > 0 ) ? $dxcc[1]->itu() : 0;
        my $spotted_cq = (@dxcc > 0 ) ? $dxcc[1]->cq() : 0;
        push @out, $spotted_dxcc;
        @dxcc = Prefix::extract($out[4]);
-       my $spotter_dxcc = (@dxcc > 0 ) ? $dxcc[1]->dxcc() : 0;
+       my $spotter_dxcc = (@dxcc > 0 ) ? $dxcc[1]->dxcc() : 666;
        my $spotter_itu = (@dxcc > 0 ) ? $dxcc[1]->itu() : 0;
        my $spotter_cq = (@dxcc > 0 ) ? $dxcc[1]->cq() : 0;
        push @out, $spotter_dxcc;
@@ -264,18 +264,6 @@ sub ftor
        return $out;
 }
 
-# format a spot for user output in 'broadcast' mode
-sub formatb
-{
-       my $wantgrid = shift;
-       my $t = ztime($_[2]);
-       my $ref = DXUser->get_current($_[4]);
-       my $loc = $ref->qra if $ref && $ref->qra && $wantgrid;
-       $loc = ' ' . substr($ref->qra, 0, 4) if $loc;
-       $loc = "" unless $loc;
-       return sprintf "DX de %-7.7s%11.1f  %-12.12s %-30s %s$loc", "$_[4]:", $_[0], $_[1], $_[3], $t ;
-}
-
 # format a spot for user output in list mode
 sub formatl
 {
@@ -311,6 +299,7 @@ sub dup
        return 2 if $d < $main::systime - $dupage;
  
        $freq = sprintf "%.1f", $freq;       # normalise frequency
+       $call = substr($call, 12) if length $call > 12;
        chomp $text;
        $text =~ s/\%([0-9A-F][0-9A-F])/chr(hex($1))/eg;
        $text = substr($text, 0, $duplth) if length $text > $duplth;