All pastes #833994 Raw Edit

urban

public text v1 · immutable
#833994 ·published 2007-12-27 20:53 UTC
rendered paste body
alias -l MAX_URBAN_SENDS return 2 

on *:TEXT:!urban *:#:{ 
  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  4 $getmark($sockname,2) $+(",$regml(1),") is undefined 
  if ($regex(%temp,<p>(.+))) { 
    if ($getmark($sockname,1) <= $MAX_URBAN_SENDS) $& 
      msg  $getmark($sockname,2) 10[04Urban Definition10] 10[04 $+ $getmark($sockname,1) $+ 10]: $+($htmlfree($regml(1)),$iif(*</p> !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 = $regsubex($$1,/([^\w\s])/Sg,$+(%,$base($asc(\t),10,16,2))) 
  return $replace(%a,$chr(32),$chr(43)) 
} 

alias -l htmlfree { 
  var %x, %i = $regsub($1-,/(^[^<]*>|<[^>]*>|<[^>]*$)/g,$null,%x), %x = $remove(%x,&,$chr(9)) 
  return %x