clemctl: WIP
This commit is contained in:
parent
415af8de98
commit
98d5674c0e
38
clemctl.py
Executable file
38
clemctl.py
Executable 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()
|
Loading…
Reference in a new issue