All pastes #90156 Raw Edit

Stuff

public text v1 · immutable
#90156 ·published 2006-07-17 11:57 UTC
rendered paste body
on $*:text:/^[!@]define */Si:#: {
  if (!$2) { notice $nick Please enter a word to lookup }
  else { 
    var $+(%,def.target,%ID) $iif($left($1,1) == @,msg $chan,notice $nick)
    var $+(%,search.,%ID) $replace($2-,$chr(32),+) 
    sockopen $+(def.,%ID) dictionary.reference.com 80
  }
}

on *:SOCKOPEN:def.*: {
  sockwrite -nt $sockname GET /search?r=2&q= $+ $eval($+(%,search.,%ID),2) HTTP/1.1
  sockwrite -nt $sockname Host: dictionary.reference.com $+ $crlf $+ $crlf
}
on *:SOCKREAD:def.*: {
  var %IDt = $right($sockname,-4)
  if ($sockerr) {
    $eval($+(%,def.target,%ID),2) Socket error - Please try again later
    sockclose $sockname
  }
  else {
    var %read | sockread %read
    if (!$sockbr) { return }
    elseif (Pronunciation Key isin $htmlfree(%read)) {
      $eval($+(%,def.target,%ID),2) Definition: $htmlfree(%read)
      sockclose $sockname
    }
    elseif (No entry found for isin $htmlfree(%read)) {
      $eval($+(%,def.target,%ID),2) Definition: No results found
      unset %search. $+ $right($sockname,-4)
      sockclose $sockname
    }

  }
}

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