#!/usr/bin/perl

sub slurp {
  return join "", <STDIN>;
}

sub srctext {
  my $text = slurp();
  for ($text) {
    s/\r//sg;
    /\n$/s or s/$/\n/s;
    s/\n/\r\n/sg;
  }
  return $text;
}

@params = (
  Language => "$ARGV[0]/$ARGV[1]",
  Sequence => "core",
  Mode     => "html",
  Template => "TextResults2.htm",
  SrcText  => srctext(),
);

$i=0; while (defined $params[$i]) { push @fields, $params[$i]; $i+=2; }
%params = @params;

sub cgi_enc {
  $_ = $_[0];
  s/([^\w. ])/sprintf("%%%02X", ord($1))/ge;
  s/ /+/g;
  return $_;
}

for $field (@fields) {
  $encoded{$field} = cgi_enc($params{$field});
}

$post = join "&", map "$_=$encoded{$_}", @fields;

use LWP::UserAgent;
$ua = LWP::UserAgent->new(env_proxy => 1);
$ua->agent("Mozilla/6.0"); # heh, heh.

$req = HTTP::Request->new(POST => "http://ets.freetranslation.com/");
$req->content_type('application/x-www-form-urlencoded');
$req->content($post);
$res = $ua->request($req);
if (!$res->is_success) {
    die "Can't translate today.  Try again.\n";
}

$result = $res->content;
for ($result) {
  s/.*?<textarea.*?>//s;
  s/<\/textarea>.*/\n/s;
  s/\r//gs;
  s/\n\n/\n/gs;
  s/ \n/\n/gs;
}

print $result;
