alias -l c1 return $+($chr(3),14,$1-) alias -l c2 return $+($chr(3),07,$1-) on $*:TEXT:$(/^(?>\Q $+ $me $+ \E,? ?)?([@!]clan)/Si):#:{ tokenize 32 $iif($me isin $1,$deltok($1-,1,32),$1-) VAR %SI 1, %search = $replace($strip($remtok($remtok($remtok($2-,-partial,1,32),-exact,1,32),-search,1,32)),$chr(95),$chr(32),+,$chr(32)) if (($len(%search) < 3) || ($len(%search) > 12)) { notice $nick $c1(Clan Database) $c2(-) $c1(Name must be between 3 and 12 characters long) if (!%search) notice $nick $c1(Clan Database) $c2(-) $c1(You must specify a runescape username to search with) halt } WHILE ($Sock(site. $+ %SI)) { Inc %SI } unset %clan.*. [ $+ [ %SI ] ] set $+(%,clan.search.,%SI) $+(/clans/search.php?search=,$replace(%search,$chr(32),+),&searchtype=,$iif($istok($2,-search,32) || $istok($2,-partial,32),partial,exact)) set $+(%,clan.send.,%SI) $iif($left($1,1) == !,notice $nick,msg $chan) $c1(Clan Database) $c2(-) $chr(32) sockopen $+(site.,%SI) www.runehead.com 80 sockmark $+(site.,%SI) $+($iif($istok($2,-search,32) || $istok($2,-partial,32),partial $chr(32)),%search) } on *:SOCKOPEN:site.*: { VAR %SI = $Right($SockName,-5) sockwrite -nt $sockname GET $eval($+(%,clan.search.,%SI),2) HTTP/1.1 sockwrite -nt $sockname Host: www.runehead.com sockwrite -nt $sockname $crlf } on *:SOCKREAD:site.*: { var %SI = $right($sockname,-5), %target = $eval($+(%,clan.send.,%SI),2) if ($sockerr) { %target Socket error sockclose $sockname } else { var %read | sockread %read if ($sockbr == 0) { return } IF (*No*results*were*found* iswm %read) { %target $c1(The query) $c2($sock($sockname).mark) $c1(did not return a match) ;%target $c1(For a less specific search try: !clan) $c2(-search) $c1($sock($sockname).mark) cleanup } IF ($regex(%read,/returned (.*)/)) set $+(%,clan.total.,%SI) $regml(1) IF (border-color:#404040;'> isin %read) { if (($istok(clan hitpoints overall combat,$htmlfree(%read),32)) || ($htmlfree(%read) == rs name)) { return } Var %name = $htmlfree(%read), %prev = $eval($+(%,clan.name.,%SI),2) set $+(%,clan.current.,%SI) $calc($eval($+(%,clan.current.,%SI),2) + 1) Var %total = $eval($+(%,clan.total.,%SI),2), %current = $calc($eval($+(%,clan.current.,%SI),2) + 1), %rsns = $addtok($eval($+(%,clan.rsns.,%SI),2),%name,44) IF ((%prev == $null) || ($GetTok($sock($sockname).mark,1,32) == partial)) set $+(%,clan.name.,%SI) $lower(%name) IF ((%prev) && (%prev != %name) && ($gettok($sock($sockname).mark,1,32) == partial)) { set $+(%,clan.name.,%SI) $lower(%name) set $+(%,clan.rsns.,%SI) $addtok($eval($+(%,clan.rsns.,%SI),2),%name,44) if (($numtok(%rsns,44) >= 5) || ($numtok(%rsns,44) >= %total) || (%current >= %total)) { if ($numtok(%rsns,44) >= 5) %target $c1(Too many results for) $c2($gettok($sock($sockname).mark,2-,32)) - $c1(Top) $c2($numtok(%rsns,44)) $c1(of) $c2($eval($+(%,clan.total.,%SI),2)) $+ $c1(:) $c2($replace($replace(%rsns,$chr(32),$chr(95)),$chr(44),$chr(44) $chr(32))) else %target $c1(Search results for) $c2($gettok($sock($sockname).mark,2-,32)) $+ $c1(:) $c1($replace($replace(%rsns,$chr(32),$chr(95)),$chr(44),$chr(44) $chr(32))) cleanup } } IF (%name == $sock($sockname).mark) { sockread %read set $+(%,clan.clans.,%SI) $addtok($eval($+(%,clan.clans.,%SI),2),$htmlfree(%read),44) IF ($numtok($eval($+(%,clan.clans.,%SI),2),44) >= %total) { %target $c2(%name) $c1(returned) $c2(%total) $c1($+(match,$iif(%total > 1,es))) $+ $c1(:) $c2($replace($eval($+(%,clan.clans.,%SI),2),$chr(44),$chr(44) $chr(32))) cleanup } } IF ((%total == %current) && ($gettok($sock($sockname).mark,1,32) == partial)) { %target $c1(Search Results for) $c2($gettok($sock($sockname).mark,2-,32)) $+ $c1(:) $c2($replace($replace(%rsns,$chr(32),$chr(95)),$chr(44),$chr(44) $chr(32))) cleanup } } } } alias -l htmlfree { var %x, %i = $regsub($1-,/(^[^<]*>|<[^>]*>|<[^>]*$)/g,$null,%x), %x = $remove(%x, ) return %x } alias -l cleanup { sockclose $sockname unset %clan.*. [ $+ [ %SI ] ] }