X-Git-Url: http://dxcluster.net/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FSpot.pm;h=f59ef4f4965bca34c5b747d30c0c9b03390bfc5e;hb=144ae11b65a1425f6557d4670fcd303dabd180b4;hp=982f8db5e19b51dadcfe088adea403b969b58b23;hpb=8178d787d7cc8040fa8958197582bba5c80e6f59;p=spider.git diff --git a/perl/Spot.pm b/perl/Spot.pm index 982f8db5..f59ef4f4 100644 --- a/perl/Spot.pm +++ b/perl/Spot.pm @@ -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 @@ -312,7 +313,7 @@ sub readfile($) # enter the spot for dup checking and return true if it is already a dup sub dup { - my ($freq, $call, $d, $text) = @_; + my ($freq, $call, $d, $text, $by) = @_; # dump if too old return 2 if $d < $main::systime - $dupage; @@ -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; @@ -331,11 +337,14 @@ sub dup $text =~ s/[^a-zA-Z0-9]//g; for (-60, -120, -180, -240, 0, 60, 120, 180, 240, 300) { my $dt = $d - $_; - my $dupkey = "X$freq|$call|$dt|\L$text"; - return 1 if DXDupe::find($dupkey); + 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 $dupkey = "X$freq|$call|$d|\L$text"; - DXDupe::add($dupkey, $main::systime+$dupage); + 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; } @@ -361,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]++;