All pastes #744008 Raw Edit

Miscellany

public text v1 · immutable
·published 2007-10-21 00:06 UTC
rendered paste body
alias urlencode {
  var %a = $regsubex($$1,/([^\w\s])/Sg,$+(%,$base($asc(\t),10,16,2)))
  return $replace(%a,$chr(32),$chr(43))
}

alias nohtml { var %x,%y = $regsub($1-,/(<[^>]+>)/g,$null,%x) | return %x } alias -l htm { var %x,%y = $regsub($1-,/(<[^>]+>)/g,$null,%x) | return %x }

on *:text:*:?: {
  set %querynick [ $+ [ $address($nick,2) ] ] $nick
  set %saytext [ $+ [ $address($nick,2) ] ] $urlencode($1-)
  if (!%chatbot. [ $+ [ $address($nick,2) ] ]) {
    if ($sock(getbot| [ $+ [ $address($nick,2) ] ])) .sockclose getbot| [ $+ [ $address($nick,2) ] ]
    sockopen getbot| [ $+ [ $address($nick,2) ] ] www.alicebot.org 80
  }
  if ($sock(chatter| [ $+ [ $address($nick,2) ] ])) .sockclose chatter| [ $+ [ $address($nick,2) ] ]
  else sockopen chatter| [ $+ [ $address($nick,2) ] ] www.pandorabots.com 80
}

on *:SOCKOPEN:getbot|*: {
  sockwrite -nt $sockname GET / HTTP/1.1
  sockwrite -nt $sockname Host: www.alicebot.org
  sockwrite -nt $sockname
}

on *:SOCKREAD:getbot|*: {
  if ($sockerr) {
    msg %querynick [ $+ [ $gettok($sockname,2,124) ] ] Socket Error - Name: $sockname Error code: $sockerr $+ . Please inform $me of this error message
    halt
  }
  else {
    var %sockreader
    sockread %sockreader
    if (*Free Live Chat:</em></b>* iswm %sockreader ) {
      noop $regex(%sockreader,/botid=(.*?)">/Si)
      set %chatbot. [ $+ [ $gettok($sockname,2,124) ] ] $regml(1)
      if ($sock(getvalid| [ $+ [ $gettok($sockname,2,124) ] ])) .sockclose getvalid| [ $+ [ $gettok($sockname,2,124) ] ]
      sockopen getvalid| [ $+ [ $gettok($sockname,2,124) ] ] www.pandorabots.com 80
      sockclose $sockname
      halt
    }
  }
}

on *:SOCKOPEN:getvalid|*: {
  sockwrite -nt $sockname GET $+(/pandora/talk?botid=,%chatbot. [ $+ [ $gettok($sockname,2,124) ] ],&skin=custom_input) HTTP/1.1
  sockwrite -nt $sockname Host: www.pandorabots.com
  sockwrite -nt $sockname
}

on *:SOCKREAD:getvalid|*: {
  if ($sockerr) {
    msg %querynick [ $+ [ $gettok($sockname,2,124) ] ] Socket Error - Name: $sockname Error code: $sockerr $+ . Please inform $me of this error message
    halt
  }
  else {
    var %sockreader
    sockread %sockreader
    if (*<input type="hidden" name="botcust2" value="*">* iswm %sockreader ) {
      noop $regex(%sockreader,/value="(.*?)">/Si)
      set %botcust2. [ $+ [ $gettok($sockname,2,124) ] ] $regml(1)
      if ($sock(chatter| [ $+ [ $gettok($sockname,2,124) ] ])) .sockclose chatter| [ $+ [ $gettok($sockname,2,124) ] ]
      sockopen chatter| [ $+ [ $gettok($sockname,2,124) ] ] www.pandorabots.com 80
      sockclose $sockname
      halt
    }
  }
}

on *:SOCKOPEN:chatter|*: {
  var %sendstring = $+(&botcust2=,%botcust2 [ $+ [ $gettok($sockname,2,124) ] ],&input=,%saytext [ $+ [ $gettok($sockname,2,124) ] ])
  sockwrite -n $sockname POST $+(/pandora/talk?botid=,%chatbot. [ $+ [ $gettok($sockname,2,124) ] ],&skin=custom_input) HTTP/1.1
  sockwrite -n $sockname Host: www.pandorabots.com
  sockwrite -n $sockname Content-Length: $calc($len(%sendstring) + 1)
  sockwrite -n $sockname Content-Type: application/x-www-form-urlencoded
  sockwrite -n $sockname $crlf %sendstring
}
on *:SOCKREAD:chatter|*: {
  if ($sockerr) {
    msg %querynick [ $+ [ $gettok($sockname,2,124) ] ] Socket Error - Name: $sockname Error code: $sockerr $+ . Please inform $me of this error message
    halt
  }
  else {
    var %sockreader
    sockread %sockreader
    if (*<br><b><em>*ALICE:* iswm %sockreader) {
      msg %querynick [ $+ [ $gettok($sockname,2,124) ] ] $remove($nohtml($right(%sockreader,- $+ $poscs(%sockreader,ALICE:,$count(%sockreader,ALICE:)))),LICE:)
      sockclose $sockname 
      halt
    }
  }