rendered paste bodyalias -l htmlfree {
var %x, %i = $regsub($1-,/(^[^<]*>|<[^>]*>|<[^>]*$)/g,$null,%x), %x = $remove(%x, )
return %x
}
alias -l dict_init { did -o $1 2 1 %define.room | did -o $1 4 1 %define.trigger | did -o $1 6 1 $calc(%define.totresults - 1) }
alias -l dict_save { set %define.room $did($1,2) | set %define.trigger $did($1,4) | set %define.trigger2 $+(*,%define.trigger,*) | set %define.totresults $calc($did($1,6) + 1) }
on *:load:{ dialog -m dictsearch dictsearch }
dialog dictsearch {
title "Channel Dictionary Search Options"
size -1 -1 300 102
option pixels
text "Target Channel (Use * for all channels):", 1, 4 4 192 16
edit "", 2, 198 2 100 21
text "Search Trigger (e.g. !define .dict):", 3, 4 27 167 16
edit "", 4, 198 25 100 21
text "Number of results to return (2 is nice):", 5, 4 50 185 16
edit "", 6, 198 48 100 21
button "Save", 7, 112 73 75 25, ok
}
on *:dialog:dictsearch:*:*:{
if ($devent == init) { dict_init $dname }
if ($devent == sclick) { if ($did == 7) { dict_save $dname | dict_init $dname } }
}
menu channel {
.Channel Dictionary:dialog -m dictsearch dictsearch
}
on *:INPUT:%define.room:{
if ($1 == %define.trigger) {
if ($2 != $null) {
closes socket if the socket is still open
if ($sock(define) != $null) { sockclose define }
unset %define.noresult
sockopen define wordnet.princeton.edu 80
set %define.search $replace($2-,$chr(32),$+($chr(37),20))
set %define.chanmsg $active
}
}
}
on *:text:%define.trigger2:%define.room:{
if ($2 != $null) {
if ($sock(define) != $null) { sockclose define }
unset %define.noresult
sockopen define wordnet.princeton.edu 80
set %define.search $replace($2-,$chr(32),$+($chr(37),20))
set %define.chanmsg $chan
}
}
on *:sockopen:define:{
;sends request to webserver for the definitions
sockwrite -nt $sockname GET /perl/webwn?s= $+ %define.search HTTP/1.1
sockwrite -nt $sockname Accept-Language: en-us
sockwrite -nt $sockname User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; rv:1.7.3) Gecko/20040913 Firefox/0.10.1
sockwrite -nt $sockname Referer: http://wordnet.princeton.edu
sockwrite -nt $sockname Host: wordnet.princeton.edu
sockwrite -nt $sockname Connection: keep-alive
sockwrite -t $sockname $str($crlf,2)
}
on *:sockread:define:{
if ($sockerr > 0) { return }
sockread %temp
if ($sockbr == 0) {
return
}
if (%temp == $null) { %temp = - }
var %x = did not return any
if (%x isin $htmlfree(%temp)) { msg %define.chanmsg [Define:] No results found | halt }
if (S: isin $htmlfree(%temp)) {
if (Display Option isin $remove($htmlfree(%temp),S:,)) { goto nextread }
if (Key: isincs $remove($htmlfree(%temp),S:,)) { goto nextread }
if (%define.noresult == $null) { set %define.noresult 1 }
if (%define.noresult < %define.totresults) {
msg %define.chanmsg [Define:] $remove($htmlfree(%temp),S:,)
inc %define.noresult 1
}
}
goto nextread
}