#!/usr/bin/env python
# -*- coding: UTF-8 -*-

import sys, httplib, htmllib, formatter, re
from HTMLParser import HTMLParser

def banner():
 print """
#############################################
# bbg_dict v0.3 by zeronetl / gmail 2007.03 #
# ----------------------------------------- #
#    en -> lt & lt -> en cli dictionary     #
#            ------------------             #
#       hugs and kisses to led.ot.lt        #
#############################################

Usage:

 $bbg_dict word\n"""

 sys.exit(0)


def connect():
	conn = httplib.HTTPConnection("led.ot.lt", 80)
	return conn


def getResponse(url):
	conn  = connect()

	try:
		conn.request("GET", url)
		res = conn.getresponse().read()
	except:
		print "\nConnection to led.ot.lt failed..\n"
		sys.exit(1)

	conn.close()

	return res


def getWordID(word, lng):
	patrn   = re.compile(r'\"(\w+)\"\,\"(\w+)\"')
	req_str = "/wordList.do?wrd=%s&tlng=%s&latn=%d&sndx=%d&page=1"
	res     = getResponse(req_str % (word, lng, 1, 0))

	return patrn.findall(res)


def translate(word):
	found   = False
	req_str = "/meaning.do?wrd=%s&latn=1"

	for lang, alias in (("ELD", "en -> lt"),("LED", "lt -> en")):

		wordIdList = getWordID(word, lang)

		if not wordIdList:
			continue

		found = True
		print "\n*** Found %d %s match(es) ***\n" % (len(wordIdList), alias)

		for word, id in wordIdList:

			res = getResponse(req_str % id)

			txt = htmllib.HTMLParser(formatter.AbstractFormatter(formatter.DumbWriter()))
			txt.feed("* %s<br>" % res)
			txt.close()
		print
	
	if not found:
		print "\nWord '%s' not found..\n" % word


if __name__ == "__main__":

	if len(sys.argv) != 2:
		banner()
	else:
		translate(sys.argv[1])

