remove origin node from Spot Dupes as default
authorDirk Koopman <djk@tobit.co.uk>
Fri, 14 Jun 2024 20:02:48 +0000 (21:02 +0100)
committerDirk Koopman <djk@tobit.co.uk>
Fri, 14 Jun 2024 20:02:48 +0000 (21:02 +0100)
Changes
perl/Spot.pm

diff --git a/Changes b/Changes
index ca5179166aceaca47836ad8609f786573d496476..dd8c6ba3d0006eef56cb0d7e6a9f07b94c5f4af3 100644 (file)
--- a/Changes
+++ b/Changes
@@ -1,3 +1,11 @@
+14Jun24======================================================================
+1. Add new flag $Spot::no_node_in_dupe (default: 1) which disables including
+   the origin node for spot dupes. This should stop people posting the same
+   spot simultaniously on several nodes at once. Or at least just ignore all
+   the "duplicates".
+
+   The curious thing is that this (default) behaviour was the only deduping
+   done originally and there was some reason to include the origin node. 
 30Apr24======================================================================
 1. "Fix" PC92 and PC19 node user creation and modification such that non-
    connected nodes or nodes that DON'T have sysop altered privilege and
index 316eb4b9be4f78484989480cda8b3a17554f084a..88f13a0089cb4558245a48c90f3258a163f19ccb 100644 (file)
@@ -77,7 +77,7 @@ our $readback = $main::is_win ? 0 : 1; # don't read spot files backwards if it's
 our $qrggranularity = 1000;    # normalise the qrg to this number of hz (default: 100khz), so tough luck if you have a fumble fingers moment
 our $timegranularity = 600;            # ditto to the nearest 100 seconds 
 our $oldstyle = 0;                             # revert to traditional dupe key format
-
+our $no_node_in_dupe = 1;              # remove the node field from dupe considerations. 
 
 if ($readback) {
        $readback = `which tac`;
@@ -530,18 +530,24 @@ sub dup
 
        $l = length $text;
        $dtext .= qq{->final:'$text'($l)} if isdbg('spottext');
-               
-       my $ldupkey = $oldstyle ? "X|$call|$by|$node|$freq|$d|$text" : "X|$call|$by|$node|$qrg|$nd|$text";
 
        my $t = 0;
-       $t = DXDupe::find($ldupkey);
-       dbg("Spot::dup ldupkey $ldupkey t '$t'") if isdbg('spotdup');
-       $dtext .= ' DUPE' if $t;
-       dbg("text transforms: $dtext") if length $text && isdbg('spottext');
-       return 1 if $t > 0;     
-       
-       DXDupe::add($ldupkey, $main::systime+$dupage) unless $just_find;
+       my $ldupkey;
 
+       # new feature: don't include the origin node in Spot dupes
+       # default = true
+       unless ($no_node_in_dupe) {
+               $ldupkey = $oldstyle ? "X|$call|$by|$node|$freq|$d|$text" : "X|$call|$by|$node|$qrg|$nd|$text";
+
+               $t = DXDupe::find($ldupkey);
+               dbg("Spot::dup ldupkey $ldupkey t '$t'") if isdbg('spotdup');
+               $dtext .= ' DUPE' if $t;
+               dbg("text transforms: $dtext") if length $text && isdbg('spottext');
+               return 1 if $t > 0;     
+               
+               DXDupe::add($ldupkey, $main::systime+$dupage) unless $just_find;
+       }
+       
        $otext = substr($otext, 0, $duplth) if length $otext > $duplth; 
        $otext =~ s/\s+$//;
        if (length $otext && $otext ne $text) {