All pastes #265518 Raw Edit

Unnamed

public text v1 · immutable
·published 2006-12-03 10:16 UTC
rendered paste body
on $*:TEXT:/^[!@]top5 .*/Si:#:{
  var %x 1
  while ($sock($+(top5.,%x))) inc %x
  set $+(%,top5.target.,%x) $iif(@* iswm $1,msg $chan,.notice $nick)
  if ($2) {
    if (!$tableno($2)) {
      .notice $nick $c1(Please specify a RS skill.)
      halt
    }
    else {
      set $+(%,top5.table.,%x) $tableno($2)
    }
  }
  else {
    set $+(%,top5.table.,%x) 0
  }
  set $+(%,top5.z1.,%x) 1
  set $+(%,top5.z2.,%x) 1
  set $+(%,top5.z3.,%x) 1
  sockopen $+(top5.,%x) hiscore.runescape.com 80
}
on *:SOCKOPEN:top5.*:{
  sockwrite -nt $sockname GET /lang/en/aff/runescape/overall.ws?table= $+ $gettok($($+(%,top5.table.,$gettok($sockname,2,46)),2),2,36) HTTP/1.1
  sockwrite -nt $sockname Host: hiscore.runescape.com $+ $crlf $+ $crlf
}
on *:SOCKREAD:top5.*:{
  var %x = $gettok($sockname,2,46), %target = $($+(%,top5.target.,%x),2)
  if ($sockerr) {
    %target $c1(*** Socket error:) $c2($sock($sockname).wsmsg)
    halt
  }
  else {
    var %read
    sockread %read
    if (*personal* iswm %read) {
      if ($($+(%,top5.z1.,%x),2) <= 5) {
        set $+(%,$ord($($+(%,top5.z1.,%x),2)),.user.,%x) $striptags(%read)
        inc $+(%,top5.z1.,%x)
      }
    }
    elseif ($len($remove(%read,$chr(44))) isnum 2-4) && ($remove(%read,$chr(44)) isnum) {
      if ($($+(%,top5.z2.,%x),2) <= 5) {
        set $+(%,$ord($($+(%,top5.z2.,%x),2)),.lvl.,%x) %read
        inc $+(%,top5.z2.,%x)
      }
    }
    elseif ($len($remove(%read,$chr(44))) isnum 8-9) && ($remove(%read,$chr(44)) isnum) {
      if ($($+(%,top5.z3.,%x),2) <= 5) {
        set $+(%,$ord($($+(%,top5.z3.,%x),2)),.exp.,%x) %read
        inc $+(%,top5.z3.,%x)
      }
    }
  }
}

on *:SOCKCLOSE:top5.*:{
  var %x = $gettok($sockname,2,46), %target = $($+(%,top5.target.,%x),2)
  %target $c1(1 $+ .) $c2($($+(%,$ord(1),.user.,%x),2)) $c1( $+ $chr(124) $+  Level:) $c2($($+(%,$ord(1),.lvl.,%x),2)) $c1( $+ $chr(124) $+  Exp:) $c2($($+(%,$ord(1),.exp.,%x),2))
  %target $c1(2 $+ .) $c2($($+(%,$ord(2),.user.,%x),2)) $c1( $+ $chr(124) $+  Level:) $c2($($+(%,$ord(2),.lvl.,%x),2)) $c1( $+ $chr(124) $+  Exp:) $c2($($+(%,$ord(2),.exp.,%x),2))
  %target $c1(3 $+ .) $c2($($+(%,$ord(3),.user.,%x),2)) $c1( $+ $chr(124) $+  Level:) $c2($($+(%,$ord(3),.lvl.,%x),2)) $c1( $+ $chr(124) $+  Exp:) $c2($($+(%,$ord(3),.exp.,%x),2))
  %target $c1(4 $+ .) $c2($($+(%,$ord(4),.user.,%x),2)) $c1( $+ $chr(124) $+  Level:) $c2($($+(%,$ord(4),.lvl.,%x),2)) $c1( $+ $chr(124) $+  Exp:) $c2($($+(%,$ord(4),.exp.,%x),2))
  %target $c1(5 $+ .) $c2($($+(%,$ord(5),.user.,%x),2)) $c1( $+ $chr(124) $+  Level:) $c2($($+(%,$ord(5),.lvl.,%x),2)) $c1( $+ $chr(124) $+  Exp:) $c2($($+(%,$ord(5),.exp.,%x),2))
  cleanup %x
}
alias -l cleanup {
  unset $+(%,top5.*.,$1)
  unset $+(%,1st.*.,$1)
  unset $+(%,2nd.*.,$1)
  unset $+(%,3rd.*.,$1)
  unset $+(%,4th.*.,$1)
  unset $+(%,5th.*.,$1)
}
alias -l striptags { var %x,%y = $regsub($1-,/(<[^>]+>)/g,$null,%x) | return %x }
alias -l tableno {
  if ($regex($1,/^(st|(skill)?total|overall)$/Si)) return lol.0
  elseif ($regex($1,/^at(t|k|tack)$/Si)) return lol.1
  elseif ($regex($1,/^def(en[cs]e)?$$/Si)) return lol.2
  elseif ($regex($1,/^str(ength)?$/Si)) return lol.3
  elseif ($regex($1,/^hp|hit(s|points?)?$/Si)) return lol.4
  elseif ($regex($1,/^range(r|d|ing)?$/Si)) return lol.5
  elseif ($regex($1,/^Pray(er)?$$/Si)) return lol.6
  elseif ($regex($1,/^mag(e|ic)$$/Si)) return lol.7
  elseif ($regex($1,/^cook(ing)?$/Si)) return lol.8
  elseif ($regex($1,/^wc|wood(cut(ting)?)?$/Si)) return lol.9
  elseif ($regex($1,/^fletch(ing)?$/Si)) return lol.10
  elseif ($regex($1,/^fish(ing)?$/Si)) return lol.11
  elseif ($regex($1,/^(fire|fm)(make?(ing)?|ing)?$/Si)) return lol.12
  elseif ($regex($1,/^craft(ing)?$/Si)) return lol.13
  elseif ($regex($1,/^(smith|smelt)(ing)?$/Si)) return lol.14
  elseif ($regex($1,/^min(e|ing)?$/Si)) return lol.15
  elseif ($regex($1,/^herb(law|lore)?$/Si)) return lol.16
  elseif ($regex($1,/^agil(ity)?$/Si)) return lol.17
  elseif ($regex($1,/^(th(ei|ie)[fv](e|ing)?)$/Si)) return lol.18
  elseif ($regex($1,/^slay(er|ing)?$/Si)) return lol.19
  elseif ($regex($1,/^farm(er|ing)?$/Si)) return lol.20
  elseif ($regex($1,/^(rc|runecraft)(er|ing)?$/Si)) return lol.21
  elseif ($regex($1,/^hunt(er|ing)?$/Si)) return lol.22
  elseif ($regex($1,/^(construct)(ion|ing)?$/Si)) return lol.23
}
alias -l c1 { return $+(14,$1-,) }
alias -l c2 { return $+(07,$1-,) }