alias c1 return $+($chr(3),12,$1)
alias c2 return $+($chr(3),04,$1)
alias c3 return $+($chr(3),07,$1)
on $*:TEXT:/^(.*)$/Si:#:{
if ($me == stupidbot) noop
elseif (%dchan [ $+ [ $chan ] ] == yes) { halt }
if ($regex($regml(1),/^[@!.]clan(?:s)?(\s-[pe]\s|\s)(.*)$/Si)) {
var %switch = $regml(1), %rsn = $regml(2), %sw = $iif($remove(%switch,$chr(32)),$v1,NULL), %mode = $iif(%sw == -p,partial,exact), %sn = $+(clans.,$ticks)
hadd -m %sn mode %mode
hadd -m %sn chan $chan
hadd -m %sn lookup $regsubex(%rsn,/(\x20)/g,+)
hadd -m %sn disp $iif($left($1,1) == @,msg $chan,notice $nick)
sockopen %sn www.runehead.com 80
}
}
on *:SOCKOPEN:clans.*:{
var %w = sockwrite -nt $sockname, %user = $hget($sockname,lookup), %mode = $hget($sockname,mode)
%w GET $(/clans/search.php?search= $+ %user $+ &searchtype= $+ %mode,2) HTTP/1.1
%w Host: www.runehead.com $+ $crlf $+ $crlf
}
on *:SOCKREAD:clans.*:{
var %r | sockread -f %r
if ($regex(%r,/
No results were found for the (?:.*)<\/b> search (.*)<\/b><\/p>/)) {
$hget($sockname,disp) $c1(No results were found for the) $c2($upper($hget($sockname,mode))) $c1(search) $c2($replace($regml(1),$chr(32),$chr(160)))) $c1(try a different name.)
hfree $sockname
sockclose $sockname
halt
}
if (*
* iswm %r) {
if ($regex(%r,/(.*)/)) {
var %nickname = $regml(1)
sockread -f %r
if ($regex(%r,/ | (.+)<\/a><\/td>/)) {
var %link = $+(http://runehead.com/clans/,$regml(1)), %name = $replace($regml(2),$chr(32),$chr(160))
writeini clans.ini $sockname $calc($ini(clans.ini,$sockname,0) + 1) $+(%nickname,$chr(1),%name)
}
}
}
if (** iswm %r) {
var %a = 0
while (%a < $ini(clans.ini,$sockname,0)) {
var %a = %a + 1, %mline = %line $+($c3([),$c2($gettok($readini(clans.ini,$sockname,%a),1,1)),$c3(]),$chr(32),$c1($gettok($readini(clans.ini,$sockname,%a),2,1))), %line = $iif($len(%mline) >= $iif(%sent,350,320),%line,%mline)
if (%mline != %line) {
if (%sent) {
$hget($sockname,disp) %line
var %line = $+($c3([),$c2($gettok($readini(clans.ini,$sockname,%a),1,1)),$c3(]),$chr(32),$c1($gettok($readini(clans.ini,$sockname,%a),2,1)))
}
else {
var %sent = true
$hget($sockname,disp) $c1(Results for $hget($sockname,mode) search) $c2($regsubex($regsubex($hget($sockname,lookup),/(?:(^\w)|(\+\w))/g,$+(+,$upper(\1))),/^(\W+)/,$null)) $+ $c1(:) $c2($ini(clans.ini,$sockname,0))
$hget($sockname,disp) Results: %line
}
}
}
if (%line) {
if (!%sent) { $hget($sockname,disp) $c1(Results for $hget($sockname,mode) search) $c2($regsubex($regsubex($hget($sockname,lookup),/(?:(^\w)|(\+\w))/g,$+(+,$upper(\1))),/^(\W+)/,$null)) $+ $c1(:) $c2($ini(clans.ini,$sockname,0)) | $hget($sockname,disp) $c1(Results:) %line }
else $hget($sockname,disp) %line
}
hfree $sockname
remini clans.ini $sockname
sockclose $sockname
}
}
|