All pastes #352569 Raw Edit

Someone

public text v1 · immutable
·published 2007-02-12 22:31 UTC
rendered paste body
on $*:text:/[!@](translate|tl)/Si:#:{
  var %u = 1
  while ($sock(translator [ $+ [ %u ] ] )) {
    inc %u
  }
  if ($left($1,1) == !)  /set %disp.translate [ $+ [ %u ] ] notice $nick
  if ($left($1,1) == @)  /set %disp.translate [ $+ [ %u ] ] msg $chan
  if ($2 == info) {
    %disp.translate [ $+ [ %u ] ] $c1 The trigger is: $c2 [!@]tl Sp|Fr|Ge|It|Du|Po|En Sp|Fr|Ge|It|Du|Po|En message. $c1 For example: @tl en du This is just a test!
    unset %disp.translate [ $+ [ %u ] ]
    halt
  }
  if ($regex($2,/(En|Sp|Fr|Ge|It|Du|Po)/Si) != 0) {
    set %from [ $+ [ %u ] ] $replace($2,en,English,sp,Spanish,fr,French,ge,German,it,Italian,du,Dutch,po,Portuguese)
  }
  else {
    %disp.translate [ $+ [ %u ] ] $c2 Error: $c1 These languages can't be translated!
    unset %disp.translate [ $+ [ %u ] ]
    halt
  }
  if (%from [ $+ [ %u ] ] != english) {
    if ($regex($3,/(Sp|Fr|Ge|It|Du|Po)/Si) != 0) {
      %disp.translate [ $+ [ %u ] ] $c1 When the language to translate from is $c2 NOT English $c1 $+ , the language to translate to $c2 $+ MUST $+ $c1 be $c2 $+ English!
      halt
    }
    elseif ($3 == en) set %to [ $+ [ %u ] ] english
  }
  elseif (%from [ $+ [ %u ] ] == english) {
    if ($regex($3,/(En|Sp|Fr|Ge|It|Du|Po)/Si) != 0) {
      set %to [ $+ [ %u ] ] $replace($3,en,English,sp,Spanish,fr,French,ge,German,it,Italian,du,Dutch,po,Portuguese)
    }
  }
  set %message [ $+ [ %u ] ] $replace($4-,$chr(32),+)
  sockopen translator [ $+ [ %u ] ] ets.freetranslation.com 80
}
on *:sockopen:translator*:{
  var %x = $right($sockname,-10)
  sockwrite -nt $sockname GET ?srcText= $+ [ %message [ $+ [ %x ] ] $+ ] &mode=html&template=results_en-us.htm&sequence=core&language= [ $+ [ %from [ $+ [ %x ] ] ] ] $+ $chr(37) $+ 2F [ $+ [ %to [ $+ [ %x ] ] ] ] HTTP/1.1
  sockwrite -nt $sockname Host: ets.freetranslation.com
  sockwrite -nt $sockname $crlf
}
on *:sockread:translator*:{
  var %z = $right($sockname,-10)
  if ($sockerr) {
    %disp.translate [ $+ [ %z ] ] An error returned. Please inform $me of this!
    halt
  }
  else {
    var %sockread
    sockread %sockread
    if ( *<textarea name="dsttext" cols="40" rows="6">* iswm %sockread) {
      %disp.translate [ $+ [ %z ] ] $c1 Translating from $c2 $+ %from [ $+ [ %z ] ] $+ $c1 to $c2 $+ %to [ $+ [ %z ] ] $+ $c1 $+ . Result: $+ $c2 $remove($nohtml(%sockread),$chr(09)) [ $chr(3) $+ 14 $gettok(Result By Order,2,32)  $left(Storage,2) $+ [ $right(file ein,-5) ] $+ [ $left(error,2) ] ]
      unset %disp.translate [ $+ [ %z ] ] %to [ $+ [ %z ] ] %from [ $+ [ %z ] %message [ $+ [ %z ] ] ]
      sockclose translator [ $+ [ %z ] ]
    }
  }
}
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 }
alias -l c1 { return $chr(3) $+ 10 }
alias -l c2 { return $chr(3) $+ 4 }