- Added lines-counter again.
authorocto <octo>
Wed, 13 Apr 2005 16:02:48 +0000 (16:02 +0000)
committerocto <octo>
Wed, 13 Apr 2005 16:02:48 +0000 (16:02 +0000)
- Minor bugfixes..

lib/Onis/Data/Core.pm
lib/Onis/Html.pm

index 2925756..701e086 100644 (file)
@@ -34,7 +34,8 @@ the F<users.conf> defines a mapping of B<chatter> -E<gt> B<name>.
 
 =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');
 
@@ -47,6 +48,8 @@ qw(
 );
 @Onis::Data::Core::ISA = ('Exporter');
 
+our $LinesThisRun = 0;
+
 our $PluginCallbacks = {};
 our $OutputCallbacks = [];
 our @AllNicks = ();
@@ -132,14 +135,14 @@ sub store
                $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;
@@ -190,8 +193,14 @@ sub store
                }
        }
 
-       # TODO
-       #$DATA->{'total_lines'}++;
+       {
+               my ($counter) = $GeneralCounters->get ('lines_total');
+               $counter ||= 0;
+               $counter++;
+               $GeneralCounters->put ('lines_total', $counter);
+
+               $LinesThisRun++;
+       }
 
        if (defined ($PluginCallbacks->{$type}))
        {
@@ -572,7 +581,7 @@ sub nick_to_ident
        }
        else
        {
-               ($ident) = $Nick2Ident->get ($nick);
+               ($ident) = $NickToIdentCache->get ($nick);
                $ident ||= '';
        }
 
@@ -629,8 +638,11 @@ Returns the total number of lines parsed so far.
 
 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>)
@@ -645,11 +657,11 @@ sub nick_rename
        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);
        }
 }
 
@@ -662,7 +674,7 @@ Print the output. Should be called only once..
 sub print_output
 {
        # FIXME FIXME FIXME
-       if (!get_total_lines () and 0)
+       if (!get_total_lines ())
        {
                print STDERR <<'MESSAGE';
 
@@ -704,7 +716,7 @@ sub register_plugin
                return (undef);
        }
 
-       if ($type eq 'OutputCallbacks')
+       if ($type eq 'OUTPUT')
        {
                push (@$OutputCallbacks, $sub_ref);
        }
index 5e11740..077138d 100644 (file)
@@ -171,19 +171,22 @@ sub close_file
 {
        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;
@@ -196,9 +199,9 @@ EOF
        print  $fh '    <td class="left">';
        printf $fh ($gen, $now, "onis $::VERSION (&quot;onis not irc stats&quot;)");
        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>&lt;octo@<span class="spam">nospam.</span>verplant.org&gt;');
+       printf $fh ($by, '2000-2005', '<a href="http://verplant.org/">Florian octo Forster</a></span> <span>&lt;octo@<span class="spam">nospam.</span>verplant.org&gt;');
        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));