aboutsummaryrefslogtreecommitdiff
path: root/tuxdroid.py
diff options
context:
space:
mode:
Diffstat (limited to 'tuxdroid.py')
-rw-r--r--tuxdroid.py87
1 files changed, 87 insertions, 0 deletions
diff --git a/tuxdroid.py b/tuxdroid.py
new file mode 100644
index 00000000..a40b9bcd
--- /dev/null
+++ b/tuxdroid.py
@@ -0,0 +1,87 @@
+#! /usr/local/bin/python
+#-*- coding: utf-8 -*-
+
+"""Communication interface with Tux Droid.
+"""
+
+__author__ = "Cedric Bonhomme"
+__version__ = "$Revision: 0.1 $"
+__date__ = "$Date: 2010/02/26 $"
+__copyright__ = "Copyright (c) 2010 Cedric Bonhomme"
+__license__ = "GPL v3"
+
+import time
+import sqlite3
+
+try:
+ from tuxisalive.api import *
+except:
+ raise NameError("The module tuxisalive is missing.")
+
+class Tux(object):
+ """Manage the connection with Tux Droid.
+ """
+ def __init__(self, locutor = "Julie "):
+ """Connection to the server.
+ """
+ self.tux = TuxAPI('127.0.0.1', 270)
+ self.tux.server.autoConnect(CLIENT_LEVEL_RESTRICTED, 'none', 'none')
+ print "Connection with Tux Droid..."
+
+ if not self.tux.server.waitConnected(10.0):
+ raise Exception("The server of Tux Droid is not ready.")
+ print "Connected to the server of Tux Droid."
+
+ if not self.tux.dongle.waitConnected(10.0):
+ raise Exception("Not connected to the dongle.")
+ print "Connected to the dongle."
+
+ if not self.tux.radio.waitConnected(10.0):
+ raise Exception("Connection between Tux Droid and the dongle unpossible.")
+ print "Tux Droid connected to the dongle."
+
+ if self.tux.access.waitAcquire(10.0, ACCESS_PRIORITY_NORMAL):
+ self.tux.tts.setLocutor(locutor) # set the locutor
+ self.tux.tts.setPitch(110) # set the Pitch
+ self.tux.tts.speakAsync("Hello")
+
+ def disconnect(self):
+ """Disconnect.
+ """
+ self.tux.server.disconnect()
+ self.tux.destroy()
+
+ def onStart(self):
+ """
+ """
+ self.tux.flippers.onAsync(4, finalState = 'DOWN', speed = 3)
+ self.tux.tts.speakAsync("Hello !")
+
+ def say_something(self, message):
+ """
+ """
+ self.tux.tts.speakAsync(message)
+
+ def check_feeds(self):
+ """
+ """
+ unread_articles = []
+ try:
+ conn = sqlite3.connect("./var/feed.db", isolation_level = None)
+ c = conn.cursor()
+ unread_articles = c.execute("SELECT * FROM articles WHERE article_readed='0'")
+ c.close()
+ except Exception, e:
+ pass
+ self.say_something(str(len(unread_articles)))
+ #for unread_article in unread_articles:
+ #self.say_something()
+
+
+if __name__ == "__main__":
+ # Point of entry in execution mode
+ tux_reader = Tux()
+ while True:
+ time.sleep(10)
+ tux_reader.check_feeds()
+ tux_reader.disconnect() \ No newline at end of file
bgstack15