-
Notifications
You must be signed in to change notification settings - Fork 0
/
clemenbar.py
56 lines (42 loc) · 1.47 KB
/
clemenbar.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# !/usr/bin/python3
# coding=utf-8
import rumps
import threading
from clementineremote import ClementineRemote
clementine = ClementineRemote(host="127.0.0.1", port=5500, auth_code=None, reconnect=True)
class ClemenbarApp(rumps.App):
def __init__(self):
super(ClemenbarApp, self).__init__("Clemenbar", "Title")
tail(self)
@rumps.clicked("Play/Pause")
def playPause(self, _):
clementine.playpause()
self.title = getTitle()
@rumps.clicked("Next")
def next(self, _):
clementine.next()
@rumps.clicked("Prev")
def prev(self, _):
clementine.previous()
def getTitle():
defaultTitle = "Clemenbar"
if clementine is None:
return defaultTitle
state = clementine.state
if state is not None and state == "Paused":
return defaultTitle
currentTrack = clementine.current_track
if currentTrack is None:
return defaultTitle
if "title" in currentTrack.keys() and currentTrack["title"] is not None:
if "track_artist" in currentTrack.keys() and currentTrack["track_artist"] is not None:
return currentTrack["title"] + ' - ' + currentTrack["track_artist"]
else:
return currentTrack["title"]
if "filename" in currentTrack.keys() and currentTrack["filename"] is not None:
return currentTrack["filename"]
return defaultTitle
def tail(self):
threading.Timer(3, tail, [self, ]).start()
self.title = getTitle()
ClemenbarApp().run()