„now playing“ mit mpd und pidgin

Tach,

ich hab mir gerade ein kleines Script gebastelt, das mir den aktuellen Track, den ich gerade mit mpd abspiele, im aktuellen pidgin Fenster anzeigt. Dazu habe ich Python benutzt.

Folgende Voraussetzungen müssen auf dem System erfüllt sein:

Hier das Script:

#!/usr/bin/python

import dbus, gobject, os
from dbus.mainloop.glib import DBusGMainLoop
dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)

# Getting the current track from mpd
f = os.popen("mpc | head -n 1 | xargs -0 basename")
np = f.readline().replace(".mp3","").replace("\n","")
f.close()

# Writing the current track to the current focused pidgin conversation
bus = dbus.SessionBus()
obj = bus.get_object("im.pidgin.purple.PurpleService", "/im/pidgin/purple/PurpleObject")
purple = dbus.Interface(obj, "im.pidgin.purple.PurpleInterface")

for conv in purple.PurpleGetConversations():
	if purple.PurpleConversationHasFocus(conv):
		purple.PurpleConvImSend(purple.PurpleConvIm(conv), "np: " + np)

Jetzt kann man z.B. einen globalen Hotkey damit belegen und schon wird immer der aktuelle Track als Nachricht abgeschickt.

PS: Das war das erste mal, dass ich in Python programmiert habe ;)