diff contrib/xchat-audacious.py @ 2740:a67712c75069 trunk

[svn] - add an xchat script which wraps our DBus API using dbus-python.
author nenolod
date Fri, 11 May 2007 17:20:46 -0700
parents
children 96e7c0385973
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/contrib/xchat-audacious.py	Fri May 11 17:20:46 2007 -0700
@@ -0,0 +1,35 @@
+#
+# X-Chat Audacious for Audacious 1.4 and later
+# This uses the native Audacious D-Bus interface.
+#
+# To consider later:
+#   - support org.freedesktop.MediaPlayer (MPRIS)?
+#
+
+__module_name__ = "xchat-audacious"
+__module_version__ = "1.0"
+__module_description__ = "Get NP information from Audacious"
+
+from dbus import Bus, Interface
+import xchat
+
+# connect to DBus
+bus = Bus(Bus.TYPE_SESSION)
+
+def command_np(word, word_eol, userdata):
+	aud = bus.get_object('org.atheme.audacious', '/org/atheme/audacious')
+
+	# this seems to be best, probably isn't!
+	length = "stream"
+	if aud.SongLength(aud.Position()) > 0:
+		length = "%d:%02d" % (aud.SongLength(aud.Position()) / 60,
+				      aud.SongLength(aud.Position()) % 60)
+
+	xchat.command("SAY [%s | %d:%02d/%s]" % (
+		aud.SongTitle(aud.Position()),
+		aud.Time() / 1000 / 60, aud.Time() / 1000 % 60,
+		length))
+
+	return xchat.EAT_ALL
+
+xchat.hook_command("NP", command_np, help="Displays current playing song.")