rendered paste bodyon *:text:*rank*:#: {
set %lcnick $nick
tokenize 32 $remove($strip($1-),$chr(44))
if ($left($1,1) !isin @!.) halt
if ($right($1,-1) == rank) {
if ($left($1,1) == @) /checkpubd $chan $nick
inc %ID
if ($2) && ($3) {
if ($getskill($3)) {
if ($2 isnum 1-1000000) {
set $+(%,rsrank.display.,%ID) $iif($left($1,1) == @,msg $chan,notice $nick)
set $+(%,rsrank.nick.,%ID) $nick
set $+(%,rsrank.skill.,%ID) $getskill($3)
set $+(%,rsrank.rank.,%ID) $2
sockopen $+(rsrank.,%ID) hiscore.runescape.com 80
}
else notice $nick $c2($2) $c1(is not a valid rank number!)
}
else notice $nick $c2($3) $c1(is not a skill!)
}
else halt
}
}
on *:sockopen:rsrank.*: {
var %id = $gettok($sockname,2,46)
sockwrite -n $sockname GET /lang/en/aff/runescape/overall.ws?rank= $+ $($+(%,rsrank.rank.,%ID),2) $+ &table= $+ $gettable($($+(%,rsrank.skill.,%ID),2)) HTTP/1.1
sockwrite -n $sockname Host: hiscore.runescape.com $+ $crlf $+ $crlf
}
on *:sockread:rsrank.*: {
sockread &Incoming
bwrite $sockname -1 -1 &Incoming
makehashrsrank $sockname
}
alias makehashrsrank {
var %file = $1
bread %file 1 $file(%file).size &stats
tokenize 10 &stats
hadd -m %file $1
processrsrank %file
}
alias processrsrank {
var %id = $gettok($1,2,46)
var %display = $($+(%,rsrank.display.,%ID),2)
var %skill = $($+(%,rsrank.skill.,%ID),2)
var %rsrank = $rsrankstriptags($read($1,w,*AA0022*))
var %rsusername = $rsrankstriptags($read($1,w,*AA0022*,$calc($readn + 1)))
var %rslevel = $rsrankstriptags($read($1,w,*AA0022*,$calc($readn + 1)))
var %rsexp = $rsrankstriptags($read($1,w,*AA0022*,$calc($readn + 1)))
var %rsuntil = $calc($xp($calc(%rslevel +1)) - $remove(%rsexp,$chr(44)))
if (%rsrank != $null) {
%display $c1(Rank) $c2(%rsrank) $c1(in) $c2(%skill) $c1(is:) $c2(%rsusername)
%display $c1(Level:) $c2(%rslevel) $c1(EXP:) $c2(%rsexp) $c1(EXP until $calc(%rslevel +1) $+ :) $c2($bytes(%rsuntil,b))
}
else {
notice $($+(%,rsrank.nick.,%ID),2) $c1(No user was found for rank) $c2($bytes($($+(%,rsrank.rank.,%ID),2),b)) $c1($lower($($+(%,rsrank.skill.,%ID),2)) on the hiscores)
}
rsrankcleanup %ID
}
alias rsrankcleanup {
unset $+(%,rsrank.*.,$1)
sockclose $+(rsrank.,$1)
.remove $+(rsrank.,$1)
}
alias rsrankstriptags { var %x,%y = $regsub($1-,/(<[^>]+>)/g,$null,%x) | return $replace(%x,",", ,$null) }