#!/usr/bin/python

import sys, os, getopt, re

from log import *
import VirtualBrowser

def altavista_translate (from_lang, to_lang, str):
  URL = "http://babelfish.altavista.com/tr"
  BOM = '#' * 70
  EOM = '#' * 70
  post_dict = {}
  post_dict['doit'] = 'done'
  post_dict['tt'] = 'urltext'
  post_dict['urltext'] = '%s|%s|%s\n' % (BOM, str, EOM)
  post_dict['lp'] = '%s_%s' % (from_lang, to_lang)

  vb = VirtualBrowser.VirtualBrowser()
  (code, msg, page, headers) = vb.do_post(URL, post_dict)
  fp = open('/tmp/output', 'w')
  fp.write(page)
  fp.close()
  if code == 200:
    m = re.search ('%s|(.*)|%s' % (BOM, EOM), page, re.MULTILINE)
    if m:
      out = m.group(1)
      return out
    else:
      print "Unable to find translated data"
      import html2text
      print html2text.html2text(page)
  else:
    print "Bad error code returned from server: %d" % code
    import html2text
    print html2text.html2text(page)

def test_post ():
  test_url = 'http://www.fiction.net/~blong/test/test.html'
  dict = {}
  dict['wow'] = 'foo'
  dict['far'] = 'bar'
  vb = VirtualBrowser.VirtualBrowser()
  (code, msg, page, headers) = vb.do_post(test_url, dict)
  import html2text
  print html2text.html2text(page)


def usage(argv0):
  print "%s [--help]" % argv0

def main(argv, environ):
  alist, args = getopt.getopt(argv[1:], "", ["help"])

  for (field, val) in alist:
    if field == "--help":
      usage (argv[0])
      return

  print altavista_translate('en', 'it', 'I speak english')

if __name__ == "__main__":
  main (sys.argv, os.environ)
    
