aboutsummaryrefslogtreecommitdiff
path: root/tuxdroid.py
blob: a40b9bcdd1b814c96d88030e5d3ee857f81ff7c0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
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()
bgstack15