All pastes #257078 Raw Edit

RS KBase Search

public text v1 · immutable
#257078 ·published 2006-11-24 23:09 UTC
rendered paste body
alias nohtml {
  var %x,%i = $regsub($1-,/(^[^<]*>|<[^>]*>|<[^>]*$)/g,$null,%x)
  %x = $replace(%x,&nbsp;,$null)
  return %x
}
alias k.col1 { return $+($chr(3),04,$1,$chr(3)) }
alias k.col2 { return $+($chr(3),12,$1,$chr(3)) }
on $*:TEXT:/^[!@](kbase|knowledge) */Si:#: {
  if ($sock(kbase)) { halt }
  .unset %kbase.*
  .set %kbase.sectread $false
  .set %kbase.explread $false
  .set %kbase.out $iif($left($1,1) == @,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,&gt;)) }
    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 Exceprt:) $k.col2(%kbase.expl)
}