All pastes #772544 Raw Edit

Miscellany

public text v1 · immutable
·published 2007-11-13 22:01 UTC
rendered paste body
on $*:TEXT:/(Symptora \s)?[\.@!]stats */Si:#: {
  if (!$2) { /notice $nick Incorrect parameters. $left($1,1) $+ stats name | /return }
  var %x 1

  while ($sock(rsstats. $+ %x)) {
    inc %x
  }

  if ($regex($1-,(Symptora \s)?\.)) { set % $+ rsstats. $+ %x $+ .return .msg $nick }
  if ($regex($1-,(Symptora \s)?\@)) { set % $+ rsstats. $+ %x $+ .return msg $chan }
  if ($regex($1-,(Symptora \s)?\!)) { set % $+ rsstats. $+ %x $+ .return .notice $nick }

  set % $+ rsstats. $+ %x $regsubex($2-,(Symptora \s)?[\.!@]stats,)
  sockopen rsstats. $+ %x hiscore.runescape.com 80
}

on *:SOCKOPEN:rsstats.*: {
  sockwrite -nt $sockname GET /index_lite.ws?player= $+ $(% $+ $sockname,2) HTTP/1.1
  sockwrite -nt $sockname HOST: hiscore.runescape.com
  sockwrite -nt $sockname
}

on *:SOCKREAD:rsstats.*: {
  if ($sockerr) {
    $(% $+ $sockname $+ .return,2) Socket error while looking up $(% $+ $sockname,2) $+ : $sockerr
    /cleanup $sockname
    /return
  }
  var %read
  /sockread %read

  if (<html>* iswm %read) {
    $(% $+ $sockname $+ .return,2) User $(% $+ $sockname,2) is not on the hiscores.
    /cleanup $sockname
    /return
  }

  inc % $+ $sockname $+ .inc
  set % $+ $sockname $+ .stat. $+ $(% $+ $sockname $+ .inc,2) %read
  if ($(% $+ $sockname $+ .inc,2) >= 35) { /results $sockname }
}

alias -l results {
  var %x $chr(91) %statcolr $+ $(% $+ $1,2) $+  $chr(93)
  var %s $chr(124)
  var %i 1

  while (%i <= 24) {
    var % $+ x. $+ %i %statcolr $+ $gettok($(% $+ $1 $+ .stat. $+ $calc(11 + %i),2),2,44) $+ 
    inc %i
  }

  $(% $+ $1 $+ .return,2) Stats: %x Total %x.1 %s Attack %x.2 %s Defence %x.3 Strength %x.4 %s HP %x.5 %s Range %x.6 %s Prayer %x.7 %s Magic %x.8 %s Cooking %x.9 %s Woodcutting %x.10 %s Fletching %x.11 %s Fishing %x.12 %s Firemaking %x.13 %s Crafting %x.14 %s Smithing %x.15 %s Mining %x.16 %s Herblore %x.17 %s Agility %x.18 %s Theiving %x.19 %s Slayer %x.20 %s Farming %x.21 %s Runecrafting %x.22 %s Hunter %x.23 %s Construction %x.24
  /cleanup $1

}

alias -l cleanup {
  /unset % $+ $1 $+ *
  if ($sock($1)) { /sockclose $1 }
}