fix spots dupes?
authorminima <minima>
Thu, 24 Feb 2005 23:39:17 +0000 (23:39 +0000)
committerminima <minima>
Thu, 24 Feb 2005 23:39:17 +0000 (23:39 +0000)
perl/DXDupe.pm
perl/Spot.pm

index 3ccb23c89dd22df1b21369691cd2cf4950f8caf8..63fdcb2bb24534a41d7a970961b2edb34937f8d7 100644 (file)
@@ -54,7 +54,7 @@ sub check
 
 sub find
 {
-       return 1 if exists $d{$_[0]};
+       return $d{$_[0]};
 }
 
 sub add
index 8708ac4df79e953639ea5851bb7d7b97768f1fa8..d49136b725284b57a4984195d8d41b8c330518b8 100644 (file)
@@ -330,24 +330,24 @@ 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; 
        unpad($text);
        $text = pack("C*", map {$_ & 127} unpack("C*", $text));
        $text =~ s/[^a-zA-Z0-9]//g;
-       for (-60, -120, -180, -240, 0, 60, 120, 180, 240, 300) {
-               my $dt = $d - $_;
-               my $ldupkey = "X$freq|$call|$dt|\L$text";
-               my $sdupkey = "X$freq|$call|$dt|$by";
-               return 1 if DXDupe::find($ldupkey) || DXDupe::find($sdupkey);
+       my $ldupkey = "X$freq|$call|\L$text";
+       my $sdupkey = "X$freq|$call|$by";
+       my $t = DXDupe::find($ldupkey);
+       if ($t) {
+               my $dt = $main::systime + $dupage - $t;
+               return 1 if $dt < 300;
+       }
+       $t = DXDupe::find($sdupkey);
+       if ($t) {
+               my $dt = $main::systime + $dupage - $t;
+               return 1 if $dt < 300;
        }
-       my $ldupkey = "X$freq|$call|$d|\L$text";
-       $sdupkey = "X$freq|$call|$d|$by";
        DXDupe::add($ldupkey, $main::systime+$dupage);
        DXDupe::add($sdupkey, $main::systime+$dupage);
        return 0;