diff --git a/clemctl.py b/clemctl.py new file mode 100755 index 0000000..5e539de --- /dev/null +++ b/clemctl.py @@ -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()