Explorar o código

Patch from Phil Gregory to fix the bug with most referenced nicks, where
"number of uses" wasn't being incremented for every alias

Morten Brix Pedersen %!s(int64=24) %!d(string=hai) anos
pai
achega
ec17e14242
Modificáronse 1 ficheiros con 17 adicións e 0 borrados
  1. 17 0
      modules/Pisg/Parser/Logfile.pm

+ 17 - 0
modules/Pisg/Parser/Logfile.pm

@@ -75,6 +75,7 @@ sub analyze
         }
 
         _pick_random_lines(\%stats, \%lines);
+	_uniquify_nicks(\%stats);
 
         my ($sec,$min,$hour) = gmtime(time() - $starttime);
         $stats{processtime} =
@@ -465,6 +466,22 @@ sub _pick_random_lines
     }
 }
 
+sub _uniquify_nicks {
+    my ($stats) = @_;
+
+    foreach my $word (keys %{ $stats->{wordcounts} }) {
+	my $realnick = find_alias($word);
+
+	# The lc() is an attempt at being case insensitive.
+	if (lc($realnick) ne lc($word)) {
+	    $stats->{wordcounts}{$realnick} += $stats->{wordcounts}{$word};
+	    $stats->{wordnicks}{$realnick}   = $stats->{wordnicks}{$word};
+	    delete $stats->{wordcounts}{$word};
+	    delete $stats->{wordnicks}{$word};
+	}
+    }
+}
+
 sub _strip_mirccodes
 {
     my $line = shift;