added chat stuff for fun
[spider.git] / perl / Spot.pm
index 5c0ce792d673124343e9274b4460eae068969bae..dc63dbff42c1c2ab1309d843107e10ce6bbff4ae 100644 (file)
@@ -26,7 +26,7 @@ $BRANCH = sprintf( "%d.%03d", q$Revision$ =~ /\d+\.\d+\.(\d+)\.(\d+)/  || (0,0))
 $main::build += $VERSION;
 $main::branch += $BRANCH;
 
-use vars qw($fp $statp $maxspots $defaultspots $maxdays $dirprefix $duplth $dupage $filterdef $totalspots $hfspots $vhfspots);
+use vars qw($fp $statp $maxspots $defaultspots $maxdays $dirprefix $duplth $dupage $filterdef $totalspots $hfspots $vhfspots );
 
 $fp = undef;
 $statp = undef;
@@ -101,8 +101,9 @@ sub init
        mkdir "$dirprefix", 0777 if !-e "$dirprefix";
        $fp = DXLog::new($dirprefix, "dat", 'd');
        $statp = DXLog::new($dirprefix, "dys", 'd');
-       system("rm -f $main::data/$dirprefix/200?/*.bys");
-       system("rm -f $main::data/$dirprefix/200?/*.cys");
+       my $rm = $main::is_win ? 'del' : 'rm -f';
+       system("$rm $main::data/$dirprefix/*/*.bys");
+       system("$rm $main::data/$dirprefix/*/*.cys");
 }
 
 sub prefix
@@ -323,6 +324,11 @@ sub dup
 
        $freq = sprintf "%.1f", $freq;       # normalise frequency
        $call = substr($call, 0, 12) if length $call > 12;
+
+       # quick test now for simple case
+       my $sdupkey = "X$freq|$call|$d|$by";
+       return 1 if DXDupe::find($sdupkey);
+       
        chomp $text;
        $text =~ s/\%([0-9A-F][0-9A-F])/chr(hex($1))/eg;
        $text = substr($text, 0, $duplth) if length $text > $duplth; 
@@ -336,7 +342,7 @@ sub dup
                return 1 if DXDupe::find($ldupkey) || DXDupe::find($sdupkey);
        }
        my $ldupkey = "X$freq|$call|$d|\L$text";
-       my $sdupkey = "X$freq|$call|$d|$by";
+       $sdupkey = "X$freq|$call|$d|$by";
        DXDupe::add($ldupkey, $main::systime+$dupage);
        DXDupe::add($sdupkey, $main::systime+$dupage);
        return 0;
@@ -364,6 +370,7 @@ sub genstats($)
                        my ($freq, $by, $dxcc) = (split /\^/)[0,4,6];
                        my $ref = $list{$by} || [0, $dxcc];
                        for (@freq) {
+                               next unless defined $_;
                                if ($freq >= $_->[1] && $freq <= $_->[2]) {
                                        $$ref[$_->[0]+2]++;
                                        $tot[$_->[0]+2]++;