All pastes #250642 Raw Edit

Stuff

public text v1 · immutable
#250642 ·published 2006-11-17 04:03 UTC
rendered paste body
on *:text:*rank*:#: {
  set %lcnick $nick
  tokenize 32 $remove($strip($1-),$chr(44))
  if ($left($1,1) !isin @!.) halt
  if ($right($1,-1) == rank) {
    if ($left($1,1) == @) /checkpubd $chan $nick
    inc %ID
    if ($2) && ($3) {
      if ($getskill($3)) {
        if ($2 isnum 1-1000000) {
          set $+(%,rsrank.display.,%ID) $iif($left($1,1) == @,msg $chan,notice $nick)
          set $+(%,rsrank.nick.,%ID) $nick
          set $+(%,rsrank.skill.,%ID) $getskill($3)
          set $+(%,rsrank.rank.,%ID) $2
          sockopen $+(rsrank.,%ID) hiscore.runescape.com 80
        }
        else notice $nick $c2($2) $c1(is not a valid rank number!)
      }
      else notice $nick $c2($3) $c1(is not a skill!)
    }
    else halt
  }
}
on *:sockopen:rsrank.*: {
  var %id = $gettok($sockname,2,46)
  sockwrite -n $sockname GET /lang/en/aff/runescape/overall.ws?rank= $+ $($+(%,rsrank.rank.,%ID),2) $+ &table= $+ $gettable($($+(%,rsrank.skill.,%ID),2))  HTTP/1.1
  sockwrite -n $sockname Host: hiscore.runescape.com $+ $crlf $+ $crlf
}
on *:sockread:rsrank.*: {
  sockread &Incoming
  bwrite $sockname -1 -1 &Incoming
  makehashrsrank $sockname
}
alias makehashrsrank {
  var %file = $1
  bread %file 1 $file(%file).size &stats
  tokenize 10 &stats
  hadd -m %file $1
  processrsrank %file
}
alias processrsrank {
  var %id = $gettok($1,2,46)
  var %display = $($+(%,rsrank.display.,%ID),2)
  var %skill = $lower($($+(%,rsrank.skill.,%ID),2))
  var %rsrank = $rsrankstriptags($read($1,w,*AA0022*))
  var %rsusername = $rsrankstriptags($read($1,w,*AA0022*,$calc($readn + 1)))
  var %rslevel = $rsrankstriptags($read($1,w,*AA0022*,$calc($readn + 1)))
  var %rsexp = $rsrankstriptags($read($1,w,*AA0022*,$calc($readn + 1)))
  if (%rsrank != $null) {
    %display $c1(Rank) $c2(%rsrank) $c1(is) $c2(%rsusername) $c1(with) $c2(%rslevel) $c1(%skill and) $c2(%rsexp) $c1(%skill xp)
  }
  else {
    notice $($+(%,rsrank.nick.,%ID),2) $c1(No user was found for rank) $c2($bytes($($+(%,rsrank.rank.,%ID),2),b)) $c1($lower($($+(%,rsrank.skill.,%ID),2)) on the hiscores)
  }
  rsrankcleanup %ID
}
alias rsrankcleanup {
  unset $+(%,rsrank.*.,$1)
  sockclose $+(rsrank.,$1)
  .remove $+(rsrank.,$1)
}
alias rsrankstriptags { var %x,%y = $regsub($1-,/(<[^>]+>)/g,$null,%x) | return $replace(%x,&quot;,",&nbsp;,$null) }