X-Git-Url: https://defaria.com/gitweb/?a=blobdiff_plain;f=maps%2Fbin%2FMAPSDB.pm;h=ed0460c47143cc13ce3098df7a5677fb405e409f;hb=8af32b28b56662686b6ceb59f2e00dc19cfc7a33;hp=1f099027ebd6baa309f7cc385daa797cdad66f49;hpb=64cb05c445d480f29d266e70db6eb1d021d34456;p=clearscm.git diff --git a/maps/bin/MAPSDB.pm b/maps/bin/MAPSDB.pm index 1f09902..ed0460c 100644 --- a/maps/bin/MAPSDB.pm +++ b/maps/bin/MAPSDB.pm @@ -2,7 +2,7 @@ ################################################################################# # # File: $RCSfile: MAPSDB.pm,v $ -# Revision: $Revision: 1.1 $ +# Revision: $Revision: 1.1 $ # Description: MAPS Database routines # Author: Andrew@DeFaria.com # Created: Fri Nov 29 14:17:21 2002 @@ -17,6 +17,7 @@ package MAPSDB; use strict; use vars qw (@ISA @EXPORT); use DBI; +use Carp; use MAPSUtil; @@ -95,11 +96,13 @@ sub AddEmail ($$$) { $DB->do ($statement) or DBError 'AddEmail: Unable to do statement', $statement; + + return; } # AddEmail -sub AddList ($$$;$$) { - my ($listtype, $pattern, $sequence, $comment, $hitcount) = @_; - +sub AddList ($$$;$$$) { + my ($listtype, $pattern, $sequence, $comment, $hitcount, $last_hit) = @_; + $hitcount ||= 0; my ($user, $domain) = split /\@/, $pattern; @@ -123,16 +126,18 @@ sub AddList ($$$;$$) { } # if # Get next sequence # - if ($sequence eq 0) { + if ($sequence == 0) { $sequence = GetNextSequenceNo $userid, $listtype; } # if - my $timestamp = UnixDatetime2SQLDatetime (scalar (localtime)); + $last_hit //= UnixDatetime2SQLDatetime (scalar (localtime)); - my $statement = "insert into list values (\"$userid\", \"$listtype\", $pattern, $domain, $comment, $sequence, $hitcount, \"$timestamp\")"; + my $statement = "insert into list values (\"$userid\", \"$listtype\", $pattern, $domain, $comment, $sequence, $hitcount, \"$last_hit\")"; $DB->do ($statement) or DBError 'AddList: Unable to do statement', $statement; + + return; } # AddList sub AddLog ($$$) { @@ -152,6 +157,8 @@ sub AddLog ($$$) { $DB->do ($statement) or DBError 'AddLog: Unable to do statement', $statement; + + return; } # AddLog sub AddUser ($$$$) { @@ -195,15 +202,19 @@ sub RecordHit ($$$) { $DB->do ($statement) or DBError 'AddList: Unable to do statement', $statement; + + return; } # RecordHit -sub CheckOnList ($$) { +sub CheckOnList ($$;$) { # CheckOnList will check to see if the $sender is on the $listfile. # Return 1 if found 0 if not. - my ($listtype, $sender) = @_; + my ($listtype, $sender, $update) = @_; + + $update //= 1; - my $status = 0; - my $rule; + my $status = 0; + my ($rule, $hit_count); my $statement = "select pattern, domain, comment, sequence, hit_count from list where userid = '$userid' and type = '$listtype'"; @@ -216,7 +227,7 @@ sub CheckOnList ($$) { while (my @row = $sth->fetchrow_array) { last if !@row; - my $hit_count = pop (@row); + $hit_count = pop (@row); my $sequence = pop (@row); my $comment = pop (@row); my $domain = pop (@row); @@ -255,7 +266,7 @@ sub CheckOnList ($$) { $rule .= " - $comment" if $comment and $comment ne ''; $status = 1; - RecordHit $listtype, $sequence, ++$hit_count; + RecordHit $listtype, $sequence, ++$hit_count if $update; last; } # if @@ -263,7 +274,7 @@ sub CheckOnList ($$) { $sth->finish; - return ($status, $rule); + return ($status, $rule, $hit_count); } # CheckOnList sub CleanEmail ($) { @@ -296,7 +307,7 @@ sub CleanEmail ($) { } # unless # Just return if there's nothing to delete - return $count if ($count eq 0); + return $count if ($count == 0); # Delete emails for userid whose older than $timestamp $statement = "delete from email where userid = '$userid' and timestamp < '$timestamp'"; @@ -342,7 +353,7 @@ sub CleanLog ($) { } # unless # Just return if there's nothing to delete - return $count if ($count eq 0); + return $count if ($count == 0); # Delete log entries for userid whose older than $timestamp $statement = "delete from log where userid = '$userid' and timestamp < '$timestamp'"; @@ -386,7 +397,7 @@ sub CleanList ($;$) { $count = $row[0] ? $row[0] : 0; # Just return if there's nothing to delete - return $count if ($count eq 0); + return $count if ($count == 0); # Get data for these entries $statement = "select type, sequence, hit_count from list where userid = '$userid' and type = '$listtype' and last_hit < '$timestamp'"; @@ -448,6 +459,8 @@ sub CleanList ($;$) { sub CloseDB () { $DB->disconnect; + + return; } # CloseDB sub CountMsg ($) { @@ -504,7 +517,7 @@ sub DeleteEmail ($) { my $count = count ('email', $condition); # Just return if there's nothing to delete - return $count if ($count eq 0); + return $count if ($count == 0); my $statement = 'delete from email where ' . $condition; @@ -521,7 +534,7 @@ sub DeleteList ($$) { my $count = count ('list', "userid = '$userid' and type = '$type' and sequence = '$sequence'"); # Just return if there's nothing to delete - return $count if ($count eq 0); + return $count if ($count == 0); my $statement = "delete from list where userid = '$userid' and type = '$type' and sequence = '$sequence'"; @@ -547,7 +560,7 @@ sub DeleteLog ($) { my $count = count ('log', $condition); # Just return if there's nothing to delete - return $count if ($count eq 0); + return $count if ($count == 0); my $statement = 'delete from log where ' . $condition; @@ -676,7 +689,7 @@ sub GetEmail ($) { my $userid = pop @email; return $userid, $sender, $subject, $timestamp, $message; } else { - return undef; + return; } # if } # GetEmail @@ -696,7 +709,7 @@ sub GetList ($) { my $userid = pop @list; return $userid, $type, $pattern, $domain, $comment, $sequence, $hit_count, $last_hit; } else { - return undef; + return; } # if } # GetList @@ -713,7 +726,7 @@ sub GetLog ($) { my $userid = pop @log; return $userid, $timestamp, $sender, $type, $message; } else { - return undef; + return; } # if } # GetLog @@ -737,7 +750,7 @@ sub GetUser ($) { my $userid = pop @user; return ($userid, $name, $email, $password); } else { - return undef; + return; } # if } # GetUser @@ -819,7 +832,7 @@ sub OpenDB ($$) { if (!$DB || $DB eq '') { #$dbserver='localhost'; $DB = DBI->connect("DBI:$dbdriver:$dbname:$dbserver", $username, $password, {PrintError => 0}) - or die "Couldn't connect to $dbname database as $username\n" . $DBI::errstr; + or croak "Couldn't connect to $dbname database as $username\n" . $DBI::errstr; } # if return $DB; @@ -853,6 +866,8 @@ sub OptimizeDB () { $sth->execute or DBError 'OptimizeDB: Unable to execute statement', $statement; + + return; } # OptimizeDB sub ResequenceList ($$) { @@ -921,7 +936,7 @@ sub ReturnSenders ($$$;$$) { $dateCond = "and timestamp > '$sod' and timestamp < '$eod'"; } # if - my $statement = <prepare ($statement) @@ -1038,7 +1043,7 @@ sub ReturnEmails ($$$;$$) { my $eod = $date . ' 23:59:59'; if ($type eq 'returned') { - $statement = <fetchrow_array) { last if !@row; - my $data = pop @row; - my $timestamp = pop @row; - my $subject = pop @row; - my $sender = pop @row; - my $user = pop @row; + my $data = pop @row; + my $timestamp = pop @row; + my $subject = pop @row; + my $sender = pop @row; + my $user = pop @row; my $msg_space = - length ($userid) + - length ($sender) + - length ($subject) + - length ($timestamp) + + length ($userid) + + length ($sender) + + length ($subject) + + length ($timestamp) + length ($data); - $total_space += $msg_space; - $msg_space{$sender} += $msg_space; + $total_space += $msg_space; + $msg_space{$sender} += $msg_space; } # while $sth->finish;