added builtin sh.qsl command
[spider.git] / perl / Spot.pm
index 9f5c8645511711919943fc6564b239f59918bbda..4b0e7c72929ba3822afe2bbc0c3faebc39b709ed 100644 (file)
@@ -17,6 +17,7 @@ use Julian;
 use Prefix;
 use DXDupe;
 use Data::Dumper;
+use QSL;
 
 use strict;
 
@@ -26,7 +27,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 +102,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
@@ -159,6 +161,10 @@ sub add
        } else {
                $vhfspots++;
        }
+       if ($_[3] =~ /(?:QSL|VIA)/i) {
+               my $q = QSL::get($_[1]) || new QSL $_[1];
+               $q->update($_[3], $_[2], $_[4]);
+       }
 }
 
 # search the spot database for records based on the field no and an expression
@@ -369,6 +375,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]++;