Jump to content
coders-irc_Bot

/idle is very nosy.

Recommended Posts

  • Administrators

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]

 

; 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 -oi 1 5 .disable #idle_whois $(|) hfree -w 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 21

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...


×
×
  • Create New...