X-Git-Url: http://dxcluster.net/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FSpot.pm;h=f29ecef804fd2703275e97a57f96b4c98247e145;hb=043ec29d2c3f7d807f02660417696f0e93e20880;hp=9019bb5b92dbfb6f8a0f0729de336d769918f999;hpb=66d98a2de271ef4a2702189e1d4284fe9fce5119;p=spider.git diff --git a/perl/Spot.pm b/perl/Spot.pm index 9019bb5b..f29ecef8 100644 --- a/perl/Spot.pm +++ b/perl/Spot.pm @@ -34,24 +34,25 @@ $duplth = 20; # the length of text to use in the deduping $dupage = 1*3600; # the length of time to hold spot dups $maxcalllth = 12; # the max length of call to take into account for dupes $filterdef = bless ([ - # tag, sort, field, priv, special parser - ['freq', 'r', 0, 0, \&decodefreq], - ['on', 'r', 0, 0, \&decodefreq], - ['call', 'c', 1], - ['info', 't', 3], - ['by', 'c', 4], - ['call_dxcc', 'nc', 5], - ['by_dxcc', 'nc', 6], - ['origin', 'c', 7, 9], - ['call_itu', 'ni', 8], - ['call_zone', 'nz', 9], - ['by_itu', 'ni', 10], - ['by_zone', 'nz', 11], - ['call_state', 'ns', 12], - ['by_state', 'ns', 13], - ['channel', 'c', 14], - - ], 'Filter::Cmd'); + # tag, sort, field, priv, special parser + ['freq', 'r', 0, 0, \&decodefreq], + ['on', 'r', 0, 0, \&decodefreq], + ['call', 'c', 1], + ['info', 't', 3], + ['by', 'c', 4], + ['call_dxcc', 'nc', 5], + ['by_dxcc', 'nc', 6], + ['origin', 'c', 7, 9], + ['call_itu', 'ni', 8], + ['call_zone', 'nz', 9], + ['by_itu', 'ni', 10], + ['by_zone', 'nz', 11], + ['call_state', 'ns', 12], + ['by_state', 'ns', 13], + ['ip', 'c', 14], +# ['channel', 'c', 15], +# ['rbn', 'a', 4, 0, \&filterrbnspot], + ], 'Filter::Cmd'); $totalspots = $hfspots = $vhfspots = 0; $use_db_for_search = 0; @@ -94,6 +95,13 @@ sub decodefreq return (0, join(',', @out)); } +# filter setup for rbn spot so return the regex to detect it +sub filterrbnspot +{ + my $dxchan = shift; + return ('-#$'); +} + sub init { mkdir "$dirprefix", 0777 if !-e "$dirprefix"; @@ -120,15 +128,14 @@ sub init while (<$fh>) { chomp; my @s = split /\^/; - if (@s < 12) { + if (@s < 14) { my @a = (Prefix::cty_data($s[1]))[1..3]; my @b = (Prefix::cty_data($s[4]))[1..3]; push @s, $b[1] if @s < 7; push @s, '' if @s < 8; push @s, @a[0,1], @b[0,1] if @s < 12; - push @s, $a[2], $a[2] if @s < 14; + push @s, $a[2], $b[2] if @s < 14; } - $main::dbh->spot_insert(\@s, $sth); $count++; } @@ -184,6 +191,9 @@ sub prepare push @out, $_[5]; push @out, @spd[1,2], @spt[1,2], $spd[3], $spt[3]; push @out, $_[6] if $_[6] && is_ipaddr($_[6]); + + # thus we now have: + # freq, call, time, comment, spotter, call country code, call itu, call cqzone, spotter country code, spotter itu, spotter cqzone, call state, spotter state, node, spotter ip address return @out; } @@ -222,7 +232,7 @@ sub add # $f5 = spotted dxcc country # $f6 = spotter dxcc country # $f7 = origin -# +# $f8 = ip address # # In addition you can specify a range of days, this means that it will start searching # from days less than today to days less than today @@ -302,6 +312,7 @@ sub search } } ); + dbg("Spot eval: $eval") if isdbg('searcheval');