on $*:text:/^[!@]stats/Si:#: { inc %x set %stats.display. [ $+ [ %x ] ] $iif($left($1,1) == @,msg $chan,.notice $nick) if ($len($2-) > 12) { %stats.display. [ $+ [ %x ] ] $c1(The) $c2(nick) $c1(has to be) $c2(12) $c1(letters max) halt } elseif ($2) { set %stats.search. [ $+ [ %x ] ] $replace($2-,$chr(32),+) } elseif (($2 == $null) && ($readini(DefRSN.ini,RSNs,$address($nick,2)))) { set %stats.search. [ $+ [ %x ] ] $ifmatch } else { %stats.display. [ $+ [ %x ] ] $c1(Specify a) $c2(nick) $c1(to search) $c2(!stats ) $c1(or use) $c2(!defname then !stats) halt } sockopen stats. [ $+ [ %x ] ] hiscore-web.runescape.com 80 } on *:sockopen:stats.*: { sockwrite -nt $sockname GET $+(/aff/runescape/hiscorepersonal.ws?user1=,%stats.search. [ $+ [ %x ] ]) HTTP/1.1 sockwrite -nt $sockname Host: hiscore-web.runescape.com sockwrite -nt $sockname $crlf } on *:sockread:stats.*: { if ($sockerr) { halt } else { var %sockreader sockread %sockreader if (*1 million* iswm %sockreader) { %stats.display. [ $+ [ $gettok($sockname,2,46) ] ] $c2($replace(%stats.search. [ $+ [ %x ] ],+,$chr(32))) $c1(isn't on the highscores for any skills) unset %stats.*. [ $+ [ $gettok($sockname,2,46) ] ] sockclose $sockname } elseif (*overall.ws*table=* iswm %sockreader) { var %stat1 | sockread %stat1 set %stats.skills. [ $+ [ $gettok($sockname,2,46) ] ] $eval($htmlfree(%stat1),2) var %stat2 | sockread %stat2 var %stat3 | sockread %stat3 var %stat4 | sockread %stat4 set %stats.lvl. [ $+ [ $gettok($sockname,2,46) ] ] $eval($htmlfree(%stat4),2) set %stats.final. [ $+ [ $gettok($sockname,2,46) ] ] $(%stats.final. [ $+ [ $gettok($sockname,2,46) ] ],2) $c1(%stats.skills. [ $+ [ $gettok($sockname,2,46) ] ]) $c2(%stats.lvl. [ $+ [ $gettok($sockname,2,46) ] ]) } if (*|<[^>]*>|<[^>]*$)/g,$null,%y), %y = $remove(%y, ) return %y }