on *:TEXT:!slango*:#:{
if (!$istok(nicknames allowed to enable/disable space separated,$nick,32)) return
if ($1 == !slangoff) .disable slang
elseif ($1 == !slangon) .enable slang
}
#slang on
on *:TEXT:!slang *:#:{
urbandic $chan $2-
}
#slang end
alias urbandic {
var %sock = $+(urbandic,$1)
if ($sock(%sock)) return
sockopen %sock www.<b style="color:black;background-color:#a0ffff">urbandictionary</b>.com 80
sockmark %sock 1 $1 $urlencode($2-)
}
on *:SOCKOPEN:urbandic*:{
var %a = sockwrite -n $sockname
%a GET $+(/define.php?term=,$getmark($sockname,3-)) <b style="color:black;background-color:#99ff99">HTTP</b>/1.1
%a Host: www.<b style="color:black;background-color:#a0ffff">urbandictionary</b>.com
%a Connection: close
%a $crlf
}
on *:<b style="color:black;background-color:#ffff66">SOCKREAD</b>:urbandic*:{
var %temp
<b style="color:black;background-color:#ffff66">sockread</b> %temp
if ($regex(%temp,<h1><b>(.+)</b> is undefined\.</h1>)) $&
msg $getmark($sockname,2) $+(",$regml(1),") is undefined
if ($regex(%temp,<p>(.+))) {
if ($getmark($sockname,1) <= $MAX_URBAN_SENDS) $&
msg $getmark($sockname,2) No. $getmark($sockname,1) : $+($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
}