1
0
Fork 0

clemctl: WIP

This commit is contained in:
Adrien Abraham 2022-09-29 19:15:01 +02:00
parent 415af8de98
commit 98d5674c0e

38
clemctl.py Executable file
View file

@ -0,0 +1,38 @@
#!/usr/bin/env python3
"""Control Clementine from the command line using dbus."""
import dbus
CLEM_NAME = "org.mpris.MediaPlayer2.clementine"
CLEM_PATH = "/org/mpris/MediaPlayer2"
CLEM_PLAYER_NAME = "org.mpris.MediaPlayer2.Player"
PROPS_NAME = "org.mpris.MediaPlayer2.Player"
def main():
bus = dbus.SessionBus()
hour, minutes, seconds = get_position(bus)
timestamp = f"{minutes:02}:{seconds:02}"
if hour:
timestamp = f"{hour}:{timestamp}"
print(timestamp)
def get_clementine_object(bus):
clem_object = bus.get_object(CLEM_NAME, CLEM_PATH)
return clem_object
def get_position(bus):
clem_object = get_clementine_object(bus)
position = clem_object.Get(CLEM_PLAYER_NAME, "Position")
timestamp_ns = int(position)
timestamp_sec = timestamp_ns // 1_000_000
timestamp_h = timestamp_sec // 3600
timestamp_min = (timestamp_sec // 60) % 60
timestamp_sec = timestamp_sec % 60
return (timestamp_h, timestamp_min, timestamp_sec)
if __name__ == "__main__":
main()