All pastes #274787 Raw Edit

Untitled

public text v1 · immutable
·published 2006-12-10 23:31 UTC
rendered paste body
on *:TEXT:!slang *:#:{
  urbandic $chan $2-
}

alias urbandic {
  var %sock = $+(urbandic,$1)
  if ($sock(%sock)) return
  sockopen %sock www.urbandictionary.com 80
  sockmark %sock 1 $1 $urlencode($2-)
}
on *:SOCKOPEN:urbandic*:{
  var %a = sockwrite -n $sockname
  %a GET $+(/define.php?term=,$getmark($sockname,3-)) HTTP/1.1
  %a Host: www.urbandictionary.com
  %a Connection: close
  %a $crlf
}
on *:SOCKREAD:urbandic*:{
  var %temp
  sockread %temp
  if ($regex(%temp,<h1><b>(.+)</b> is undefined\.</h1>)) $&
    msg $getmark($sockname,2) $+(",$regml(1),") is undefined
  if ($regex(%temp,<div class="definition">(.+))) {
    if ($getmark($sockname,1) <= $MAX_URBAN_SENDS) $&
      msg  $getmark($sockname,2) No. $getmark($sockname,1) : $+($htmlfree($regml(1)),$iif(*</div> !iswm $regml(1),...))
    sockmark $sockname $calc($getmark($sockname,1) + 1) $getmark($sockname,2-)
  }
}
alias -l getmark return $gettok($sock($1).mark,$$2,32)
alias -l urlencode {
  var %a = 1, %b
  while (%a <= $len($1-)) {
    %b = $+(%b,$iif($mid($1-,%a,1) isalnum,$v1,$+(%,$base($asc($v1),10,16,2))))
    inc %a
  }
  return %b
}
alias -l htmlfree {
  var %x, %i = $regsub($1-,/(^[^<]*>|<[^>]*>|<[^>]*$)/g,$null,%x)
  return %x
}