X-Git-Url: https://defaria.com/gitweb/?a=blobdiff_plain;f=maps%2Flib%2FMAPS.pm;h=8a764cfc0560d47b4a296d67e5307807bd2b7a42;hb=dd6358fafad300501a15d53b302c07c76aca8847;hp=c2069c1396153fcf0711633821bea90780eba200;hpb=983213261f42cfb514586f4a72f5f06bcf025409;p=clearscm.git diff --git a/maps/lib/MAPS.pm b/maps/lib/MAPS.pm index c2069c1..8a764cf 100644 --- a/maps/lib/MAPS.pm +++ b/maps/lib/MAPS.pm @@ -106,14 +106,14 @@ my $mapsbase = "$FindBin::Bin/.."; sub _cleanTables($$;$) { my ($table, $timestamp, $dryrun) = @_; - my $count = 0; - my $msg = 'Records deleted'; my $condition = "userid = '$userid' and timestamp < '$timestamp'"; if ($dryrun) { return $db->count($table, $condition); } else { - return $db->delete($table, $condition); + my ($count, $msg) = $db->delete($table, $condition); + + return $count; } # if } # _cleanTables @@ -500,6 +500,7 @@ sub CleanList(%) { my $table = 'list'; my $condition = "userid='$params{userid}' and type='$params{type}'"; my $count = 0; + my $msg; # First let's go through the list to see if we have an domain level entry # (e.g. @spammer.com) and also individual entries (baddude@spammer.com) then @@ -536,11 +537,14 @@ sub CleanList(%) { } # for } # while - my $msg = 'Records deleted'; $condition = "userid='$params{userid}' and type='$params{type}' and retention is not null"; # First see if anything needs to be deleted - return (0, $msg) unless $db->count($table, $condition); + ($count, $msg) = $db->count($table, $condition); + + return 0 unless $count; + + $count = 0; my ($err, $errmsg) = $db->find($table, $condition); @@ -570,9 +574,9 @@ sub CleanList(%) { . "$rec->{pattern}\@$rec->{domain} $dryrunstr"); $params{log}->dbug("last hit = $rec->{last_hit} < agedDate = $agedDate"); } # if - - $count++; } # unless + + $count++; } else { $params{log}->dbug("$rec->{userid}:$params{type}:$rec->{sequence}: nodelete $dryrunstr " . "last hit = $rec->{last_hit} >= agedDate = $agedDate") @@ -583,9 +587,9 @@ sub CleanList(%) { ResequenceList( userid => $params{userid}, type => $params{type}, - ) if $count and !$params{dryrun}; + ) if $count && !$params{dryrun}; - return wantarray ? ($count, $msg) : $count; + return $count; } # CleanList sub CountEmail(%) { @@ -1009,7 +1013,7 @@ sub ResequenceList(%) { $db->lock('write', $table); # Get all records for $userid and $type - my $listrecs = $db->get($table, $condition); + my $listrecs = $db->get($table, $condition,'*', 'order by hit_count desc'); # Delete all of the list entries for this $userid and $type my ($count, $msg) = $db->delete($table, $condition);