All pastes #150780 Raw Edit

Mine

public text v1 · immutable
#150780 ·published 2006-08-27 09:18 UTC
rendered paste body
on *:TEXT:.RSStats *:*: {
  var %i 1
  while ($sock($+(RSStats.,%i))) { inc %i 1 }
  set %RSStats. $+ %i $+ .Lookup $replace($2-,$chr(32),_)
  set %RSStats. $+ %i $+ .Nick $nick
  sockopen RSStats. $+ %i hiscore-web.runescape.com 80
}

on *:SOCKOPEN:RSStats.*: {
  sockwrite -nt $sockname GET $+(/lang/en/aff/runescape/hiscorepersonal.ws?user1=,$eval($+(%,$sockname,.Lookup),2)) HTTP/1.0
  sockwrite -nt $sockname Host: hiscore-web.runescape.com
  sockwrite -nt $sockname $crlf
}

on *:SOCKREAD:RSStats.*: {
  if ($sockerr) {
    .notice $eval($+(%,$sockname,.Nick),2) An error occured while completing your request.
    return
  }
  var %read
  sockread %read
  if (<td align="left"><a href="overall.ws?table=*&user=*">*</a></td> iswm %read) {
    set $+(%,$sockname,.Results) $+($eval($+(%,$sockname,.Results),2),$chr(32),$chr(124),$chr(32),$htmlfree($v2))
    set $+(%,$sockname,.Level) 2
  }
  elseif (<td align="right">*</td> iswm %read) {
    if ($eval($+(%,$sockname,.Level),2) = 1) { set $+(%,$sockname,.Results) $+($eval($+(%,$sockname,.Results),2),$chr(32),$htmlfree(%read)) }
    dec $+(%,$sockname,.Level) 1
  }
  elseif ((</tr> = %read) && ($eval($+(%,$sockname,.Level),2) = 2)) { set $+(%,$sockname,.Results) $+($eval($+(%,$sockname,.Results),2),$chr(32),-) }
  elseif (%read = </table>) {
    .notice $eval($+(%,$sockname,.Nick),2) Stats for $+(,$eval($+(%,$sockname,.Lookup),2),:) $right($eval($+(%,$sockname,.Results),2),-2)
    Cleanup $sockname
  }
}

alias htmlfree {
  var %x,%y = $regsub($1-,/(<[^>]+>)/g,$null,%x)
  return $remove(%x,&nbsp;)
}

alias -l Cleanup {
  unset $+(%,$$1,.*)
  sockclose $$1
}