X-Git-Url: http://dxcluster.net/gitweb/gitweb.cgi?a=blobdiff_plain;f=cmd%2Fshow%2Ffilter.pl;h=f3aab0166c259f5e1b8cdc6f24a0b143e419d159;hb=refs%2Fheads%2Fnewpc92timings;hp=3b01712a6f78598f0db482142aeb44f288eeefc7;hpb=bb8879b9edc81909ffc6880fd182f79b3bd23383;p=spider.git diff --git a/cmd/show/filter.pl b/cmd/show/filter.pl index 3b01712a..f3aab016 100644 --- a/cmd/show/filter.pl +++ b/cmd/show/filter.pl @@ -3,29 +3,36 @@ # # Copyright (c) 2000 Dirk Koopman G1TLH # -# $Id$ +# # my ($self, $line) = @_; my @f = split /\s+/, $line; my @out; -my $dxchan = $self; -my $sort = ''; +my $call = $self->call; -my $f = lc shift @f if @f; -if ($self->priv >= 8) { - my $d = DXChannel->get(uc $f); - $dxchan = $d if $d; - $f = lc shift @f; +if (@f) { + if (is_callsign(uc $f[0])) { + return (1, $self->msg('e5')) unless $self->priv >= 1; + $call = uc shift @f; + } elsif ($f[0] eq 'node_default' || $f[0] eq 'user_default') { + return (1, $self->msg('e5')) unless $self->priv >= 1; + $call = shift @f; + } } -$sort = $f if $f; -$sort .= 'filter'; +my @in; +if (@f) { + push @in, @f; +} else { + push @in, qw(route ann spots wcy wwv); +} -my $key; -foreach $key (sort keys %$self) { - if ($key =~ /$sort$/) { - push @out, $self->{$key}->print if $self->{$key}; - } +my $sort; +foreach $sort (@in) { + my $ref = Filter::read_in($sort, $call, 1); + push @out, $ref->print($call, $sort, "input") if $ref; + $ref = Filter::read_in($sort, $call, 0); + push @out, $ref->print($call, $sort, "") if $ref; } -push @out, $self->msg('filter3', $dxchan->call) unless @out; +push @out, $self->msg('filter3', $call) unless @out; return (1, @out);