rendered paste bodyalias k.col1 { return $+($chr(3),$cntn($se(color,kbase.base)),$1,$chr(3)) }
alias k.col2 { return $+($chr(3),$cntn($se(color,kbase.secondary)),$1,$chr(3)) }
on $*:TEXT:/^.(kbase|knowledge) */Si:#: {
if (!$se(private,active)) { halt }
if ($se(status,kbase) == off) { halt }
if ($left($1,1) != $se(trigger,public) && $left($1,1) != $se(trigger,private)) { halt }
if ($left($1,1) == $se(trigger,public) && $readini(chansetting.ini,$chan,public) == off) { halt }
if ($left($1,1) == $se(trigger,private) && $readini(chansetting.ini,$chan,private) == off) { halt }
if ($sock(kbase)) { halt }
.unset %kbase.*
.set %kbase.sectread $false
.set %kbase.explread $false
.set %kbase.out $iif($left($1,1) == $se(trigger,public),msg $chan,notice $nick)
.set %kbase.string $replace($2-,$chr(32),+)
.sockopen kbase kbase.runescape.com 80
}
on *:SOCKOPEN:kbase: {
if ($sockerr) { echo 4 -s ** SockOpen Error ** $sock($sockname).wsmsg | return }
.sockwrite -n kbase GET /lang/en/aff/runescape/search.ws?submit=Search&category=-1&subcat=-1&q= $+ %kbase.string HTTP/1.1
.sockwrite -n kbase Host: kbase.runescape.com $+ $crlf $+ $crlf
}
on *:SOCKREAD:kbase: {
if ($sockerr) { echo 4 -s ** SockRead Error ** $sock($sockname).wsmsg | return }
.sockread %kbase
if (!%kbase.expl) {
if (*results found matching* iswm %kbase) { .set %kbase.total $gettok($nohtml(%kbase),1,32) }
if (*lang/en/aff/runescape/img/kbase/sword*gif* iswm %kbase) { set %kbase2 $regex(%kbase,/(viewarticle.+?)"/Si) | .set %kbase.url http://kbase.runescape.com/lang/en/aff/runescape/ $+ $regml(1) | .set %kbase.title $nohtml(%kbase) }
if (%kbase.explread) { .set %kbase.expl $nohtml(%kbase) }
if (</div> == %kbase && %kbase.sect) { .set %kbase.explread $true }
if (</ul> == %kbase) { .set %kbase.sectread $false }
if (%kbase.sectread) { .set %kbase.sect %kbase.sect > $nohtml($remove(%kbase,>)) }
if (<a href="viewcategory.ws?cat_id=0">Home</a> == %kbase) { .set %kbase.sectread $true | .set %kbase.sect Home }
}
}
on *:SOCKCLOSE:kbase: {
if (!%kbase.expl) { %kbase.out $k.col1(KnowledgeBase Lookup) $k.col2(couldn't) $k.col1(find any matches to your search) | halt }
%kbase.out $k.col1(KnowledgeBase Matches:) $k.col2(%kbase.total) $k.col1(Title:) $k.col2(%kbase.title) $k.col1(Section) $k.col2(%kbase.sect) $k.col1(URL:) $k.col2(%kbase.url)
%kbase.out $k.col1(Match Excerpt:) $k.col2(%kbase.expl)
}