# A code by l4roxyl - 07/24/2009 # Edited and optimised by Seb on #Sebastien @ Undernet 5/28/2018 on *:join:#:{ if (%anti.infochan.flood) { HALT } if ($nick !== $me) { halt } else { .timer 1 1 infochan # } } on *:DISCONNECT:{ set %anti.infochan.flood on } on *:START:{ .timer 1 40 unset %anti.infochan.flood } alias -l qt returnex $+($chr(2),$1-,$chr(2)) alias infochan { var %_ec = echo -aceq info $str($chr(149),3) /infochan: if ($1) { if ($hget($1,_delay)) { %_ec Same channel( $+ $1 $+ ) pls $hget($1,_delay).unset seconds waiting. | returnex } if ($1 !ischan) { %_ec $1 no such channel. | returnex } } else { %_ec insufficient parameters. /infochan <#channel> | returnex } hinc -mu10 $1 _delay 1 | .enable #_chan_info | who $1 } #_chan_info off raw *:*: { haltdef | tokenize 32 $rawmsg if ($2 = 352) { hinc -m $+(stats_,$4) _all_user 1 | hinc -m $+(stats_,$4) $+(server_,$7) 1 if ($7 = $server) hinc -m $+(stats_,$4) _server 1 hadd -m $+(stats_,$4) $6 $addtok($hget($+(stats_,$4),$6),$8,63) if ($regex($9,\*)) { hinc -m $+(stats_,$4) _irc_op 1 hadd -m $+(stats_,$4) _ircop_nick $addtok($hget($+(stats_,$4),_ircop_nick),$8,44) } if ($regex($9,G)) { hinc -m $+(stats_,$4) _away 1 hadd -m $+(stats_,$4) _away_nick $addtok($hget($+(stats_,$4),_away_nick),$8,44) } if ($regex(prefix,$9,(@|&|%|\+|~))) { hinc -m $+(stats_,$4) _prefixes 1 hadd -m $+(stats_,$4) _prefixes_nick $addtok($hget($+(stats_,$4),_prefixes_nick),$+($regml(prefix,1),$8),44) } if ($regex($9,B)) { hinc -m $+(stats_,$4) _bot 1 hadd -m $+(stats_,$4) _bot_nick $addtok($hget($+(stats_,$4),_bot_nick),$8,44) } if ($regex($9,H)) hinc -m $+(stats_,$4) _here 1 if ($regex($9,r)) hinc -m $+(stats_,$4) _reg_nick 1 } if ($2 = 315) { var %_str = echo -c info $4 $str($chr(149),3) %_str 14Total user: $//qt($hget($+(stats_,$4),_all_user)) if ($hget($+(stats_,$4),_reg_nick)) { %_str Registered nick: $//qt($v1 $+($chr(40),%,$left($calc($v1 *100/ $hget($+(stats_,$4),_all_user)),4),$chr(41))) } if ($hget($+(stats_,$4),_away)) { %_str 5Away user(s): $//qt($v1 $+($chr(40),%,$left($calc($v1 *100/ $hget($+(stats_,$4),_all_user)),4),$chr(41))) } if ($hget($+(stats_,$4),_here)) { %_str 3Here user(s): $//qt($v1 $+($chr(40),%,$left($calc($v1 *100/ $hget($+(stats_,$4),_all_user)),4),$chr(41))) } if ($hget($+(stats_,$4),_prefixes)) { %_str 14Prefixes nick: $//qt($v1 $+($chr(40),%,$left($calc($v1 *100/ $hget($+(stats_,$4),_all_user)),4),$chr(41))) %_str 14Prefixes nick(s): $//qt($regsubex($regsubex($hget($+(stats_,$4),_prefixes_nick),/ $+ $chr(44) $+ /g,$chr(32)),/([@&%+~])/g,$+($chr(40),\1,$chr(41)))) } if ($hget($+(stats_,$4),_bot)) { %_str 11Bots: $//qt($v1 $+($chr(40),%,$left($calc($v1 *100/ $hget($+(stats_,$4),_all_user)),4),$chr(41))) - $regsubex($hget($+(stats_,$4),_bot_nick),/( $+ $chr(44) $+ )/g,$+(\1,$chr(32))) } var %_sttl = $calc($hget($+(stats_,$4),_server) *100/ $hget($+(stats_,$4),_all_user)) ;%_str 14Connected server: $//qt($server) - Users: $//qt($hget($+(stats_,$4),_server)) $+($chr(40),%,$left(%_sttl,4),$chr(41))) if ($hget($+(stats_,$4),_irc_op)) { %_str 4IRC-op(s): $//qt($v1 $+($chr(40),%,$left($calc($v1 *100/ $hget($+(stats_,$4),_all_user)),4),$chr(41))) - $& $regsubex($hget($+(stats_,$4),_ircop_nick),/( $+ $chr(44) $+ )/g,$+(\1,$chr(32))) } if ($hfind($+(stats_,$4),\?,0,r).data) { %_str 7Total clone(s): $//qt($v1 $+($chr(40),%,$left($calc($v1 *100/ $hget($+(stats_,$4),_all_user)),4),$chr(41))) } var %1 = 1,%_clonnick while ($hfind($+(stats_,$4),\?,%1,r).data) { %_clonnick = $regsubex($hget($+(stats_,$4),$v1),/(\?)/g,$chr(32) - $+ $chr(32)) %_str 14Add: $//qt($v1) - $+(Nicks,$chr(40),$numtok(%_clonnick,45),$chr(41),:) $//qt(%_clonnick) inc %1 } hfree $+(stats_,$4) | .disable #_chan_info } } #_chan_info end ;end code