diff options
| author | Ultrabug <ultrabug@ultrabug.net> | 2014-05-30 11:50:19 +0200 |
|---|---|---|
| committer | Ultrabug <ultrabug@ultrabug.net> | 2014-05-30 11:50:19 +0200 |
| commit | 875ef590db98f0884f67ae9bfe65548f289ac283 (patch) | |
| tree | 995c60c5499b62c9d0153e4d1c372ab2d7f83ee3 | |
| parent | 5915d144132b9d4c614cb7d2e3a3610777b4548e (diff) | |
| parent | db4301b3c0fa2040e07f998c8ad6bfcd277c223e (diff) | |
Merge pull request #27 from ChoiZ/master
new clementine module by @ChoiZ
| -rw-r--r-- | examples/clementine.py | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/examples/clementine.py b/examples/clementine.py new file mode 100644 index 0000000..1a1c389 --- /dev/null +++ b/examples/clementine.py @@ -0,0 +1,65 @@ +# -*- coding: utf-8 -*- + +from time import time +from subprocess import check_output + + +class Py3status: + """ + clementine.py + + This module display the current "artist - title" playing in Clementine. + + Last modified: 2014-03-23 + Author: Francois 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 = check_output('qdbus org.mpris.clementine /TrackList org.freedesktop.MediaPlayer.GetCurrentTrack', shell=True) + metadatas = 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 lines: + artist = '' + title = '' + internet_radio = False + + 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 or title.find('.mp3') != -1: + title = title[:-4] + if title.find('http') != -1: + title = '' + internet_radio = True + + if artist and title: + now_playing = '♫ {} - {}'.format(artist, title) + elif artist: + now_playing = '♫ {}'.format(artist) + elif title: + now_playing = '♫ {}'.format(title) + elif internet_radio: + now_playing = '♫ Internet Radio' + + return now_playing + + def clementine(self, i3status_output_json, i3status_config): + """ + Get the current "artist - title" and return it. + """ + response = {'full_text': '', 'name': 'clementine'} + + response['cached_until'] = time() + response['full_text'] = self._getMetadatas() + + return (0, response) |
