add an RBN line to progress
[spider.git] / perl / DXDupe.pm
index 851e3a6953eef03450020f399a9efa2b4b17f42f..613a2aec677794ba1cd6fe145ea90c3901b61dac 100644 (file)
@@ -9,26 +9,25 @@
 
 package DXDupe;
 
+use strict;
+
 use DXDebug;
 use DXUtil;
 use DXVars;
+use DB_File;
 
 use vars qw{$lasttime $dbm %d $default $fn};
 
 $default = 48*24*60*60;
 $lasttime = 0;
-$fn = "$main::data/dupefile";
+localdata_mv("dupefile");
+$fn = localdata("dupefile");
 
 sub init
 {
+       unlink $fn;
        $dbm = tie (%d, 'DB_File', $fn);
-       unless ($dbm) {
-               eval { untie %d };
-               dbg("Dupefile $fn corrupted, removing...");
-               unlink $fn;
-               $dbm = tie (%d, 'DB_File', $fn) or confess "can't open dupe file: $fn ($!)";
-               confess "cannot open $fn $!" unless $dbm; 
-       }
+       confess "cannot open $fn $!" unless $dbm;
 }
 
 sub finish
@@ -36,6 +35,7 @@ sub finish
        undef $dbm;
        untie %d;
        undef %d;
+       unlink $fn;
 }
 
 sub check
@@ -69,7 +69,7 @@ sub process
        # once an hour
        if ($main::systime - $lasttime >=  3600) {
                my @del;
-               while (($k, $v) = each %d) {
+               while (my ($k, $v) = each %d) {
                        push @del, $k  if $main::systime >= $v;
                }
                delete $d{$_} for @del;
@@ -81,7 +81,7 @@ sub get
 {
        my $start = shift;
        my @out;
-       while (($k, $v) = each %d) {
+       while (my ($k, $v) = each %d) {
                push @out, $k, $v if !$start || $k =~ /^$start/; 
        }
        return @out;