new RBN weighted QRG scoring system.
[spider.git] / perl / DXProtout.pm
index 03676089dc33acd5b5072cd973f0babb32258398..7629ca1676c4ae09b62c5c109640b6ded392fe84 100644 (file)
@@ -11,7 +11,7 @@
 
 package DXProt;
 
-@ISA = qw(DXProt DXChannel);
+@ISA = qw(DXChannel);
 
 use DXUtil;
 use DXM;
@@ -43,28 +43,39 @@ sub pc10
        $origin ||= $main::mycall;
        $text = unpad($text);
        $text = ' ' unless $text && length $text > 0;
-       $text =~ s/\^/%5E/g;
+       $text =~ s/\^/~/g;
        return "PC10^$from^$user1^$text^*^$user2^$origin^~";
 }
 
-# create a dx message (call, freq, dxcall, text)
+# create a dx message (call, freq, dxcall, text) see also pc61
 sub pc11
 {
        my ($mycall, $freq, $dxcall, $text) = @_;
        my $hops = get_hops(11);
        my $t = time;
        $text = ' ' if !$text;
-       $text =~ s/\^/%5E/g;
+       $text =~ s/\^/~/g;
        return sprintf "PC11^%.1f^$dxcall^%s^%s^$text^$mycall^$main::mycall^$hops^~", $freq, cldate($t), ztime($t);
 }
 
+# create a dx message (call, freq, dxcall, text, $ipaddr) see also pc11
+sub pc61
+{
+       my ($mycall, $freq, $dxcall, $text, $ipaddr) = @_;
+       my $hops = get_hops(61) || get_hops(11);
+       my $t = time;
+       $text = ' ' if !$text;
+       $text =~ s/\^/~/g;
+       return sprintf "PC61^%.1f^$dxcall^%s^%s^$text^$mycall^$main::mycall^$ipaddr^$hops^~", $freq, cldate($t), ztime($t);
+}
+
 # create an announce message
 sub pc12
 {
        my ($call, $text, $tonode, $sysop, $wx, $origin) = @_;
        my $hops = get_hops(12);
        $text ||= ' ';
-       $text =~ s/\^/%5E/g;
+       $text =~ s/\^/~/g;
        $tonode ||= '*';
        $sysop ||= ' ';
        $wx ||= '0';
@@ -119,7 +130,7 @@ sub pc17
 sub pc18
 {
        my $flags = shift;
-       return "PC18^DXSpider Version: $main::version Build: $main::subversion.$main::build$flags^$DXProt::myprot_version^";
+       return "PC18^DXSpider Version: $main::version Build: $main::build Git: $main::gitbranch/$main::gitversion$flags^$DXProt::myprot_version^";
 }
 
 #
@@ -221,7 +232,7 @@ sub pc29
 {
        my ($fromnode, $tonode, $stream, $text) = @_;
        $text = ' ' unless defined $text && length $text > 0;
-       $text =~ s/\^/%5E/og;                   # remove ^
+       $text =~ s/\^/~/g;                      # remove ^
        return "PC29^$fromnode^$tonode^$stream^$text^~";
 }
 
@@ -385,7 +396,7 @@ sub _gen_pc92
        }
        for (@_) {
                $s .= '^' . _encode_pc92_call($_, $ext);
-               $ext = 0;                               # only the first slot has an ext.
+               $ext = 0 unless $sort eq 'A';                           # only the first slot has an ext.
        }
        return $s . '^H99^';
 }
@@ -410,7 +421,7 @@ sub gen_pc92_with_time
 # add a local one
 sub pc92a
 {
-       return _gen_pc92('A', 0, @_);
+       return _gen_pc92('A', 2, @_);
 }
 
 # delete a local one
@@ -463,7 +474,7 @@ sub pc93
        my $origin = shift;                     # this will be present on proxying from PC10
 
        $line = unpad($line);
-       $line =~ s/\^/\\5E/g;           # remove any ^ characters
+       $line =~ s/\^/~/g;              # remove any ^ characters
        my $s = "PC93^$main::mycall^" . gen_pc9x_t() . "^$to^$from^$via^$line";
        $s .= "^$origin" if $origin;
        $s .= "^H99^";