dialog thesaurus { title "Thesaurus" size -1 -1 137 176 option dbu text "Thesaurus", 1, 57 5 25 8 edit "", 2, 7 27 54 10 button "Look Up", 3, 76 27 53 10, default box "Synonyms", 4, 4 45 60 111 button "Close", 6, 51 162 35 9, ok cancel list 7, 7 53 54 100, size hsbar vsbar box "Antonyms", 5, 73 45 60 111 list 8, 76 53 54 100, size hsbar vsbar box "Word", 9, 4 19 60 21 } alias thesaurus dialog $iif($dialog(thesaurus),-v,-m) thesaurus thesaurus alias htmlfree return $regsubex($1-,/^[^<]*>|<[^>]*>|<[^>]*|$|&[^;]+;/g,$null) menu * { Thesaurus: thesaurus } on *:dialog:thesaurus:*:*:{ if ($devent == sclick && $did = 3) { if ($did(2).text) { if ($sock(thesaurus)) sockclose $v1 sockopen thesaurus thesaurus.reference.com 80 sockmark thesaurus $did($dname,2).text did -r $dname 7-8 } else noop $input(You must enter a word!,oh,Error!) } } on *:sockopen:thesaurus:{ if ($sockerr) { echo -a Socket error: $sock($sockname).wsmsg sockclose $sockname halt } sockwrite -nt $sockname GET /browse/ $+ $sock($sockname).mark HTTP/1.1 sockwrite -nt $sockname Host: thesaurus.reference.com sockwrite -nt $sockname $crlf } on *:sockread:thesaurus:{ var %x sockread %x if (
isin %x) { did -a thesaurus 7,8 No results found sockclose $sockname unset %antonyms } if ($regex(%x,/(.+)/i)) didtok thesaurus $iif(%antonyms,8,7) 44 $remove($htmlfree($regml(1)),$chr(32)) if (Antonyms: isin %x) { set %antonyms 1 sockread %x sockread %x sockread %x didtok thesaurus 8 44 $remove($htmlfree(%x),$chr(32)) } if ( isin %x) { sockclose $sockname did -z thesaurus 7,8 unset %antonyms } }