]> git.donarmstrong.com Git - infobot.git/commitdiff
- added 'unknown/cloaked' stats item to verstats.
authordms <dms@c11ca15a-4712-0410-83d8-924469b57eb5>
Tue, 30 Jan 2001 12:44:21 +0000 (12:44 +0000)
committerdms <dms@c11ca15a-4712-0410-83d8-924469b57eb5>
Tue, 30 Jan 2001 12:44:21 +0000 (12:44 +0000)
- nickometer chan code cleanup.

git-svn-id: https://svn.code.sf.net/p/infobot/code/trunk/blootbot@268 c11ca15a-4712-0410-83d8-924469b57eb5

src/CommandStubs.pl

index 225749af7a44fc8306d2f64f118e84123cb659b3..4495e10e2fd9e9a216cd96fde377fdd29900b555 100644 (file)
@@ -189,7 +189,7 @@ sub parseCmdHook {
 &addCmdHook("extra", 'uptime', ('CODEREF' => 'uptime', 'Identifier' => 'uptime',
        'Cmdstats' => 'Uptime') );
 &addCmdHook("extra", 'nullski', ('CODEREF' => 'nullski', ) );
-sub nullski { my ($arg) = @_; foreach (`$arg`) { &msg($who,$_); } }
+       sub nullski { my ($arg) = @_; foreach (`$arg`) { &msg($who,$_); } }
 &addCmdHook("extra", '(fm|freshmeat)', ('CODEREF' => 'Freshmeat::Freshmeat',
        'Identifier' => 'freshmeat', 'Cmdstats' => 'Freshmeat',
        'Forker' => 1, 'Help' => 'freshmeat') );
@@ -286,7 +286,7 @@ sub Modules {
        &loadMyModule($myModules{'nickometer'});
 
        if ($term =~ /^$mask{chan}$/) {
-           &DEBUG("nickometer: term == chan.");
+           &status("Doing nickometer for chan $term.");
 
            if (!&validChan($term)) {
                &msg($who, "error: channel is invalid.");
@@ -296,23 +296,27 @@ sub Modules {
            # step 1.
            my %nickometer;
            foreach (keys %{ $channels{lc $term}{''} }) {
-               if (!defined $_) {
-                   &WARN("nickometer: _ is undefined.");
+               my $value = &nickometer($_);
+
+               if (!defined $value) {
+                   &WARN("nickometer: value is undefined.");
                    next;
                }
+               &DEBUG("value => $value.");
 
-               my $value = &nickometer($_);
                $nickometer{$value}{$_} = 1;
            }
+
            # step 2.
            ### TODO: compact with map?
            my @list;
            foreach (sort {$a <=> $b} keys %nickometer) {
                my $str = join(", ", sort keys %{$nickometer{$_}});
-               push(@list, "$str ($_)");
+               push(@list, "$str ($_ %)");
            }
 
            &pSReply( &formListReply(0, "Nickometer list for $term ", @list) );
+           &DEBUG("test.");
 
            return;
        }
@@ -664,25 +668,35 @@ sub do_verstats {
        return;
     }
 
-    if (scalar keys %ver) {
-       &DEBUG("keys ver exists... stopping.");
+    if (scalar keys %ver or scalar @vernick) {
+       &DEBUG("verstats already in progress.");
        return;
     }
 
     &msg($who, "Sending CTCP VERSION...");
     $conn->ctcp("VERSION", $chan);
     $conn->schedule(60, sub {
-       my $total = 0;
+       my $vtotal      = 0;
+       my $total       = keys %{ $channels{lc $chan}{''} };
 
        foreach (keys %ver) {
-           $total += scalar keys %{ $ver{$_} };
+           $vtotal     += scalar keys %{ $ver{$_} };
        }
 
        my %sorted;
+       my $unknown     = $total - $vtotal;
+       my $perc        = sprintf("%.1f", $unknown * 100 / $total);
+       $sorted{$perc}  = "unknown/cloak - $unknown ($perc %)";
+       $perc           =~ s/.0$//;
+
        foreach (keys %ver) {
-           my $count = scalar keys %{ $ver{$_} };
-           my $perc  = sprintf("%.01f", $count * 100 / $total);
-           $perc =~ s/.0$//;   # lame compression.
+           my $count   = scalar keys %{ $ver{$_} };
+           $perc       = sprintf("%.01f", $count * 100 / $total);
+           $perc       =~ s/.0$//;     # lame compression.
+
+           if (exists $sorted{$perc}) {
+               &WARN("sorted{$perc} already exists; FIXME.");
+           }
 
            $sorted{$perc} = "$_ - $count ($perc %)";
        }
@@ -695,7 +709,9 @@ sub do_verstats {
 
        &pSReply( &formListReply(0, "IRC Client versions for $chan ", @list) );
 
-       undef %ver;     # clean it up.
+       # clean up not-needed data structures.
+       undef %ver;
+       undef @vernick;
     } );
 
     return;