All pastes #747484 Raw Edit

Unnamed

public text v1 · immutable
·published 2007-10-24 02:20 UTC
rendered paste body
alias 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
  }
}