All pastes #90178 Raw Edit

Unnamed

public text v1 · immutable
#90178 ·published 2006-07-17 12:56 UTC
rendered paste body
on $*:text:/^[!@]define .*/Si:#: {
  if (!$2) { notice $nick Please enter a word to lookup }
  else { 
    inc %ID 1
    set $+(%,def.target,%ID) $iif($left($1,1) == @,msg $chan,notice $nick)
    set $+(%,def.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($+(%,def.search,%ID),2) HTTP/1.1
  sockwrite -nt $sockname Host: dictionary.reference.com $+ $crlf $+ $crlf
}

on *:SOCKREAD:def.*: {
  var %ID = $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 ($regex(%read,/(<LI>(.*)</LI>)/)) %definiton = $regml(2)
    sockread %read
    $eval($+(%,def.target,%ID),2) Definition: %definition
    sockclose $sockname
  }
  elseif (No entry found isin $htmlfree(%read)) {
    $eval($+(%,def.target,%ID),2) Definition: No results found
    sockclose $sockname
  }
}
}

on *:Disconnect:{
unset %ID
unset %def.*
}

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