From a8c0307437c9c3e2121c7b6f1b9ea9a89902b193 Mon Sep 17 00:00:00 2001 From: dms Date: Tue, 6 Feb 2001 12:41:34 +0000 Subject: [PATCH] - added 'unique user count' to chanstats. - wantnick updates git-svn-id: https://svn.code.sf.net/p/infobot/code/trunk/blootbot@351 c11ca15a-4712-0410-83d8-924469b57eb5 --- src/UserExtra.pl | 42 ++++++++++++++++++++++++++++-------------- 1 file changed, 28 insertions(+), 14 deletions(-) diff --git a/src/UserExtra.pl b/src/UserExtra.pl index 87a87c1..9a5fa42 100644 --- a/src/UserExtra.pl +++ b/src/UserExtra.pl @@ -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; } -- 2.39.5