rendered paste bodyalias tl {
set %tllang1 $1
set %tllang2 $2
set %tltext $replace($3-,$chr(32),$chr(43))
/sockclose tl
sockopen tl ets.freetranslation.com 80
set %tlmsg msg $active
}
on *:SOCKOPEN:tl: {
sockwrite -nt $sockname GET ?srcText= $+ %tltext $+ &mode=html&template=results_en-us.htm&sequence=core&language= $+ %tllang1 $+ $chr(37) $+ 2F $+ %tllang2 HTTP/1.1
sockwrite -nt $sockname Host: ets.freetranslation.com
sockwrite -nt $sockname $crlf
}
on *:SOCKREAD:tl: {
if ($sockerr) { echo -a SOCKET ERROR: $sckerr }
else {
var %tlsockreader
sockread %tlsockreader
if ( *<textarea name="dsttext" cols="40" rows="6">* iswm %tlsockreader) {
%tlmsg $remove($nohtml(%tlsockreader),$chr(09)) [ $chr(3) ]
/sockclose $sockname
if (%translator == on) {
/did -a translator 1 < $+ $me $+ > - $remove($nohtml(%tlsockreader),$chr(09))
}
/sockclose tl
unset %tl*
}
}
}
alias nohtml { var %x,%y = $regsub($1-,/(<[^>]+>)/g,$null,%x) | return %x } alias -l htm { var %x,%y = $regsub($1-,/(<[^>]+>)/g,$null,%x) | return %x }
Menu * {
Laura's Translator:/dialog -md translator translator
}
dialog translator {
title "Laura's Translator"
size -1 -1 188 191
option dbu
list 1, 8 16 172 128, size
edit "", 2, 32 148 123 10, autohs
text "Message:", 3, 8 149 25 8
combo 4, 137 163 43 50, size drop
text "to", 7, 60 164 8 8
combo 5, 72 163 43 50, size drop
combo 6, 13 163 43 50, size drop
text "in", 8, 122 164 7 8
text "", 9, 105 5 36 8
text "", 10, 142 5 33 8
button "Exit", 11, 75 177 37 12, cancel
button "Send", 12, 158 148 26 10
button "hidden button", 13, 15 1 37 12, default
}
on *:dialog:translator:sclick:13:{
set %tllang1 $did(translator,6)
set %tllang2 $did(translator,5)
set %tltext $replace($did(translator,2),$chr(32),$chr(43))
if ($sock(tl)) .sockclose tl
set %tlmsg msg $did(translator,4)
sockopen tl ets.freetranslation.com 80
/did -r translator 2
}
alias translatorallchans {
var %num = 1
while ($chan(%num)) {
did -a translator 4 $chan(%num)
inc %num 1
}
}
on *:TEXT:*:*: {
if (%translator == on) {
if (!$chan) {
/write $query $+ .txt < $+ $nick $+ > $1-
}
else {
/write $chan $+ .txt < $+ $nick $+ > $1-
}
if (%translatorstatus == $chan) {
/did -a translator 1 < $+ $nick $+ > $1-
}
elseif (%translatorstatus == $query) {
/did -a translator 1 < $+ $nick $+ > $1-
}
inc %transnum
/write translatorlist.txt $chan $+ .txt
/write translatorqlist.txt $query $+ .txt
}
}
on *:DIALOG:translator:sclick:4:{
/did -r translator 1
/loadbuf -or translator 1 $did($dname,4) $+ .txt
set %translatorstatus $did($dname,4)
}
on *:DIALOG:translator:sclick:12:{
set %tllang1 $did(translator,6)
set %tllang2 $did(translator,5)
set %tltext $replace($did(translator,2),$chr(32),$chr(43))
if ($sock(tl2)) .sockclose tl
set %tlmsg msg $did(translator,4)
sockopen tl ets.freetranslation.com 80
/did -r translator 2
}
on *:dialog:translator:init:*:{
/did -h translator 13
set %translator on
translatorallchans
/timer $+ translatortime 0 1 /did -ra translator 10 $!time(HH:nn:ss)
/timer $+ translatordate 0 1 /did -ra translator 9 $!time(ddd/mmm/yyyy)
/did -a translator 6,5 English
/did -a translator 6,5 Spanish
/did -a translator 6,5 Dutch
/did -a translator 6,5 German
/did -a translator 6,5 Portuguese
/did -a translator 6,5 Italian
/did -a translator 6,5 French
}
on *:dialog:translator:sclick:11:{
set %translator off
/massremove translatorlist.txt
/massremove translatorqlist.txt
unset %translatorlist*
unset %translatorqlist*
unset %transnum
/timer $+ translatortime off
/timer $+ translatordate off
}
alias massremove {
var %num = 1
while ($read($1,%num) != $null) {
/write -c $read($1,%num)
/write -d $1 $read($1,%num)
}
}
alias translatorallchans {
var %num = 1
while ($chan(%num)) {
did -a translator 4 $chan(%num)
inc %num 1
}
}