rendered paste bodyon *:TEXT:*:#:{
if ($regex($1,/^[!@]compare/Si)) {
if (!$StatsID(! $+ $2)) $iif($left($1,1) == @,msg $chan,notice $nick) $+($c1,[,$2 $c2,isn't a valid skill,$c1,])
else {
inc %sc
var %name = $+(compare.,%sc)
hadd -m %name sendway $iif($left($1,1) == @,msg $chan,notice $nick)
hadd -m %name skill $StatsID(! $+ $2)
hadd -m %name user1 $3
hadd -m %name user2 $4
sockopen %name hiscore-web.runescape.com 80
}
}
}
on *:SOCKOPEN:compare.*:{
sockwrite -nt $sockname GET /aff/runescape/compare.ws?user1= $+ $hr($hget($sockname,user1)) $+ &user2= $+ $hr($hget($sockname,user2)) $+ &submit=Compare HTTP/1.0
sockwrite -nt $sockname Host: $+(hiscore-web.runescape.com,$str($crlf,2))
}
on *:SOCKREAD:compare.*:{
while ($sock($sockname).rq) {
sockread &compare
bwrite $sockname -1 -1 &compare
}
bread $sockname 0 $file($sockname).size &compare
if ($bfind(&compare,1,</HTML>)) {
if (($bfind(&compare,1,does not feature in the hiscores)) && ($bfind(&compare,$calc($v1 + 50),does not feature in the hiscores))) {
$hget($sockname,sendway) $+($c1,[,$c2,None of these players are in the $c1,RuneScape Highscores])
}
else {
hadd -m $sockname rp $bfind(&compare,$bfind(&compare,1,$regsubex($hget($sockname,skill),/(.)/g,$+($asc(\1),$chr(32)))),</a></td>)
hadd -m $sockname result $htmlfree($replace($bvar(&compare,$hget($sockname,rp),300).text,$chr(10),$chr(32)))
hadd -m $sockname result2 $htmlfree($replace($bvar(&compare,$bfind(&compare,$bfind(&compare,$calc($hget($sockname,rp) + 10),$regsubex($right($hget($sockname,skill),-2),/(.)/g,$+($asc(\1),$chr(32)))),</a></td>),300).text,$chr(10),$chr(32)))
$hget($sockname,sendway) $iif(Not Ranked * iswm $hget($sockname,result),$+($c1,[,$c2,User,$c1 $flc($hget($sockname,user1)) $c2,is not ranked,$c1,]),$+($c1,[,$c2,$hget($sockname,skill) for,$c1 $flc($hget($sockname,user1)),] [,$c2,Level:,$c1 $gettok($hget($sockname,result),2,32) |,$c2 Rank:,$c1 $gettok($hget($sockname,result),1,32) |,$c2 Exp:,$c1 $gettok($hget($sockname,result),3,32),]))
$hget($sockname,sendway) $iif(Not Ranked * iswm $hget($sockname,result2),$+($c1,[,$c2,User,$c1 $flc($hget($sockname,user2)) $c2,is not ranked,$c1,]),$+($c1,[,$c2,$hget($sockname,skill) for,$c1 $flc($hget($sockname,user2)),] [,$c2,Level:,$c1 $gettok($hget($sockname,result2),2,32) |,$c2 Rank:,$c1 $gettok($hget($sockname,result2),1,32) |,$c2 Exp:,$c1 $gettok($hget($sockname,result2),3,32),]))
if ($remove($gettok($hget($sockname,result),3,32),$chr(44)) !isnum) hadd -m $sockname lose 1
elseif ($remove($gettok($hget($sockname,result2),3,32),$chr(44)) !isnum) hadd -m $sockname lose 2
else hadd -m $sockname lose $iif($remove($gettok($hget($sockname,result),3,32),$chr(44)) > $remove($gettok($hget($sockname,result2),3,32),$chr(44)),2,1)
$hget($sockname,sendway) $+($c1,[,$c2,Winner:,$c1 $flc($hget($sockname,$iif($hget($sockname,lose) == 1,user2,user1))),] [,$c2,Levels:,$c1 $iif($calc($gettok($hget($sockname,$iif($hget($sockname,lose) == 1,result2,result)),2,32) - $gettok($hget($sockname,$iif($hget($sockname,lose) == 1,result,result2)),2,32)),$v1,None) |,$c2 Ranks:,$c1 $iif($bytes($calc($remove($gettok($hget($sockname,$iif($hget($sockname,lose) == 1,result,result2)),1,32),$chr(44)) - $remove($gettok($hget($sockname,$iif($hget($sockname,lose) == 1,result2,result)),1,32),$chr(44))),b),$v1,None) |,$c2 Ranks:,$c1 $iif($bytes($calc($remove($gettok($hget($sockname,$iif($hget($sockname,lose) == 1,result2,result)),3,32),$chr(44)) - $remove($gettok($hget($sockname,$iif($hget($sockname,lose) == 1,result,result2)),3,32),$chr(44))),b),$v1,None),])
}
.hdel -sw $sockname *
;.remove $sockname
sockclose $sockname
}
}