sort out the filtering system
[spider.git] / cmd / clear / spots.pl
index d2a59bc07131195176775adb74fe693d045efe98..f630eb54c914718a2504b99d7c9eefbd00600734 100644 (file)
@@ -3,34 +3,35 @@
 #
 # Copyright (c) 2000 Dirk Koopman G1TLH
 #
-# $Id$
+#
 #
 my ($self, $line) = @_;
-my @f = split(/\s+/, $line);
+my @f = split /\s+/, $line;
 my @out;
-my $dxchan = $self;
 my $sort = 'spots';
 my $flag;
 my $fno = 1;
-my $call = $dxchan->call;
+my $call = $self->call;
 my $f;
 
 if ($self->priv >= 8) {
-       if (is_callsign(uc $f[0])) {
+       if (@f && is_callsign(uc $f[0])) {
                $f = uc shift @f;
-               my $uref = DXUser->get($f);
+               my $uref = DXUser::get_current($f);
                $call = $uref->call if $uref;
+       } elsif (@f && lc $f[0] eq 'node_default' || lc $f[0] eq 'user_default') {
+               $call = lc shift @f;
        }
-       if ($f[0] eq 'input') {
+       if (@f && $f[0] eq 'input') {
                shift @f;
                $flag = 'in';
        }
 }
 
-$fno = shift @f if @f && $f[0] =~ /^\d$/;
+$fno = shift @f if @f && $f[0] =~ /^\d|all$/;
 
 my $filter = Filter::read_in($sort, $call, $flag);
-Filter::delete($sort, $call, $flag, $fno);
+Filter::delete($sort, $call, $flag, $fno, $self);
 $flag = $flag ? "input " : "";
 push @out, $self->msg('filter4', $flag, $sort, $fno, $call);
 return (1, @out);