summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFrançois LASSERRE <choiz@me.com>2014-03-23 11:50:49 +0100
committerFrançois LASSERRE <choiz@me.com>2014-03-23 11:50:49 +0100
commitc5aa3392e39efc8c3835c148b4c07f61825a0ec5 (patch)
tree140075627c59c3f685be4c70579d9d244498de62
parent2c3396ec56d2b1915904995d9128b454615d5a41 (diff)
Add nowplaying module.
This module display the current "artist - title" playing in Clementine.
-rw-r--r--examples/nowplaying.py69
1 files changed, 69 insertions, 0 deletions
diff --git a/examples/nowplaying.py b/examples/nowplaying.py
new file mode 100644
index 0000000..0ab0cf8
--- /dev/null
+++ b/examples/nowplaying.py
@@ -0,0 +1,69 @@
+# -*- coding: utf-8 -*-
+
+import subprocess
+from time import time
+
+class Py3status:
+ """
+ nowplaying.py
+
+ This module display the current "artist - title" playing in Clementine.
+
+ Last modified: 2014-03-23
+ Author: François LASSERRE <choiz@me.com>
+ License: GNU GPL http://www.gnu.org/licenses/gpl.html
+ """
+ def getMetadatas(self):
+ """
+ Get the current song metadatas (artist - title)
+ """
+ track_id = subprocess.check_output('qdbus org.mpris.clementine /TrackList org.freedesktop.MediaPlayer.GetCurrentTrack', shell=True)
+ metadatas = subprocess.check_output('qdbus org.mpris.clementine /TrackList org.freedesktop.MediaPlayer.GetMetadata '+track_id, shell=True)
+ lines = metadatas.split("\n")
+ lines = filter(None, lines)
+
+ now_playing = ''
+
+ if len(lines) > 0:
+
+ artist = ''
+ title = ''
+ internet_radio = 0
+
+ for item in lines:
+
+ if item.find('artist:') != -1:
+ artist = item[8:]
+
+ if item.find('title:') != -1:
+ title = item[7:]
+
+ if (title.find('.wav') != -1) | (title.find('.mp3') != -1):
+ title = title[:-4]
+ if (title.find("http") != -1):
+ title = ""
+ internet_radio = 1
+
+ if (len(artist) != 0) & (len(title) != 0):
+ now_playing = '♫ '+artist+' - '+title
+ elif len(artist) != 0:
+ now_playing = '♫ '+artist
+ elif len(title) != 0:
+ now_playing = '♫ '+title
+ elif internet_radio != 0:
+ now_playing = '♫ Internet Radio'
+
+ return now_playing
+
+ def setMetadatas(self, json, i3status_config):
+ """
+ Get the current "artist - title" and return it.
+ """
+ response = {'full_text': '', 'name': 'track_info'}
+
+ metadata = self.getMetadatas()
+
+ response['full_text'] = metadata
+ response['cached_until'] = time()
+
+ return (0, response)