#!/usr/bin/env ruby require "dbus" def seconds_to_ms(sec) sec /= 1000000 "%02d:%02d" % [sec / 60, sec % 60] end service = DBus.session_bus["org.mpris.MediaPlayer2.strawberry"] unless service.exists? puts 'Strawberry not running' exit 1 end object = service["/org/mpris/MediaPlayer2"] interface = object["org.mpris.MediaPlayer2.Player"] metadata = interface["Metadata"] if metadata.empty? puts 'No song in playlist' exit 2 end position = interface["Position"] playback_status = interface["PlaybackStatus"] printf "(#{playback_status}) " if playback_status != 'Playing' puts "#{metadata['xesam:albumArtist'].join(', ')} - #{metadata['xesam:album']} - #{metadata['xesam:title']} " \ "(#{metadata['xesam:trackNumber']}) [#{seconds_to_ms(position)} / #{seconds_to_ms(metadata['mpris:length'])}]"