All pastes #805259 Raw Edit

1

public text v1 · immutable
·published 2007-12-04 04:17 UTC
rendered paste body
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,/<p>No results were found for the <b>(?:.*)<\/b> search <b>(.*)<\/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 (*<td class='tableborder'>* iswm %r) {
    if ($regex(%r,/<b>(.*)</b>/)) {
      var %nickname = $regml(1)
      sockread -f %r
      if ($regex(%r,/<td class='tableborder'><a href='(.*)' title='(?:.*)'>(.+)<\/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 (*<!-- END Content column -->* 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
  }
}