+25Apr99=======================================================================
+1. Fixed problem with filtered spots not coming out.
+2. Added the possibility of filtering on channel callsign
15Mar99=======================================================================
1. added $actiondata to filter line to allow per action data such as no of hops
2. fixed a silly problem in talk for non-existant callsigns
'^set/nota', 'unset/talk', 'unset/talk',
'^set/noww', 'unset/wwv', 'unset/wwv',
'^set/nowx', 'unset/wx', 'unset/wx',
+ '^sh$', 'show', 'show',
'^sh.*/c/n', 'show/configuration nodes', 'show/configuration',
'^sh.*/c$', 'show/configuration', 'show/configuration',
'^sh.*/dx/(\d+)-(\d+)', 'show/dx $1-$2', 'show/dx',
# US. In other filters on the UK side I do the opposite see
# GB7DJK.pl.issue
#
-# The element list is:-
-# 0 = frequency
-# 1 = call
-# 2 = date in unix format
-# 3 = comment
-# 4 = spotter
-# 5 = spotted dxcc country
-# 6 = spotter's dxcc country
-# 7 = origin
-# 8 = spotted itu
-# 9 = spotted cq
-# 10 = spotter's itu
-# 11 = spotter's cq
+# the elements of each list are
+#
+# [action, field_no, sort, possible_values, hops]
+#
+# where:-
+#
+# action is 1 or 0
+#
+# the field list is:-
+# 0 = frequency
+# 1 = call
+# 2 = date in unix format
+# 3 = comment
+# 4 = spotter
+# 5 = spotted dxcc country
+# 6 = spotter's dxcc country
+# 7 = origin
+# 8 = spotted itu
+# 9 = spotted cq
+# 10 = spotter's itu
+# 11 = spotter's cq
+# 12 = callsign of the channel on which the spot has appeared
+#
+# sort is
+# n - numeric list of numbers e.g. [ 1,2,3 ]
+# r - ranges of pairs of numbers e.g. between 2 and 4 or 10 to 17 - [ 2,4, 10,17 ]
+# a - an alphanumeric regex
+# d - the default rule
+#
+# if hops is left out or zero then the existing hop count will be used as normal
#
# The spot data (in this case '15') is the used as the hop count
# if this is missing then the normal default applies
# I give him any spots that have a spotter or a spotted in the
# US. In other filters on the UK side I do the opposite see
# GB7DJK.pl.issue
+##
+# the elements of each list are
#
-# The element list is:-
-# 0 = frequency
-# 1 = call
-# 2 = date in unix format
-# 3 = comment
-# 4 = spotter
-# 5 = spotted dxcc country
-# 6 = spotter's dxcc country
-# 7 = origin
-# 8 = spotted itu
-# 9 = spotted cq
-# 10 = spotter's itu
-# 11 = spotter's cq
+# [action, field_no, sort, possible_values, hops]
+#
+# where:-
+#
+# action is 1 or 0
+#
+# the field list is:-
+# 0 = frequency
+# 1 = call
+# 2 = date in unix format
+# 3 = comment
+# 4 = spotter
+# 5 = spotted dxcc country
+# 6 = spotter's dxcc country
+# 7 = origin
+# 8 = spotted itu
+# 9 = spotted cq
+# 10 = spotter's itu
+# 11 = spotter's cq
+# 12 = callsign of the channel on which the spot has appeared
+#
+# sort is
+# n - numeric list of numbers e.g. [ 1,2,3 ]
+# r - ranges of pairs of numbers e.g. between 2 and 4 or 10 to 17 - [ 2,4, 10,17 ]
+# a - an alphanumeric regex
+# d - the default rule
+#
+# if hops is left out or zero then the existing hop count will be used as normal
#
# The spot data (in this case '15') is the used as the hop count
# if this is missing then the normal default applies
foreach $dxchan (@dxchan) {
next if $dxchan == $self;
my $routeit;
- my ($filter, $hops) = Filter::it($dxchan->{spotfilter}, @spot) if $dxchan->{spotfilter};
+ my ($filter, $hops) = Filter::it($dxchan->{spotfilter}, @spot, $self->{call} ) if $dxchan->{spotfilter};
if ($hops) {
- $line =~ s/\^H\d+\^\~$/\^H$hops\^\~/;
$routeit = $line;
+ $routeit =~ s/\^H\d+\^\~$/\^H$hops\^\~/;
} else {
$routeit = adjust_hops($dxchan, $line); # adjust its hop count by node name
next unless $routeit;