Originally Posted by Raccoon
Show someone's idle times for the server and each channel you share in common.
Handy if you're being a nosy stalker. Replaces /whois in most cases.

Usage: /idle Raccoon

* Raccoon signed on 2w1d, idle 1s, @#raccoon[1s] Query[1m5s] Chat[1m12s] @#irchelp[2h9m] +#politics[15h6m] #efnet[2w1d]

http://www.hawkee.com/snippet/10010/

Code
; Use: /idle <nickname>
ALIAS idle { ; by Raccoon 10-July-2013 13-aug-2013
  .raw WHOIS $$1 $1
  .enable #idle_whois
  hinc -mu5 idle_whois cnt 1
  .timerIDLE_WHOIS 1 5 .disable #idle_whois
}
#idle_whois off
RAW 319:*: { hadd -mu5 idle_whois $cid $+ $2 $+ .chans $hget(idle_whois,$cid $+ $2 $+ .chans) $3- | halt }
RAW 317:*: { hadd -mu5 idle_whois $cid $+ $2 $+ .idle $3-4 | halt }
RAW 318:*: { 
  VAR %PRECISION = 2
  var %nick = $2
  var %chans = $hget(idle_whois,$cid $+ $2 $+ .chans)
  var %idles = $hget(idle_whois,$cid $+ $2 $+ .idle)
  var %idle = $gettok(%idles,1,32), %signon = $gettok(%idles,2,32)
  var %i = 1, %cidles, %rchans = %chans
  if ($query(%nick)) { var %cidles = $query(%nick).idle $+ :Query }
  if ($chat(%nick)) { var %cidles = %cidles $chat(%nick).idle $+ :Chat }
  WHILE $gettok(%chans,%i,32) {
    var %pchan = $v1
    var %chan = $regsubex(%pchan,/^[^ $chantypes ]*/x,)
    var %cidle = $nick(%chan,%nick).idle
    if (%cidle != $null) { 
      var %cidles = %cidles %cidle $+ : $+ %pchan
      var %rchans = $remtok(%rchans,%pchan,1,32)
    }
    inc %i
  }
  var %cidles = $sorttok(%cidles,32,n)
  var %i = 1, %chanidles
  WHILE $gettok(%cidles,%i,32) {
    var %pchan = $gettok($v1,2,58)
    var %cidle = $gettok($v1,1,58)
    var %chanidles = %chanidles %pchan $+ [[ $+ $dur(%cidle,%PRECISION) $+ ]]
    inc %i
  }
  echo -atic whois * $2 signed on $dur($calc($ctime - %signon),2) $+ , idle $dur(%idle,2) $+ , %chanidles %rchans
  hdel -w idle_whois $cid $+ $2 $+ .*
  hdec -m idle_whois cnt 1
  if (!$hget(idle_whois,cnt)) { .disable #idle_whois | hfree -w idle_whois }
  halt
}
RAW *:*: halt
#idle_whois end

;$duration(12345678) = 20wks 2days 21hrs 21mins 18secs / $dur(12345678) = 20w2d21h21m18s / $dur(12345678,2) = 20w2d
ALIAS dur { return $remove($gettok($regsubex($duration($1),/(\d+\w)\S*/g,\t),1- $+ $2,32),$chr(32)) } ; by Raccoon
If it's just idle without having to have a whois script, is that possible?