Si vous connaissez le langage Python ou si vous avez lu le livre que je vous conseillais dans l'article sur le python, vous savez que le langage est livré avec un shell, pour l'utiliser en mode interactif.

Le software du Tux comprend un programme, qui charge l'API du Tux après avoir lancé le shell python, son nom est tuxsh.

Sous linux, ouvrez un terminal et tapez tuxsh

Sous windows menu Démarrer --> TuxDroid --> Tuxshell

lescau@Pastouche:~$ tuxsh
====================
tuxisalive.api-0.0.3
====================
>>> TuxAPI is connected.


Sous linux ouvrons un terminal et regardons ce programme d'un peut plus près

Ou est ce fichier ?

lescau@Pastouche:~$ whereis tuxsh
tuxsh: /usr/bin/tuxsh


Quel est le type de ce fichier ?

lescau@Pastouche:~$ file /usr/bin/tuxsh
/usr/bin/tuxsh: Bourne-Again shell script text executable


C'est un script, affichons le :

lescau@Pastouche:~$ less /usr/bin/tuxsh


#!/bin/bash
python -i /usr/share/tuxdroid/resources/misc/sh.py


python -i ; lancement de python en mode interactif

regardons le script sh.py

# -*- coding: latin1 -*-

"""
Tux shell
=========
Tux shell is the shell way to use Tuxdroid. It create an API object with the
"Free" client mode.
"""

from tuxisalive.api.version import author, date, version, licence
__author__ = author
__date__ = date
__version__ = version
__licence__ = licence
del author, date, version, licence

#    Copyright (C) 2008 C2ME Sa
#    R<E9>mi Jocaille <remi.jocaille@c2me.be>
#    Distributed under the terms of the GNU General Public License
#    http://www.gnu.org/copyleft/gpl.html

import sys
import signal
import atexit
import os

from tuxisalive.api.TuxAPIConst import *
from tuxisalive.api.TuxAPI import TuxAPI

global tux

tux = TuxAPI("127.0.0.1", 270)

verString = tux.getVersion()
verH = "".join("=" * len(verString))
print verH
print verString
print verH

if os.name != 'nt':
    if not 'readline' in sys.modules:
        print "For interctive use, run: python -i sh.py"
        sys.exit(0)

tux.server.autoConnect(CLIENT_LEVEL_FREE, "TuxShell", "NoPasswd")
tux.tts.isConsole()
def sigExit(signum, frame):
    sys.exit(signum)
   
def exit():
    tux.destroy()
    sys.exit(0)

def myExitFunct():
    tux.destroy()

signal.signal(signal.SIGTERM, sigExit)
signal.signal(signal.SIGINT, sigExit)
atexit.register(myExitFunct)


Les commandes qui concernent le Tux

from tuxisalive.api.TuxAPIConst import *

importation des constantes.

from tuxisalive.api.TuxAPI import TuxAPI

importation de l'objet TuxAPI

tux = TuxAPI("127.0.0.1", 270)

création d'une instance de l'objet TuxAPI que le nomme tux en même temps on passe comme paramètre l'adresse IP ainsi que le port du serveur HTTP (voir le tuxware)

tux.server.autoConnect(CLIENT_LEVEL_FREE, "TuxShell", "NoPasswd")

connection au serveur HTTP avec comme paramètre, le niveau du client (ici FREE), le nom de l'application (TuxShell) et le mot de passe.

tux.tts.isConsole()

fixe l'encodage du synthétiseur de paroles, comme l'encodage de la console.