added the state filtering stuff
[spider.git] / perl / AnnTalk.pm
index b48dc7e0ca56f58a1bc8ed5693541cf89d6bbc93..30f8964c4aee36ae463effa203b2c9a9dd935cd0 100644 (file)
@@ -34,11 +34,13 @@ $filterdef = bless ([
                          ['origin_dxcc', 'nc', 10],
                          ['origin_itu', 'ni', 11],
                          ['origin_zone', 'nz', 12],
+                         ['by_state', 'nz', 13],
+                         ['origin_state', 'nz', 14],
                         ], 'Filter::Cmd');
 
 use vars qw($VERSION $BRANCH);
 $VERSION = sprintf( "%d.%03d", q$Revision$ =~ /(\d+)\.(\d+)/ );
-$BRANCH = sprintf( "%d.%03d", q$Revision$ =~ /\d+\.\d+\.(\d+)\.(\d+)/ ) || 0;
+$BRANCH = sprintf( "%d.%03d", q$Revision$ =~ /\d+\.\d+\.(\d+)\.(\d+)/  || (0,0));
 $main::build += $VERSION;
 $main::branch += $BRANCH;
 
@@ -62,6 +64,21 @@ sub listdups
        return DXDupe::listdups('A', $dupage, @_);
 }
 
-
+# is this text field a likely announce to talk substitution?
+# this may involve all sorts of language dependant heuristics, but 
+# then again, it might not
+sub is_talk_candidate
+{
+       my ($from, $text) = @_;
+       my $call;
+       ($call) = $text =~ /^\s*(?:[Xx]|[Tt][Oo]?:?)\s+([\w-]+)/;
+       ($call) = $text =~ /^\s*>\s*([\w-]+)\b/ unless $call;
+       ($call) = $text =~ /^\s*([\w-]+):?\b/ unless $call;
+       if ($call) {
+               $call = uc $call;
+               return is_callsign($call);
+       }
+    return undef;
+}
 1;