rendered paste bodyon *: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
}