- my $flushed = 0;
- $stats{'count_old'} = &countKeys("seen") || 0;
- $stats{'new'} = 0;
- $stats{'old'} = 0;
-
- if ($param{'DBType'} =~ /^mysql|pg|postgres/i) {
- foreach $nick (keys %seencache) {
- if (0) {
- #BROKEN#
- my $retval = &dbReplace("seen", "nick", $nick, (
- "nick" => $seencache{$nick}{'nick'},
- "time" => $seencache{$nick}{'time'},
- "host" => $seencache{$nick}{'host'},
- "channel" => $seencache{$nick}{'chan'},
- "message" => $seencache{$nick}{'msg'},
- ) );
- &DEBUG("retval => $retval.");
- delete $seencache{$nick};
- $flushed++;
-
- next;
- }
- ### OLD CODE...
-
- my $exists = &dbGet("seen","nick", $nick, "nick");
-
- if (defined $exists and $exists) {
- &dbUpdate("seen", "nick", $nick, (
- "time" => $seencache{$nick}{'time'},
- "host" => $seencache{$nick}{'host'},
- "channel" => $seencache{$nick}{'chan'},
- "message" => $seencache{$nick}{'msg'},
- ) );
- $stats{'old'}++;
- } else {
- my $retval = &dbInsert("seen", $nick, (
- "nick" => $seencache{$nick}{'nick'},
- "time" => $seencache{$nick}{'time'},
- "host" => $seencache{$nick}{'host'},
- "channel" => $seencache{$nick}{'chan'},
- "message" => $seencache{$nick}{'msg'},
- ) );
- $stats{'new'}++;
-
- ### TODO: put bad nick into a list and don't do it again!
- &FIXME("Should never happen! (nick => $nick)") if !$retval;
- }
-
- delete $seencache{$nick};
- $flushed++;
- }
-
- } elsif ($param{'DBType'} =~ /^dbm/i) {
-
- foreach $nick (keys %seencache) {
- my $retval = &dbInsert("seen", $nick, (
- "nick" => $seencache{$nick}{'nick'},
- "time" => $seencache{$nick}{'time'},
- "host" => $seencache{$nick}{'host'},
- "channel" => $seencache{$nick}{'chan'},
- "message" => $seencache{$nick}{'msg'},
- ) );
-
- ### TODO: put bad nick into a list and don't do it again!
- &FIXME("Should never happen! (nick => $nick)") if !$retval;
-
- delete $seencache{$nick};
- $flushed++;
- }
- } else {
- &DEBUG("seenFlush: NO VALID FACTOID SUPPORT?");
- }
-
- &status("Flushed $flushed seen entries.") if ($flushed);
- &VERB(sprintf(" new seen: %03.01f%% (%d/%d)",
- $stats{'new'}*100/($stats{'count_old'} || 1),
- $stats{'new'}, $stats{'count_old'} ), 2) if ($stats{'new'});
- &VERB(sprintf(" now seen: %3.1f%% (%d/%d)",
- $stats{'old'}*100/&countKeys("seen"),
- $stats{'old'}, &countKeys("seen") ), 2) if ($stats{'old'});
-
- &WARN("scalar keys seenflush != 0!") if (scalar keys %seenflush);
+ my $flushed = 0;
+ $stats{'count_old'} = &countKeys('seen') || 0;
+ $stats{'new'} = 0;
+ $stats{'old'} = 0;
+
+ if ( $param{'DBType'} =~ /^(mysql|pgsql|sqlite(2)?)$/i ) {
+ foreach $nick ( keys %seencache ) {
+ my $retval = &sqlSet(
+ 'seen',
+ { 'nick' => lc $seencache{$nick}{'nick'} },
+ {
+ time => $seencache{$nick}{'time'},
+ host => $seencache{$nick}{'host'},
+ channel => $seencache{$nick}{'chan'},
+ message => $seencache{$nick}{'msg'},
+ }
+ );
+
+ delete $seencache{$nick};
+ $flushed++;
+ }
+ }
+ else {
+ &DEBUG('seenFlush: NO VALID FACTOID SUPPORT?');
+ }
+
+ &status("Seen: Flushed $flushed entries.") if ($flushed);
+ &VERB(
+ sprintf(
+ ' new seen: %03.01f%% (%d/%d)',
+ $stats{'new'} * 100 / ( $stats{'count_old'} || 1 ),
+ $stats{'new'},
+ ( $stats{'count_old'} || 1 )
+ ),
+ 2
+ ) if ( $stats{'new'} );
+ &VERB(
+ sprintf(
+ ' now seen: %3.1f%% (%d/%d)',
+ $stats{'old'} * 100 / ( &countKeys('seen') || 1 ), $stats{'old'},
+ &countKeys('seen')
+ ),
+ 2
+ ) if ( $stats{'old'} );
+
+ &WARN('scalar keys seenflush != 0!') if ( scalar keys %seenflush );