miércoles, 17 de agosto de 2011

Daisies for cleanness

[youtube http://www.youtube.com/watch?v=kqSrZEx6lpU&w=420&h=345]

NowPlaying con Clementine+Kopete parte II: Condiciones

Una desventaja de nuestro script actual es que si Clementine no se está ejecutando entonces tendremos el mensaje "Now Playing" en blanco durante toda la sesión de Kopete. Si lo cambiamos manualmente desde Kopete, el crontab se encargará de ponerlo de nuevo en el estado sin canción.

Para esto introduciremos el uso de condiciones en nuestro script; por lo que si Clementine se está ejecutando entonces haremos lo que ya sabemos para capturar el nombre de artista y canción. En caso contrario, haremos nada. Así quedará disponible nuevamente para cambiar nuestro estado de Kopete a lo que necesitemos. Manos a la obra:

Primero utilizaremos el comando qdbus para saber si Clementine se está ejecutando o no:



isClementineRunning=$(/usr/bin/qdbus | grep clementine)



La variable isClementineRunning puede contener dos posibles valores: una cadena en blanco si Clementine no se está ejecutando y una cadena no-vacía si lo está. Ahora condicionamos nuestro script según esos valores:



if [ "$isClementineRunning" != "" ]

then

#capturamos el nombre de artista...

currentTrackIndex=$(....

fi



Esta condición evalúa SI la cadena isClementineRunning NO está vacía ENTONCES capturamos el nombre de artista, etc...

Si la cadena está vacía (Clementine no está ejecutándose) entonces no pasará nada.

Pero ¿qué sucede si Clementine se está ejecutando pero ninguna canción se está reproduciendo? Para resolver esto podemos volver a condicionar. Ahora consultamos por el índice de la canción actual el cual puede tomar varios valores: -1 si no se está reproduciendo ninguna canción o bien un valor positivo en caso contrario. Por lo que agregamos ahora una nueva variable y una nueva condición:


isClementinePlaying=$(/usr/bin/qdbus org.mpris.clementine /TrackList org.freedesktop.MediaPlayer.GetCurrentTrack)
if [ $isClementinePlaying != -1 ]
then
#obtenemos el nombre de artista...
currentTrackIndex=$...
fi


Y eso es todo! Puedes descargar el script final desde aquí.

sábado, 6 de agosto de 2011

Real Time Web Analytics