rendered paste bodyalias rsstats {
if ($1) {
var %i 1
while ($sock(rsstats. $+ %i)) { inc %i }
set %rsstats. $+ %i $+ .user $1-
set %rsstats. $+ %i $+ .self 1
sockopen rsstats. $+ %i 64.90.181.252 80
}
}
#rsstats on
on *:TEXT:!rsstats *:*:{
if ($2) {
var %i 1
while ($sock(rsstats. $+ %i)) { inc %i }
set %rsstats. $+ %i $+ .user $2-
if ($chan) { set %rsstats. $+ %i $+ .target $chan }
else { set %rsstats. $+ %i $+ .target $nick }
sockopen rsstats. $+ %i 64.90.181.252 80
}
}
#rsstats end
on *:SOCKOPEN:rsstats.*:{
sockwrite -t $sockname GET /lang/en/aff/runescape/hiscorepersonal.ws?user1= $+ $eval(% $+ $sockname $+ .user, 2) HTTP/1.1 $+ $crlf
sockwrite -t $sockname Host: hiscore.runescape.com $+ $crlf
sockwrite -t $sockname $crlf
}
on *:SOCKREAD:rsstats.*:{
if ($sockerr) {
if ($eval(% $+ $sockname $+ .self, 2)) { echo -s Socket error while looking up $eval(% $+ $sockname $+ .user, 2) $+ : $sockerr }
else { msg $eval(% $+ $sockname $+ .target, 2) Socket error while looking up $eval(% $+ $sockname $+ .user, 2) $+ : $sockerr }
cleanup $sockname
}
else {
sockread &read
bwrite $sockname -1 -1 &read
if ($bfind(&read, 1, </html>).text) { results $sockname }
}
}
on *:SOCKCLOSE:rsstats.*:{ cleanup $sockname }
alias -l results {
if ($1) {
bread $1 1 $file($1).size &statspage
var %statsstring $chr(91) $+ $upper($eval(% $+ $1 $+ .user, 2)) $+ $chr(93) $+ :
if ($bfind(&statspage, 1, does not feature in the hiscores.).text) { %statsstring = %statsstring does not feature in the hiscores. }
else {
var %currentstat
var %i 0
while (1) {
%i = $bfind(&statspage, $calc(%i + 1), <td align="left"><a href="overall.ws?table=).text
if (!%i) { break }
%currentstat = $striphtml($bvar(&statspage, %i, 150).text)
if ($gettok(%currentstat, 3, 10)) { %statsstring = %statsstring $gettok(%currentstat, 1, 10) $+ $gettok(%currentstat, 3, 10) $+ $chr(124) }
}
%statsstring = $left(%statsstring, -2)
}
if ($eval(% $+ $1 $+ .self, 2)) { echo -s %statsstring }
else { msg $eval(% $+ $1 $+ .target, 2) %statsstring }
cleanup $1
}
}
alias -l striphtml {
var %charcount 1
var %tag 0
var %strippedstring
while (%charcount <= $len($1-)) {
if ($mid($1-, %charcount, 1) == <) { %tag = 1 }
elseif ($mid($1-, %charcount, 1) == >) { %tag = 0 }
elseif (!%tag) {
if ($mid($1-, %charcount, 1) == $chr(10)) { %strippedstring = %strippedstring $chr(10) }
else { %strippedstring = %strippedstring $+ $mid($1-, %charcount, 1) }
}
inc %charcount 1
}
return %strippedstring
}
alias -l cleanup {
if ($1) {
.remove $1
unset % $+ $1 $+ .*
sockclose $1
}
}