use DXLog;
use Julian;
use IO::File;
-use Carp;
+use DXDebug;
+use DXDupe;
use strict;
-use vars qw($date $sfi $k $a $r $forecast @allowed @denied $fp $node $from);
+use vars qw($date $sfi $k $a $r $forecast @allowed @denied $fp $node $from
+ $dirprefix $param
+ $duplth $dupage $filterdef);
$fp = 0; # the DXLog fcb
$date = 0; # the unix time of the WWV (notional)
$from = ""; # who this came from
@allowed = (); # if present only these callsigns are regarded as valid WWV updators
@denied = (); # if present ignore any wwv from these callsigns
-my $dirprefix = "$main::data/wwv";
-my $param = "$dirprefix/param";
+$duplth = 20; # the length of text to use in the deduping
+$dupage = 12*3600; # the length of time to hold spot dups
+
+$dirprefix = "$main::data/wwv";
+$param = "$dirprefix/param";
+
+$filterdef = bless ([
+ # tag, sort, field, priv, special parser
+ ['by', 'c', 7],
+ ['origin', 'c', 8],
+ ['channel', 'n', 9],
+ ['by_dxcc', 'n', 10],
+ ['by_itu', 'n', 11],
+ ['by_zone', 'n', 12],
+ ['origin_dxcc', 'c', 13],
+ ['origin_itu', 'c', 14],
+ ['origin_itu', 'c', 15],
+ ], 'Filter::Cmd');
sub init
{
$fp = DXLog::new('wwv', 'dat', 'm');
- mkdir $dirprefix, 0777 if !-e $dirprefix; # now unnecessary DXLog will create it
do "$param" if -e "$param";
confess $@ if $@;
}
}
return @in;
}
+
+# enter the spot for dup checking and return true if it is already a dup
+sub dup
+{
+ my ($d, $sfi, $k, $a, $text) = @_;
+
+ # dump if too old
+ return 2 if $d < $main::systime - $dupage;
+
+ my $dupkey = "W$d|$sfi|$k|$a";
+ return DXDupe::check($dupkey, $main::systime+$dupage);
+}
+
+sub listdups
+{
+ return DXDupe::listdups('W', $dupage, @_);
+}
1;
__END__;
+