ircN for mIRC — File Browser

ircNformIRCv6.0 / ircNformIRCv6.0 / ircn / SYSTEM / Idle.mrc

Idle.mrc — 6.87 KB — Download this file

;%%%%%%%%%%%%%%%%%%%%%%%%
;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 -<v|k|r|n|c|s> [#channel] [nickname/duration]
}