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

import sys
import urllib2
from tuxisalive.api import *
from xml.dom import minidom as dom

tux = TuxAPI('127.0.0.1', 270)

# Connexion du TuxDroid

tux.server.autoConnect(CLIENT_LEVEL_RESTRICTED, 'none', 'none')
tux.server.waitConnected(10.0)
tux.dongle.waitConnected(10.0)
tux.radio.waitConnected(10.0)
if not tux.access.waitAcquire(10.0, ACCESS_PRIORITY_NORMAL):
	print "Probleme de connexion avec tux"

# Table de hashage pour les sites web

feeds = { "monde" : "http://www.lemonde.fr/rss/une.xml",
"lib": "http://www.liberation.fr/rss/laune",
"pc" : "http://www.pcinpact.com/include/news.xml"
}

# Nombre d'items lus
maxItems = 4

def printFeeds ():
	print "Liste des sites :"
	Ks = feeds.keys()
	for key in Ks:
		print key

def fetchPage(url):
	a = urllib2.urlopen(url)
	return ''.join(a.readlines())
 
def extract(page,selection):
	a = dom.parseString(page)
	tux.tts.speak("Voici les nouvelles pour "+selection)
	print selection
	item = a.getElementsByTagName('item')
	counter = 0
	for i in item:
		if counter < maxItems:
			if i.hasChildNodes() == True:
				t = i.getElementsByTagName('title')[0].firstChild.wholeText
				l = i.getElementsByTagName('link')[0].firstChild.wholeText
				d = i.getElementsByTagName('description')[0].firstChild.wholeText
				print t.encode('utf-8')
				print "_______________"
				print d.encode('utf-8')
				tux.tts.speak(t.encode('utf-8').replace('é','et '))
				tux.tts.speak(d.encode('utf-8').replace('é','et '))
				counter=counter+1

# Afficher les sites
printFeeds()
# Obtenir la selection de l'utilisateur
selection = raw_input('Enter your selection:')    
# Selectionner le site web
rssUrl = feeds[selection]
# Afficher le texte lu
page = fetchPage(rssUrl)
# Lecture du flux rss
returnednews = extract(page,selection)
tux.server.disconnect()
tux.destroy()
