;%%%%%%%%%%%%%%%%%%%%%%%% ;script idle ;version 1.01 ;author icN, Chutzpah ;email chutzpah@ircn.com ;url http://www.ircN.com ;%%%%%%%%%%%%%%%%%%%%%%%% on 1:CONNECT { .remove $tp(idle.txt) .remove $tp(idlep.txt) if (%idauto == on) { .timer 0 300 idchk | set %idchktimer $ltimer } } on 1:INPUT: { if (($active ischan) && ($left($1,1) != /)) && ((%idchan == all) || ($chan isin %idchan)) writeini $tp(idle.txt) $active $rb($me) $ctime } on 1:JOIN:# { if (($chan isin %idchan) || (%idchan == all)) writeini $tp(idle.txt) $chan $rb($nick) $ctime } on 1:PART:# { if (($chan isin %idchan) || (%idchan == all)) remini $tp(idle.txt) $chan $rb($nick) } on 1:TEXT:*:# { if (($chan isin %idchan) || (%idchan == all)) { if (($1- == %idphrase) && (%idtog == on) && ($nick !isop $chan)) .quote kick $chan $nick : $+ %idreason writeini $tp(idle.txt) $chan $rb($nick) $ctime } } on 1:NICK { set %i 0 :start inc %i if ($chan(%i) == $null) halt elseif ($newnick ison $chan(%i)) writeini $tp(idle.txt) $chan(%i) $rb($newnick) $ctime else goto start } on 1:ACTION:*:# { if (($chan isin %idchan) || (%idchan == all)) { if (($1- == %idphrase) && (%idtog == on) && ($nick !isop $chan)) .quote kick $chan $nick : $+ %idreason writeini $tp(idle.txt) $chan $rb($nick) $ctime } } on 1:KICK:# { if (($chan isin %idchan) || (%idchan == all)) writeini $tp(idle.txt) $chan $rb($nick) $ctime } on 1:OP:# { if (($chan isin %idchan) || (%idchan == all)) writeini $tp(idle.txt) $chan $rb($nick) $ctime } on 1:DEOP:# { if (($chan isin %idchan) || (%idchan == all)) writeini $tp(idle.txt) $chan $rb($nick) $ctime } on 1:BAN:# { if (($chan isin %idchan) || (%idchan == all)) writeini $tp(idle.txt) $chan $rb($nick) $ctime } on 1:UNBAN:# { if (($chan isin %idchan) || (%idchan == all)) writeini $tp(idle.txt) $chan $rb($nick) $ctime } on 1:TOPIC:# { if (($chan isin %idchan) || (%idchan == all)) writeini $tp(idle.txt) $chan $rb($nick) $ctime } on 1:MODE:# { if (($chan isin %idchan) || (%idchan == all)) writeini $tp(idle.txt) $chan $rb($nick) $ctime } raw 324:* { if (($2 isin %idchan) || (%idchan == all)) idle -r $2 } alias n.idle return $readini $tp(idle.txt) $1 $rb($2) alias ch.idle { if ($n.idle($1,$2)) return $n.idle($1,$2) else { writeini $tp(idle.txt) $1 $rb($2) $ctime return $ctime } } alias idle { if (($1 == -r) && ($2)) { if (($2 isin %idchan) || (%idchan == all)) { set %i 0 :start inc %i if ($nick($2,%i) == $null) halt else { writeini $tp(idle.txt) $2 $rb($nick($2,%i)) $ctime goto start } } else iecho Error: $hc($2) is not being watched. } elseif (($1 == -k) && ($2 ischan)) { if ($me !isop $2) iecho You are not opped on $hc($2) $+ . elseif (($2 isin %idchan) || (%idchan == all)) { if ($3) set %idletmp $mpy($3,60) elseif (%idlemax) set %idletmp %idlemax else set %idletmp 1800 set %i 0 :start inc %i if ($nick($2,%i) == $null) { unset %idletmp | goto end } if ($nick($2,%i) isop $2) goto start if ($sub($ctime,$ch.idle($2,$nick($2,%i))) > %idletmp) .quote kick $2 $nick($2,%i) :idle $div(%idletmp,60) $+ m goto start :end } else iecho Error: $hc($2) is not being watched. } elseif ($1 == -s) { set %idchan $$?="Set channels to watch (type 'all' for all)" %idlemax = 60 * $$?="Maximum idle time in minutes (current [ %idlemax ] )" set %idphrase $$?="Kick on phrase (current [ %idphrase ] )" set %ikreason $$?="idle kick reason (current [ %idreason ] )" } elseif (($1 == -v) && ($2 ischan)) { if (($2 isin %idchan) || (%idchan == all)) { write -c $tp(idlep.txt) write $tp(idlep.txt) close:/set $chr(37) $+ iloc $chr(36) $+ swlc(@Idle Statistics) $chr(124) window -c @Idle Statistics $chr(124) .remove $tp(idlep.txt) write $tp(idlep.txt) - set %i 0 :start inc %i if ($chan(%i) == $null) { window -ae @Idle Statistics %iloc /idle $tp(idlep.txt) aline @Idle Statistics . $+ $str(-,47) $+ . iiecho $chr(124) Idle Statistics for $fix(25,$hc($2)) $chr(124) aline @Idle Statistics $chr(124) $+ $str(-,47) $+ $chr(124) set %i 1 set %j $nick($2,0) :start1 if (%j > 1) { aline @Idle Statistics $chr(124) $fix(11,$clop($nick($2,%i),$2)) $lfix(9,$sc($rsc($duration($sub($ctime,$ch.idle($2,$nick($2,%i))))))) $chr(124) $fix(11,$clop($nick($2,$pls(1,%i)),$2)) $lfix(9,$sc($rsc($duration($sub($ctime,$ch.idle($2,$nick($2,$pls(1,%i)))))))) $chr(124) inc %i 2 dec %j 2 goto start1 } if (%j == 1) aline @Idle Statistics $chr(124) $fix(11,$clop($nick($2,%i),$2)) $lfix(9,$sc($rsc($duration($sub($ctime,$ch.idle($2,$nick($2,%i))))))) $chr(124) $str($chr(160),21) $chr(124) aline @Idle Statistics ' $+ $str(-,23) $+ ' $+ $str(-,23) $+ ' } elseif ((%idchan == all) || ($chan(%i) isin %idchan)) { write $tp(idlep.txt) $chan(%i) if ($me isop $chan(%i)) { write $tp(idlep.txt) .kick write $tp(idlep.txt) ..10m:/idle -k $chan(%i) 10 write $tp(idlep.txt) ..20m:/idle -k $chan(%i) 20 write $tp(idlep.txt) ..30m:/idle -k $chan(%i) 30 write $tp(idlep.txt) ..N m:/idle -k $chan(%i) $chr(36) $+ ?="Enter number of minutes:" } write $tp(idlep.txt) .nick write $tp(idlep.txt) ..view write $tp(idlep.txt) ...silent:/idle -n $chan(%i) $str($chr(36),2) $+ ?="Enter nickname" write $tp(idlep.txt) ...verbose:/idle -c $chan(%i) $str($chr(36),2) $+ ?="Enter nickname" if ($me isop $chan(%i)) write $tp(idlep.txt) ..kick:/.quote kick $chan(%i) $str($chr(36),2) $+ ?="Enter nickname" :idle $chr(36) $+ rsc( $+ $chr(36) $+ duration( $+ $chr(36) $+ sub( $+ $chr(36) $+ ctime, $+ $chr(36) $+ n.idle( $+ $chan(%i) $+ , $chr(36) $+ ! )))) write $tp(idlep.txt) .relist:/idle -v $chan(%i) write $tp(idlep.txt) .- write $tp(idlep.txt) .reset:/idle -r $chan(%i) goto start } else goto start } else iecho Error, $hc($2) is not being watched. } elseif (($1 == -n) && ($3)) { if ($nc($3) !ison $2) iecho $hc($3) is not on $hc($nc($2)) $+ . elseif (($2 isin %idchan) || (%idchan == all)) iecho $hc($nc($3)) has been idle on $sc($2) for $hc($rsc($duration($sub($ctime,$ch.idle($2,$nc($3)))))) else iecho Error: $hc($2) is not being watched. } elseif (($1 == -c) && ($3)) { if ($nc($3) !ison $2) iecho $hc($3) is not on $hc($nc($2)) $+ . if (($2 isin %idchan) || (%idchan == all)) msg $2 $nc($3) has been idle on $2 for $rsc($duration($sub($ctime,$ch.idle($2,$nc($3))))) else iecho Error: $hc($2) is not being watched. } else iecho Syntax: /idle - [#channel] [nickname/duration] }