=cut
-our $Nick2Ident = Onis::Data::Persistent->new ('Nick2Ident', 'nick', 'ident');
+our $GeneralCounters = Onis::Data::Persistent->new ('GeneralCounters', 'key', 'value');
+our $NickToIdentCache = Onis::Data::Persistent->new ('NickToIdentCache', 'nick', 'ident');
our $ChatterList = Onis::Data::Persistent->new ('ChatterList', 'chatter', 'counter');
our $ChannelNames = Onis::Data::Persistent->new ('ChannelNames', 'channel', 'counter');
);
@Onis::Data::Core::ISA = ('Exporter');
+our $LinesThisRun = 0;
+
our $PluginCallbacks = {};
our $OutputCallbacks = [];
our @AllNicks = ();
$data->{'user'} = $user;
$data->{'ident'} = $ident;
- $Nick2Ident->put ($nick, $ident);
+ $NickToIdentCache->put ($nick, $ident);
$chatter = "$nick!$ident";
($counter) = $ChatterList->get ($chatter);
$counter ||= 0; $counter++;
$ChatterList->put ($chatter, $counter);
}
- elsif (($ident) = $Nick2Ident->get ($nick))
+ elsif (($ident) = $NickToIdentCache->get ($nick))
{
my $chatter = "$nick!$ident";
my $counter;
}
}
- # TODO
- #$DATA->{'total_lines'}++;
+ {
+ my ($counter) = $GeneralCounters->get ('lines_total');
+ $counter ||= 0;
+ $counter++;
+ $GeneralCounters->put ('lines_total', $counter);
+
+ $LinesThisRun++;
+ }
if (defined ($PluginCallbacks->{$type}))
{
}
else
{
- ($ident) = $Nick2Ident->get ($nick);
+ ($ident) = $NickToIdentCache->get ($nick);
$ident ||= '';
}
sub get_total_lines
{
- # TODO
- #return ($DATA->{'total_lines'});
+ my ($total) = $GeneralCounters->get ('lines_total');
+
+ return (qw()) unless ($total);
+
+ return ($total, $LinesThisRun);
}
=item B<nick_rename> (I<$old_nick>, I<$new_nick>)
my $new_nick = shift;
my $ident;
- ($ident) = $Nick2Ident->get ($old_nick);
+ ($ident) = $NickToIdentCache->get ($old_nick);
if (defined ($ident) and ($ident))
{
- $Nick2Ident->put ($new_nick, $ident);
+ $NickToIdentCache->put ($new_nick, $ident);
}
}
sub print_output
{
# FIXME FIXME FIXME
- if (!get_total_lines () and 0)
+ if (!get_total_lines ())
{
print STDERR <<'MESSAGE';
return (undef);
}
- if ($type eq 'OutputCallbacks')
+ if ($type eq 'OUTPUT')
{
push (@$OutputCallbacks, $sub_ref);
}
{
my $runtime = time () - $time_start;
my $now = scalar (localtime ());
- my $total_lines = get_total_lines () || 0;
+ my ($total_lines, $lines_this_time) = get_total_lines ();
my $lines_per_sec = 'infinite';
+ $total_lines ||= 0;
+ $lines_this_time ||= 0;
+
my $hp = translate ("onis' homepage");
my $gen = translate ('This page was generated <span>on %s</span> <span>with %s</span>');
- my $stats = translate ('%u lines processed in %u seconds (%s lines per second)');
+ my $stats = translate ('%u lines processed in %u seconds (%s lines per second, %u lines total)');
my $by = translate ('onis is written %s <span>by %s</span>');
my $link = translate ('Get the latest version from %s');
my $lps = translate ('infinite');
if ($runtime)
{
- $lps = sprintf ("%.1f", ($total_lines / $runtime));
+ $lps = sprintf ("%.1f", ($lines_this_time / $runtime));
}
print $fh <<EOF;
print $fh ' <td class="left">';
printf $fh ($gen, $now, "onis $::VERSION ("onis not irc stats")");
print $fh "<br />\n ";
- printf $fh ($stats, $total_lines, $runtime, $lps);
+ printf $fh ($stats, $lines_this_time, $runtime, $lps, $total_lines);
print $fh qq#\n </td>\n <td class="right">\n #;
- printf $fh ($by, '2000-2004', '<a href="http://verplant.org/">Florian octo Forster</a></span> <span><octo@<span class="spam">nospam.</span>verplant.org>');
+ printf $fh ($by, '2000-2005', '<a href="http://verplant.org/">Florian octo Forster</a></span> <span><octo@<span class="spam">nospam.</span>verplant.org>');
print $fh qq#<img id="smalllogo" src="http://images.verplant.org/onis-small.png" /># if ($PUBLIC_PAGE);
print $fh "<br />\n ";
printf $fh ($link, sprintf (qq#<a href="http://verplant.org/onis/">%s</a>#, $hp));