]> git.donarmstrong.com Git - infobot.git/commitdiff
- added 'unique user count' to chanstats.
authordms <dms@c11ca15a-4712-0410-83d8-924469b57eb5>
Tue, 6 Feb 2001 12:41:34 +0000 (12:41 +0000)
committerdms <dms@c11ca15a-4712-0410-83d8-924469b57eb5>
Tue, 6 Feb 2001 12:41:34 +0000 (12:41 +0000)
- wantnick updates

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

src/UserExtra.pl

index 87a87c11eed9c1164c02d5e1888095628420508f..9a5fa42eb67e1daf36fcc2165f849e73b3954ec2 100644 (file)
@@ -44,9 +44,10 @@ sub chaninfo {
     my $mode;
 
     if ($chan eq "") {         # all channels.
-       my $count       = 0;
        my $i           = keys %channels;
        my $reply       = "i am on \002$i\002 ".&fixPlural("channel",$i);
+       my $tucount     = 0;    # total user count.
+       my $uucount     = 0;    # unique user count.
        my @array;
 
        ### line 1.
@@ -60,19 +61,27 @@ sub chaninfo {
        }
        &pSReply($reply.": ".join(' ', @array));
 
-       ### line 2.
+       ### total user count.
        foreach $chan (keys %channels) {
-           # crappy debugging...
-           # TODO: use $mask{chan} instead?
-           if ($chan =~ / /) {
-               &ERROR("bad channel: chan => '$chan'.");
+           $tucount += scalar(keys %{$channels{$chan}{''}});
+       }
+
+       ### unique user count.
+       my @nicks;
+       foreach $chan (keys %channels) {
+           foreach (keys %{ $channels{$chan}{''} }) {
+               next if (grep /^\Q$_\E$/, @nicks);
+               $uucount++;
+               push(@nicks, $_);
            }
-           $count += scalar(keys %{$channels{$chan}{''}});
        }
+
+       my $chans = scalar(keys %channels);
        &pSReply(
-               "i've cached \002$count\002 ".&fixPlural("user",$count).
-               " distributed over \002".scalar(keys %channels)."\002 ".
-               &fixPlural("channel",scalar(keys %channels))."."
+           "i've cached \002$tucount\002 ". &fixPlural("user",$tucount).
+           ", \002$uucount\002 unique ". &fixPlural("user",$uucount).
+           ", distributed over \002$chans\002 ".
+           &fixPlural("channel", $chans)."."
        );
 
        return;
@@ -650,11 +659,16 @@ sub userCommands {
            &msg($who, "I hope you're right. I'll try anyway.");
        }
 
-       my $str = "attempting to change nick to $param{'ircNick'}";
-       &status($str);
-       &msg($who, $str);
+       if (! &IsNickInAnyChan( $param{ircNick} ) ) {
+           my $str = "attempting to change nick to $param{'ircNick'}";
+           &status($str);
+           &msg($who, $str);
+           &nick($param{'ircNick'});
+       } else {
+           &msg($who, "hrm... can't do it");
+           &DEBUG("wN: nick is somewhere... should try later.");
+       }
 
-       &nick($param{'ircNick'});
        return;
     }