All pastes #175136 Raw Edit

dictionary

public text v1 · immutable
·published 2006-09-18 14:47 UTC
rendered paste body
on *:TEXT:*:#:{
  if ($regex($right($1,-1),/lookup|define/Si)) {
    set $+(%,dict,.,$nick,.,dest) $iif($left($1,1) == @,msg $chan,$iif($left($1,1) == !,.notice $nick,halt))
    if (!$2) { $($+(%,dict,.,$nick,.,dest),2) Sorry, you didn't specify a word to look up. | unset $+(%,dict,.,$nick,.,dest) | halt } 
    set $+(%,dict,.,$nick,.term) $2
    sockopen $+(dict,.,$nick) dictionary.reference.com 80
  }
  else { halt }
}
on *:SOCKOPEN:dict.*:{ 
  sockwrite -n $sockname GET /search?q= $+ $($+(%,$sockname,.term),2)  HTTP/1.1
  sockwrite -n $sockname Host: dictionary.reference.com $+ $crlf $+ $crlf
} 
on *:SOCKREAD:dict.*:{ 
  if ($sockerr) { $($+(%,$sockname,.dest),2) $sockerror | sockclose $sockname }    
  var $+(%,$sockname,.result) | sockread -f $+(%,$sockname,.result)
  set $+(%,$sockname,.result) $remove($htmlfree($($+(%,$sockname,.result),2)),$chr(9))
  if (($($+(%,$sockname,.looking),2) == on) && ($($+(%,$sockname,.term),2) == $remove($htmlfree(%dict.result),$chr(9)))) {
    sockread -f $+(%,$sockname,.result)
    $($+(%,$sockname,.dest),2) $($+(%,$sockname,.term),2) $+ : $remove($htmlfree($($+(%,$sockname,.result),2)),n*:)
    unset $+(%,$sockname,.,*)
    sockclose $sockname
  }
  if (*results for:* iswm $($+(%,$sockname,.result),2)) { set $+(%,$sockname,.looking) on }
}
alias htmlfree { 
  var %x, %i = $regsub($1-,/(^[^<]*>|<[^>]*>|<[^>]*$)/g,$null,%x), %x = $remove(%x,&nbsp;) 
  return %x 
}