rendered paste bodyon $*:TEXT:/^[!@.]stats?/Si:#shift:{
inc %ID 1
set $+(%,Rs.return.,%ID) $iif($left($1,1) == @, msg $chan, notice $nick)
set $+(%,Rs.rsn.,%ID) $2
sockopen $+(RsStats.,%ID) hiscore.runescape.com 80
}
on *:SOCKOPEN:RsStats.*: {
var %ID = $gettok($sockname,2,46)
sockwrite -n $sockname GET /lang/en/aff/runescape/hiscorepersonal.ws?user1= $+ $($+(%,Rs.rsn.,%ID),2) HTTP/1.1
sockwrite -n $sockname Host: hiscore.runescape.com $+ $str($crlf,2)
}
on *:SOCKREAD:RsStats.*: {
var %ID = $gettok($sockname,2,46)
if ($sockerr) {
echo -a Error in stats lookup
sockclose $sockname
halt
}
else {
var %read
sockread %read
if (<td align="right">*</td> iswm %read) {
inc %stage
set $+(%,level.,%stage) $htmlfree(%read)
}
if (*<img class="mainscroll-bottom"* iswm %read) {
$($+(%,Rs.return.,%ID),2) Stats for $($+(%,Rs.rsn.,%ID),2) $+ , Overall: $($+(%,level.,2),2) Level: $($+(%,level.,1),2) Exp: $($+(%,level.,3),2)
sockclose $sockname
/unset $+(%,level.*)
/unset $+(%,rs.*)
set %stage 0
}
}
}
alias -l htmlfree { var %x,%y = $regsub($1-,/(<[^>]+>)/g,$null,%x) | return %x }
alias -l setskill {
if ($1 == 0) || ($regex($1,/^(st|(skill)?total|overall)$/Si)) return Overall
elseif ($1 == 1) || ($regex($1,/^at(t|k|tack)$/Si)) return Attack
elseif ($1 == 2) || ($regex($1,/^def(en[cs]e)?$$/Si)) return Defence
elseif ($1 == 3) || ($regex($1,/^str(ength)?$/Si)) return Strength
elseif ($1 == 4) || ($regex($1,/^hp|hit(s|points?)?$/Si)) return Hitpoints
elseif ($1 == 5) || ($regex($1,/^range(r|d|ing)?$/Si)) return Ranged
elseif ($1 == 6) || ($regex($1,/^Pray(er)?$$/Si)) return Prayer
elseif ($1 == 7) || ($regex($1,/^mag(e|ic)$$/Si)) return Magic
elseif ($1 == 8) || ($regex($1,/^cook(ing)?$/Si)) return Cooking
elseif ($1 == 9) || ($regex($1,/^wc|wood(cut(ting)?)?$/Si)) return Woodcutting
elseif ($1 == 10) || ($regex($1,/^fletch(ing)?$/Si)) return Fletching
elseif ($1 == 11) || ($regex($1,/^fish(ing)?$/Si)) return Fishing
elseif ($1 == 12) || ($regex($1,/^(fire|fm)(make?(ing)?|ing)?$/Si)) return Firemaking
elseif ($1 == 13) || ($regex($1,/^craft(ing)?$/Si)) return Crafting
elseif ($1 == 14) || ($regex($1,/^(smith|smelt)(ing)?$/Si)) return Smithing
elseif ($1 == 15) || ($regex($1,/^min(e|ing)?$/Si)) return Mining
elseif ($1 == 16) || ($regex($1,/^herb(law|lore)?$/Si)) return Herblore
elseif ($1 == 17) || ($regex($1,/^agil(ity)?$/Si)) return Agility
elseif ($1 == 18) || ($regex($1,/^(th(ei|ie)[fv](e|ing)?)$/Si)) return Thieving
elseif ($1 == 19) || ($regex($1,/^slay(er|ing)?$/Si)) return Slayer
elseif ($1 == 20) || ($regex($1,/^farm(er|ing)?$/Si)) return Farming
elseif ($1 == 21) || ($regex($1,/^(rc|runecraft)(er|ing)?$/Si)) return Runecraft
elseif ($1 == 22) || ($regex($1,/^hunt(er|ing)?$/Si)) return Hunter
elseif ($1 == 23) || ($regex($1,/^(construct)(ion|ing)?$/Si)) return Construction
}