All pastes #364343 Raw Edit

Mine

public text v1 · immutable
#364343 ·published 2007-02-20 02:55 UTC
rendered paste body
alias stats.clear { unset %printline1 | unset %printline2 | unset %stats.* | set %y 1 }
on $*:TEXT:/^[!@]stats .{1,12}$/Si:#*:{
  sockopen stats hiscore.runescape.com 80
  .set %y 1
  .set %stats.send $iif($left($1,1) == @,msg $chan,.notice $nick)
  .set %stats.name $replace($2-,$chr(32),+)
  .set %stats.color1 $chr(3) $+ 10
  .set %stats.nick $nick
  .set %stats.color2 $chr(3) $+ 14
}
on *:sockopen:stats:{
  if ($sockerr) { echo -s Stats Script SockOpen Error: $sock(stats).wsmsg | .notice %stats.nick Stats Script SockOpen Error: $sock(stats).wsmsg | stats.clear | halt }
  sockwrite -nt $sockname GET /lang/en/aff/runescape/hiscorepersonal.ws?user1= $+ %stats.name HTTP/1.1
  sockwrite -nt $sockname Host: hiscore.runescape.com $+ $str($crlf,2)
}
on *:sockread:stats:{
  if ($sockerr) { echo -s Stats Script SockRead Error: $sock(stats).wsmsg | .notice %stats.nick Stats Script SockRead Error: $sock(stats).wsmsg | stats.clear | halt }
  var %read | .sockread %read
  if ($regex(%read,/^<tr><td colspan="5" align="center"><b>Personal scores for (.*)</b></td></tr>$/i)) { set %stats.rsn $regml(1) }
  if ($regex(%read,/^(Overall|Attack|Defence|Strength|Hitpoints|Ranged|Prayer|Magic|Cooking|Woodcutting|Fletching|Fishing|Firemaking|Crafting|Smithing|Mining|Herblore|Agility|Thieving|Slayer|Farming|Runecraft|Hunter|Construction)?$/i)) { set %stats.skill $regml(1) }
  if ($regex(%read,/^<td align="right">(.*)</td>$/i)) {
    if (%y == 3) && (<img class= !isin $regml(1)) { set %stats. $+ %stats.skill $+ .exp $regml(1) | inc %y 1 }
    if (%y == 2) && (<img class= !isin $regml(1)) { set %stats. $+ %stats.skill $+ .level $regml(1) | inc %y 1 }
    if (%y == 1) && (<img class= !isin $regml(1)) { set %stats. $+ %stats.skill $+ .rank $regml(1) | inc %y 1 }
    if (%y == 4) { set %y 1 }
  }
}
on *:sockclose:stats:{
  if (%stats.Overall.level != $null) { set %x 2 }
  else { set %x 1 }
  while ($var(%stats.*.level,%x) != $null) {
    if (%x < 23) { %printline1 = %printline1 $+(%stats.color1,$right($left($var(%stats.*.level,%x),-6),-7),:,%stats.color2) $eval($var(%stats.*.level,%x),2) | inc %x 1 }
    else { %printline2 = %printline2 $+(%stats.color1,$right($left($var(%stats.*.level,%x),-6),-7),:,%stats.color2) $eval($var(%stats.*.level,%x),2) | inc %x 1 }
  }
  %stats.send $+(%stats.color1,Personal Scores For,%stats.color2) %stats.rsn - $+(%stats.color1,Skill Total:,%stats.color2) $bytes(%stats.Overall.level,b) | %stats.send %printline1 | $iif(%printline2 != $null,%stats.send %printline2,) | stats.clear | halt
}