X-Git-Url: http://dxcluster.org/gitweb/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=cmd%2Fshow%2Fdx.pl;h=fecf16fc1dfdeebf69f62fc6555d9e6a0e525e2b;hb=1444521e066e02651bcb1827ae0ea643b4728b44;hp=06cc5d041e8ab2d51e3bf8e86f3c3e2c6e9c73b9;hpb=8195bc13ac14b8fbf13d804186680653b5fd8564;p=spider.git diff --git a/cmd/show/dx.pl b/cmd/show/dx.pl index 06cc5d04..fecf16fc 100644 --- a/cmd/show/dx.pl +++ b/cmd/show/dx.pl @@ -18,6 +18,7 @@ my $pre; my $spotter; my $info; my $expr; +my $doqsl; while ($f = shift @list) { # next field # print "f: $f list: ", join(',', @list), "\n"; @@ -32,11 +33,12 @@ while ($f = shift @list) { # next field if (lc $f eq 'on' && $list[0]) { # is it freq range? # print "yup freq\n"; my @r = split '/', $list[0]; - # print "r0: $r[0] r1: $r[1]\n"; - @freq = Bands::get_freq($r[0], $r[1]); - if (@freq) { # yup, get rid of extranous param - # print "freq: ", join(',', @freq), "\n"; + # print "r0: $r[0] r1: $r[1]\n"; + my @fr = Bands::get_freq($r[0], $r[1]); + if (@fr) { # yup, get rid of extranous param + # print "freq: ", join(',', @fr), "\n"; shift @list; + push @freq, @fr; # add these to the list next; } } @@ -50,11 +52,15 @@ while ($f = shift @list) { # next field $info = shift @list; next; } - if (lc $f eq 'spotter' && $list[0]) { + if ((lc $f eq 'spotter' || lc $f eq 'by') && $list[0]) { # print "got spotter\n"; $spotter = uc shift @list; next; } + if (lc $f eq 'qsl') { + $doqsl = 1; + next; + } if (!$pre) { $pre = uc $f; } @@ -62,14 +68,9 @@ while ($f = shift @list) { # next field # first deal with the prefix if ($pre) { - $expr = "\$f1 =~ /"; - $pre =~ s|/|\\/|; # change the slashes to \/ - if ($pre =~ /^\*/o) { - $pre =~ s/^\*//;; - $expr .= "$pre\$/o"; - } else { - $expr .= "^$pre/o"; - } + $pre .= '*' unless $pre =~ /[\*\?\[]/o; + $pre = shellregex($pre); + $expr = "\$f1 =~ m{$pre}o"; } else { $expr = "1"; # match anything } @@ -89,15 +90,21 @@ if (@freq) { # any info if ($info) { $expr .= " && " if $expr; - $info =~ s|/|\\/|; - $expr .= "\$f3 =~ /$info/io"; + $info =~ s{(.)}{"\Q$1"}ge; + $expr .= "\$f3 =~ m{$info}io"; } # any spotter if ($spotter) { $expr .= " && " if $expr; - $spotter =~ s|/|\\/|; - $expr .= "\$f4 =~ /$spotter/o"; + $spotter = shellregex($spotter); + $expr .= "\$f4 =~ m{$spotter}o"; +} + +# qsl requests +if ($doqsl) { + $expr .= " && " if $expr; + $expr .= "\$f3 =~ m{(QSL|VIA)}io"; } #print "expr: $expr from: $from to: $to fromday: $fromday today: $today\n";