4

Amarok Now Playing

view full story
linux-howto

http://forums.fedoraforum.org – Having been frustrated by the existing now-playing scripts, I wrote this one for myself. Tested on Amarok 2.2 and Kopete 0.80., feel free to extend it to Pidgin (note attached, I dont use pidgin so I cannot test it yet). A downloadable tar installer script is also available. Code: #!/bin/bash #=================================================================================== # #        FILE: amarok_now_playing # #        USAGE: amarok_now_playing [ > logfile] # # DESCRIPTION: Changes your status message in pidgin and/or #              Kopete to the song you are currently listening to in Amarok. # #      OPTIONS: see function ’usage’ below # REQUIREMENTS: --- Amarok 2.2, Kopete 0.70 #        LICENCE: GNU GPL #        NOTES: --- #      AUTHOR: Arthur Buliva, arthurbuliva [at] fedoraproject [dot] org #      COMPANY: Arthur Buliva #      VERSION: 1.0 #      CREATED: 26.05.2009 - 16:17:51 #    REVISION: 16.10.2009 - 12:32:36 #=================================================================================== STARTUP="qdbus org.kde.amarok / Identity" ALLOWED_AMAROK_VERSION="2.2" ALLOWED_KOPETE_VERSION="0.80" PIDGIN="`kopete --version`" #Messages to display if Amarok is not playing any song MESSAGES=( "Quiet", "Amarok is Quiet", "Long live KDE" ) #Test for Amarok echo -n "Checking Amarok version... " a=`$STARTUP | cut -c 8-` if [[ "$a" =~ "${ALLOWED_AMAROK_VERSION}" ]] then     echo "Amarok $a [ OK ] " else     echo -n $a;tput setaf 1;tput bold;echo -n "    [ FAILED ] ";tput sgr0;echo "Make sure that you are running Amarok 1.4 | `date +%b-%d-%Y\ %T` ";     logger "$0 failed to start. Detected Amarok $a but requires Amarok $ALLOWED_AMAROK_VERSION"     exit; fi #Test for Kopete echo -n "Checking Kopete version... " if [[ "$PIDGIN" =~ "${ALLOWED_KOPETE_VERSION}" ]] then     echo "Kopete $PIDGIN [ OK ] " else   echo -n $a;tput setaf 1;tput bold;echo -ne "\nERROR: ";tput sgr0;echo "This script has been tested on Kopete 0.70 only | `date +%b-%d-%Y\ %T` "   logger "$0 failed to start. Detected Kopete $PIDGIN but requires Kopete 0.70"   exit fi updateStatus() {     if [[ "`$STARTUP`" != "" ]]     then     SONG_TITLE="qdbus org.kde.amarok /Player GetMetadata"     ARTIST="qdbus org.kde.amarok /Player GetMetadata"     KOPETE_STATUS='qdbus org.kde.kopete /Kopete'         if [[ "`$KOPETE_STATUS`" == "" ]]     then         tput setaf 1;tput bold;echo -n "ERROR: ";tput sgr0;echo "Kopete is not running. This script will terminate | `date +%b-%d-%Y\ %T` "         logger "$0 terminated because Kopete is not running"         exit     fi     if [[ "`$SONG_TITLE  | grep title: | cut -c 8-`" != "" ]]     then         TITLE="♫ `$SONG_TITLE  | grep title: | cut -c 8-` by `$ARTIST  | grep artist: | cut -c 9- `";         logger "$TITLE";         echo $TITLE;         #Pidgin         #`/usr/bin/purple-remote "setstatus?status=available&message=$TITLE"`         #Kopete         qdbus org.kde.kopete /Kopete  org.kde.Kopete.setIdentityOnlineStatus "Online" "$TITLE"         sleep 10;         updateStatus     else                 TITLE=${MESSAGES[ $[ ( $RANDOM % 1 )  + 1 ] - 1  ])};         echo $TITLE;         #Pidgin         #`/usr/bin/purple-remote "setstatus?status=available&message=$TITLE"`         #Kopete         qdbus org.kde.kopete /Kopete  org.kde.Kopete.setIdentityOnlineStatus "Online" "$TITLE"         sleep 30;         updateStatus     fi     else         tput setaf 1;tput bold;echo -n "ERROR: ";tput sgr0;echo "Could not connect to DCOP Server | `date +%b-%d-%Y` "         logger "$0 Could not connect to DCOP Server"         exit     fi } updateStatus (HowTos)