X-Git-Url: http://gb7djk.dxcluster.net/gitweb/gitweb.cgi?a=blobdiff_plain;f=cmd%2Fshow%2Fdx.pl;h=b513c614495ac40a13dc00854903da5e4a8194e0;hb=6bcb0688c4d31920dcfd84b7dd5d2a8b4e2c856a;hp=f2629bfff0e225ef7249e358a17b166f46d38708;hpb=ed96190995aa228ca30398b06c3cc0af1a59bf54;p=spider.git diff --git a/cmd/show/dx.pl b/cmd/show/dx.pl index f2629bff..b513c614 100644 --- a/cmd/show/dx.pl +++ b/cmd/show/dx.pl @@ -27,12 +27,14 @@ my $state; my $bystate; my $itu; my $byitu; -my $fromdxcc; +my $fromdxcc = 0; my $exact; my ($doqsl, $doiota, $doqra, $dofilter); +my $usesql = $main::dbh && $Spot::use_db_for_search; + while ($f = shift @list) { # next field - # print "f: $f list: ", join(',', @list), "\n"; + dbg "arg: $f list: " . join(',', @list) if isdbg('shdx'); if (!$from && !$to) { ($from, $to) = $f =~ m|^(\d+)[-/](\d+)$|; # is it a from -> to count? next if $from && $to > $from; @@ -54,17 +56,19 @@ while ($f = shift @list) { # next field next; } if (lc $f eq 'on' && $list[0]) { # is it freq range? - # print "yup freq\n"; - if ($list[0] =~ m|^(\d+)(?:\.\d+)?[-/](\d+)(?:\.\d+)?$|) { - push @freq, $1, $2; + dbg "freq $list[0]" if isdbg('shdx'); + if (my ($from, $to) = $list[0] =~ m|^(\d+)(?:\.\d+)?(?:[-/](\d+)(?:\.\d+)?)?$|) { + $to = $from unless defined $to; + dbg "freq '$from' '$to'" if isdbg('shdx'); + push @freq, $from, $to; shift @list; next; } else { my @r = split '/', lc $list[0]; - # print "r0: $r[0] r1: $r[1]\n"; + dbg "r0: $r[0] r1: $r[1]" if isdbg('shdx'); my @fr = Bands::get_freq($r[0], $r[1]); if (@fr) { # yup, get rid of extranous param - # print "freq: ", join(',', @fr), "\n"; + dbg "freq: " . join(',', @fr) if isdbg('shdx'); push @freq, @fr; # add these to the list shift @list; next; @@ -72,22 +76,22 @@ while ($f = shift @list) { # next field } } if (lc $f eq 'day' && $list[0]) { - # print "got day\n"; ($fromday, $today) = split m|[-/]|, shift(@list); + dbg "got day $fromday/$today" if isdbg('shdx'); next; } if (lc $f eq 'info' && $list[0]) { - # print "got info\n"; $info = shift @list; + dbg "got info $info" if isdbg('shdx'); next; } if ((lc $f eq 'spotter' || lc $f eq 'by') && $list[0]) { - # print "got spotter\n"; $spotter = uc shift @list; if ($list[0] && lc $list[0] eq 'dxcc') { $fromdxcc = 1; shift @list; } + dbg "got spotter $spotter fromdxcc $fromdxcc" if isdbg('shdx'); next; } if (lc $f =~ /^filt/) { @@ -180,7 +184,7 @@ if ($pre) { unless (@ans) { $pre .= '*' unless $pre =~ /[\*\?\[]$/o; $pre = shellregex($pre); - if ($main::dbh) { + if ($usesql) { $pre =~ s/\.\*/%/g; } else { $pre =~ s/\.\*\$$//; @@ -256,7 +260,7 @@ if ($spotter) { $expr .= ' && ' if $expr; $spotter .= '*' unless $spotter =~ /[\*\?\[]/o; $spotter = shellregex($spotter); - if ($main::dbh) { + if ($usesql) { $spotter =~ s/\.\*/%/g; } else { $spotter =~ s/\.\*\$$//; @@ -330,7 +334,7 @@ if ($state) { push @expr, "\$f12 eq '$_'"; push @hint, "m{$_}"; } - if ($main::dbh) { + if ($usesql) { $expr .= @expr > 1 ? '(' . join(' || ', @expr) . ')' : "$expr[0]"; } else { $expr .= @expr > 1 ? '(\$f12 && (' . join(' || ', @expr) . '))' : "(\$f12 && $expr[0])"; @@ -346,7 +350,7 @@ if ($bystate) { push @expr, "\$f13 eq '$_'"; push @hint, "m{$_}"; } - if ($main::dbh) { + if ($usesql) { $expr .= @expr > 1 ? '(' . join(' || ', @expr) . ')' : "$expr[0]"; } else { $expr .= @expr > 1 ? '(\$f13 && (' . join(' || ', @expr) . '))' : "(\$f13 && $expr[0])"; @@ -378,7 +382,7 @@ if ($doqra) { $hint .= "m{$doqra}io"; } -#print "expr: $expr from: $from to: $to fromday: $fromday today: $today\n"; +dbg "expr: $expr from: $from to: $to fromday: $fromday today: $today" if isdbg('sh/dx'); # now do the search my @res = Spot::search($expr, $fromday, $today, $from, $to, $hint, $dofilter ? $self : undef);