#!/usr/bin/perl ################################################################################ # # File: $RCSfile: mapsscrub,v $ # Revision: $Revision: 1.1 $ # Description: This script scrubs messages from the MAPS database based on the # users settings. # Author: Andrew@DeFaria.com # Created: Fri Nov 29 14:17:21 2002 # Modified: $Date: 2013/06/12 14:05:47 $ # Language: perl # # (c) Copyright 2000-2006, Andrew@DeFaria.com, all rights reserved. # ################################################################################ use strict; use warnings; use FindBin; use lib $FindBin::Bin; use MAPS; use MAPSUtil; my $userid; my $verbose = defined $ARGV[0] && $ARGV[0] eq "-v" ? 1 : 0; my $total_emails = 0; my $total_log_entries = 0; my $total_list_entries = 0; my $total_users_emails = 0; my ($history, $nbr_emails, $nbr_log_entries, $nbr_list_entries, $users_emails); format = @<<<<<<<<<<<<<<<< @>> @##### @##### @##### @##### $userid,$history,$nbr_emails,$nbr_log_entries,$nbr_list_entries,$users_emails . format STDOUT_TOP = @|||||||||||||||||||||||||||||||||||||||||||||||| "MAPS Scrubber" User ID Age Email Log List User's Emails ----------------- --- ------ ------ ------ ------------- . sub verbose { my $msg = shift; return if $verbose eq 0; print "$msg\n"; } # verbose sub CleanUp { my $userid = shift; my %options = GetUserOptions $userid; $history = $options{"History"}; my $timestamp = SubtractDays (Today2SQLDatetime, $history); $nbr_emails = CleanEmail $timestamp; $nbr_log_entries = CleanLog $timestamp; $nbr_list_entries = CleanList $timestamp, "null"; $users_emails = MAPSDB::count ("email", "userid = \"$userid\""); write () if $verbose; return ($nbr_emails, $nbr_log_entries, $nbr_list_entries, $users_emails); } # CleanUp # Main my $handle = FindUser; #$~ = "REPORT" if $verbose; while (($userid) = GetUser $handle) { last if !defined $userid; SetContext $userid; my ($emails, $log_entries, $list_entries, $users_emails) = CleanUp $userid; $total_emails += $emails; $total_log_entries += $log_entries; $total_list_entries += $list_entries; $total_users_emails += $users_emails; } # while $handle->finish; if ($verbose) { $userid = "Total:"; $history = "n/a"; $nbr_emails = $total_emails; $nbr_log_entries = $total_log_entries; $nbr_list_entries = $total_list_entries; $users_emails = $total_users_emails; write (); } # if # Now optimize the database OptimizeDB; exit;