alias -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 }