En algunas ocasiones se me ha ocurrido "quiero twittear lo que estoy escuchando", y me refiero a algo automático para que no tenga que escribirlo yo mismo.Así que decidí programar una pequeña aplicación que lo haga, que tenga la bondad de darme a elegir si esta activa o inactiva, o bien establecer el formato en el que deseo que aparezca en twitter; así que hice manos a la obra y comencé a programarlo.La elección del lenguaje como muchos ya se podrán imaginar es Python, por lo que usare el middleware de python-xmmsclient.La instalación obviamente involucra al servidor XMMS2 y xmmsclient así que podriamos hacerlo simplemente así.
  # apt-get install xmms2 python-xmmsclient
 

Lo interesante aquí es el desarrollo de un cliente XMMS2 , eficazmente sencillo, aunque encontrar información acerca de la librería puede resultar un poco complicado y al hacerlo es posible que para nuestra elección de lenguaje venga muy incompleta.Pero esto no significa que no logremos adaptarnos fácilmente, es la ventaja de las api's estandarizadas, así que nuestro primer paso será hacer conexión con el servidor.Una conexión básica con el servidor sería:

#!/usr/bin/env python import xmmsclient import os import sys xmms = xmmsclient.XMMS("miCliente") try: xmms.connect(os.getenv("XMMS_PATH")) except IOError, detail: print "Conexión fallida:", detail sys.exit(1) result = xmms.playback_start() result.wait() if result.iserror(): print "Error al reproducir, %s" % result.get_error() else: sys.exit(0) Como nos podemos dar cuenta, la conexión resulta muy sencilla, os.getenv("XMMS_PATH") nos devuelve el valor de la variable de entorno, y así nos permite saber si el servidor esta activo o no ya que al no estar corriendo, la variable no existe.Por otro lado, una vez establecida la conexión podemos acceder a las acciones directamente del objeto xmms que creamos al iniciar el script, por ello, al ejecutar xmms.playback_start() le damos la orden al server de reproducir lo que tenga en cola, aunque no se ejecutará si no hasta haber llamado a xmms.wait() .Si por algún motivo no es posible reproducir algo, el objeto xmms arroja los errores ( result.iserror() ) que ocurrieron y así nosotros podemos controlarlos.Podemos encontrar mas información sobre el desarrollo de clientes XMMS2 aqui por si estas interesado en ir mas a fondo, por mi parte trataré de ir con calma documentando lo que estoy desarrollando.Una sugerencia podría ser desarrollar un pequeño engine de nuestro cliente, y así, hacernos la vida mas fácil para próximos desarrollos.

Hasta esta parte, todo ha ido claro me parece, aun no he tocado el tema de twitter así que ahora veremos algo al respecto.Existen muchas librerías que podemos usar para nuestra aplicación, pero la que me sedujo fácilmente fue python-twitter (chales, eso fue un capumm). Python-Twitter es un proyecto que vienen desarrollando un grupo de developers, y resulta tan intuitiva que usarla será cosa de risa.La librería viene incluida al igual que python-xmmsclient en los repos de Debian Lenny.
  # apt-get install python-twitter
 
Y su uso es tan sencillo que el siguiente script resultará muy explicativo.
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import twitter
mytwitter = twitter.Api("miusuario","mipassword")
status = mytwitter.PostUpdate('probando python-twitter')
print status.textstatuses = mytwitter.GetUserTimeline()
for s in statuses:
    print s.text
 
Así es, importamos librería, creamos objeto, hacemos una publicación con el texto "probando python-twitter", imprimimos lo que enviamos, pedimos el Timeline y lo iteramos imprimiendo los textos. Sencillo no ?La documentación completa la podemos ver aquí .Con esta información será posible el desarrollo del cliente x2t que tengo en mente, de hecho, he diseñado una pequeña interfaz que solo ocupara un mínimo de opciones como establecer nombre y password de twitter, un filtro el cual me permitirá definir el formato de mis tweets, y si esta activo o no el servicio.Está es por ahora la propuesta.

Y por lo pronto esto es todo lo que puedo comentar, estaré trabando en este pequeño proyectito por las noches y espero no tardar demasiado en anunciar como ha quedado.

Jorge Hernandez :: http://jorgeluis.com.mx

    X2T beta (XMMS2 + Twitter)Now in Planet XMMS2