on $*:TEXT:/^[!@]stats/Si:#: { if ($2 == $null) && ($readini(botinfo.ini,n,defname,$address($nick,3)) == $null) { $iif($left($1,1) $+(=,=) @ && $istok($readini(botinfo.ini,n,$chan,channelignore),$chan,32) $+(=,=) $false,msg $chan,notice $nick) *** [ $+ $c1($nick,Error) $+ ]: $c2($nick,You must specify a player or default name.) halt } var %x 1 while ($sock(stats. $+ %x)) { inc %x } var %y 1 while (%y <= $numtok($2-,32)) { if ($remove($gettok($2-,%y,32),$chr(95),$chr(45)) isalnum) { var %name %name $gettok($2-,%y,32) } elseif ($chr(62) isin $gettok($2-,%y,32)) || ($chr(60) isin $gettok($2-,%y,32)) { var %ep $gettok($2-,%y,32) } elseif ($chr(38) isin $gettok($2-,%y,32)) { if ($readini(botinfo.ini,n,defname,$address($left($gettok($2-,%y,32),-1),3))) { var %name $readini(botinfo.ini,n,defname,$address($left($gettok($2-,%y,32),-1),3)) } else { $iif($left($1,1) $+(=,=) @ && $istok($readini(botinfo.ini,n,$chan,channelignore),$chan,32) $+(=,=) $false,msg $chan,notice $nick) *** $+($chr(91),$c1($nick,Error),$chr(93)) $c2($nick,The name) $qt($c1($nick,$left($gettok($2-,%y,32),-1))) $c2($nick,does not have a defname set OR is not on the channel.) halt } } inc %y } if (!%name) && ($readini(botinfo.ini,n,defname,$address($nick,3))) { var %name $readini(botinfo.ini,n,defname,$address($nick,3)) } elseif (!%name) && (!$readini(botinfo.ini,n,defname,$address($nick,3))) { $iif($left($1,1) $+(=,=) @ && $istok($readini(botinfo.ini,n,$chan,channelignore),$chan,32) $+(=,=) $false,msg $chan,notice $nick) *** $+($chr(91),$c1($nick,Error),$chr(93)) $c2($nick,You must specify a name to lookup or set a default name.) halt } sockopen $+(stats.,%x) hiscore.runescape.com 80 sockmark $+(stats.,%x) -1 $+ ~ $+ $iif($left($1,1) $+(=,=) @ && $istok($readini(botinfo.ini,n,$chan,channelignore),$chan,32) $+(=,=) $false,msg $chan,notice $nick) $+ ~ $+ %name $+ ~ $+ $nick $+ ~ $+ $iif(%ep,%ep) } on *:SOCKOPEN:stats.*: { sockwrite -n $sockname GET /index_lite.ws?player= $+ $gettok($sock($sockname).mark,3,126) HTTP/1.1 sockwrite -n $sockname Host: hiscore.runescape.com sockwrite -n $sockname $crlf } on *:SOCKREAD:stats.*: { var %read sockread %read if (404 - Page isin %read) { $gettok($sock($sockname).mark,2,126) *** [ $+ $c1($gettok($sock($sockname).mark,4,126),$upper($replace($gettok($sock($sockname).mark,3,126),$chr(95),$chr(32)))) $+ ]: $c2($gettok($sock($sockname).mark,4,126),does not appear in the high scores list.) sockclose $sockname } if (*,*,* iswm %read) { var %x $gettok($sock($sockname).mark,1,126) inc %x if (-1 !isin %read) { if ($gettok($sock($sockname).mark,5,126)) { if ($chr(60) isin $gettok($sock($sockname).mark,5,126)) { if ($gettok(%read,2,44) < $remove($gettok($sock($sockname).mark,5,126),$chr(60),$chr(62))) { sockmark $sockname %x $+ ~ $+ $gettok($sock($sockname).mark,2-,126) $+ ~ $c2($gettok($sock($sockname).mark,4,126),$skill(%x)) $c1($gettok($sock($sockname).mark,4,126),$iif($gettok(%read,2,44) == -1,0,$v1)) $chr(124) } else { sockmark $sockname %x $+ ~ $+ $gettok($sock($sockname).mark,2-,126) } } else { if ($gettok(%read,2,44) > $remove($gettok($sock($sockname).mark,5,126),<,>)) { sockmark $sockname %x $+ ~ $+ $gettok($sock($sockname).mark,2-,126) $+ ~ $c2($gettok($sock($sockname).mark,4,126),$skill(%x)) $c1($gettok($sock($sockname).mark,4,126),$iif($gettok(%read,2,44) == -1,0,$v1)) $chr(124) } else { sockmark $sockname %x $+ ~ $+ $gettok($sock($sockname).mark,2-,126) } } } else { sockmark $sockname %x $+ ~ $+ $gettok($sock($sockname).mark,2-,126) $+ ~ $c2($gettok($sock($sockname).mark,4,126),$skill(%x)) $c1($gettok($sock($sockname).mark,4,126),$iif($gettok(%read,2,44) == -1,0,$v1)) $chr(124) } } else { sockmark $sockname %x $+ ~ $+ $gettok($sock($sockname).mark,2-,126) } if (%x == 24) { if ($numtok($gettok($sock($sockname).mark,4-,126),32) <= 65) { $gettok($sock($sockname).mark,2,126) *** [ $+ $c1($gettok($sock($sockname).mark,4,126),$upper($replace($gettok($sock($sockname).mark,3,126),$chr(95),$chr(32)))) $+ ]: $left($remove($gettok($sock($sockname).mark,5-,126),~),-1) } else { $gettok($sock($sockname).mark,2,126) *** [ $+ $c1($gettok($sock($sockname).mark,4,126),$upper($replace($gettok($sock($sockname).mark,3,126),$chr(95),$chr(32)))) $+ ]: $left($remove($gettok($sock($sockname).mark,5-23,126),~),-1) $gettok($sock($sockname).mark,2,126) *** [ $+ $c1($gettok($sock($sockname).mark,4,126),$upper($replace($gettok($sock($sockname).mark,3,126),$chr(95),$chr(32)))) $+ ]: $left($remove($gettok($sock($sockname).mark,24-,126),~),-1) } } } }