*** empty log message ***
[spider.git] / perl / DXProt.pm
index 88aef0db00395a2be049f12f8590be58d66c529d..a7cf9e6f9d96952db58fd4b9c4b41f493f51833f 100644 (file)
@@ -37,7 +37,6 @@ use vars qw($me $pc11_max_age $pc23_max_age
                        $allowzero $decode_dk0wcy);
 
 $me = undef;                                   # the channel id for this cluster
-$decode_dk0wcy = undef;                        # if set use this callsign to decode announces from the EU WWV data beacon
 $pc11_max_age = 1*3600;                        # the maximum age for an incoming 'real-time' pc11
 $pc23_max_age = 1*3600;                        # the maximum age for an incoming 'real-time' pc23
 
@@ -106,6 +105,7 @@ sub start
        # get the INPUT filters (these only pertain to Clusters)
        $self->{inspotfilter} = Filter::read_in('spots', $call, 1);
        $self->{inwwvfilter} = Filter::read_in('wwv', $call, 1);
+       $self->{inwcyfilter} = Filter::read_in('wcy', $call, 1);
        $self->{inannfilter} = Filter::read_in('ann', $call, 1);
        
        # set unbuffered and no echo
@@ -228,6 +228,7 @@ sub normal
                        }
                        
                        # do some de-duping
+                       $field[5] =~ s/^\s+//;      # take any leading blanks off
                        if (Spot::dup($field[1], $field[2], $d, $field[5])) {
                                dbg('chan', "Duplicate Spot ignored\n");
                                return;
@@ -260,6 +261,7 @@ sub normal
                
                if ($pcno == 12) {              # announces
                        # announce duplicate checking
+                       $field[3] =~ s/^\s+//;  # remove leading blanks
                        if (AnnTalk::dup($field[1], $field[2], $field[3])) {
                                dbg('chan', "Duplicate Announce ignored\n");
                                return;
@@ -278,13 +280,6 @@ sub normal
 
                                # send it
                                $self->send_announce($line, @field[1..6]);
-                               
-                               if ($decode_dk0wcy && $field[1] eq $decode_dk0wcy) {
-                                       my ($hour, $k, $next, $a, $r, $sfi, $alarm) = $field[3] =~ /^Aurora Beacon\s+(\d+)UTC,\s+Kiel\s+K=(\d+),.*ed\s+K=(\d+),\s+A=(\d+),\s+R=(\d+),\s+SFI=(\d+),.*larm:\s+(\w+)/;
-                                       $alarm = ($alarm =~ /^Y/i) ? ', Aurora in DE' : ''; 
-                                       my $wwv = Geomag::update($main::systime, $hour, $sfi, $a, $k, "R=$r, Next K=$next$alarm", $decode_dk0wcy, $field[5], $r) if $sfi && $r;
-                               }
-                               
                        } else {
                                $self->route($field[2], $line);
                        }
@@ -877,11 +872,9 @@ sub finish
 {
        my $self = shift;
        my $call = $self->call;
-       my $nopc39 = shift;
+       my $conn = shift;
        my $ref = DXCluster->get_exact($call);
        
-       $self->send_now("D", DXProt::pc39($main::mycall, $self->msg('disc1', "System Op"))) unless $nopc39;
-       
        # unbusy and stop and outgoing mail
        my $mref = DXMsg::get_busy($call);
        $mref->stop_msg($call) if $mref;
@@ -1350,5 +1343,17 @@ sub addrcmd
                route(undef, $to, pc34($main::mycall, $to, $cmd));
        }
 }
+
+sub disconnect
+{
+       my $self = shift;
+       my $nopc39 = shift;
+
+       if ($self->{conn} && !$nopc39) {
+               $self->send_now("D", DXProt::pc39($main::mycall, $self->msg('disc1', "System Op")));
+       }
+
+       $self->SUPER::disconnect;
+}
 1;
 __END__