X-Git-Url: http://dxcluster.net/gitweb/gitweb.cgi?a=blobdiff_plain;f=cmd%2Fshow%2Fbadword.pl;h=0f6703b7c352570e44aad3bb94ea0695d36b808d;hb=7e7131f3574cd4a3a4183251b35c9d91e43a6a39;hp=a8ef5c571508cbc9bccbeeea50d149a473b24294;hpb=6ec22e78a4a344ce675645fabf18b2a1971f364a;p=spider.git diff --git a/cmd/show/badword.pl b/cmd/show/badword.pl index a8ef5c57..0f6703b7 100644 --- a/cmd/show/badword.pl +++ b/cmd/show/badword.pl @@ -1,13 +1,51 @@ # # show list of bad dx callsigns # -# Copyright (c) 1998 - Dirk Koopman G1TLH +# Copyright (c) 2023 - Dirk Koopman G1TLH # # # + my ($self, $line) = @_; return (1, $self->msg('e5')) if $self->remotecmd; # are we permitted? return (1, $self->msg('e5')) if $self->priv < 6; -return $BadWords::badword->show(1, $self); + +my @out; +my @l; +my $count = 0; +my @words = BadWords::check($line); +my $cand; +my $w; + +push @out, "Words: " . join ',', @words; + +if ($line =~ /^\s*full/i || @words) { + foreach $w (BadWords::list_regex(1)) { + ++$count; + if ($line =~ /^\s*full/) { + push @out, $w; + } elsif (@words) { + ($cand) = split /\s+/, $w; + #push @out, "cand: $cand"; + push @out, $w if grep {$cand eq $_} @words; + } + } +} +else { + foreach my $w (BadWords::list_regex()) { + ++$count; + if (@l >= 5) { + push @out, sprintf "%-12s %-12s %-12s %-12s %-12s", @l; + @l = (); + } + push @l, $w; + } + push @l, "" while @l < 5; + push @out, sprintf "%-12s %-12s %-12s %-12s %-12s", @l; +} + +push @out, "$count BadWords"; + +return (1, @out);