Mercurial > audlegacy
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.")