=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);
}