42 lines
1.4 KiB
Bash
Executable File
42 lines
1.4 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
metadata=$(busctl --user get-property org.mpris.MediaPlayer2.strawberry /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player Metadata 2>/dev/null)
|
|
|
|
if [ $? -ne 0 ]
|
|
then
|
|
echo "Strawberry not running"
|
|
exit 1
|
|
fi
|
|
|
|
if [ "$metadata" = "a{sv} 0" ]
|
|
then
|
|
echo "No song in playlist"
|
|
exit 2
|
|
fi
|
|
|
|
artist=$(echo $metadata | sed 's/^.*"xesam:albumArtist" as 1 "\([^"]\+\)".*$/\1/')
|
|
album=$(echo $metadata | sed 's/^.*"xesam:album" s "\([^"]\+\)".*$/\1/')
|
|
trackNumber=$(echo $metadata | sed 's/^.*"xesam:trackNumber" i \([0-9]\+\).*$/\1/')
|
|
title=$(echo $metadata | sed 's/^.*"xesam:title" s "\([^"]\+\)".*$/\1/')
|
|
|
|
length=$(echo $metadata | sed 's/^.*"mpris:length" x \([0-9]\+\)[0-9]\{6\}.*$/\1/')
|
|
position=$(busctl --user get-property org.mpris.MediaPlayer2.strawberry /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player Position | sed 's/^x \([0-9]\+\)[0-9]\{6\}$/\1/')
|
|
|
|
playback_status=$(busctl --user get-property org.mpris.MediaPlayer2.strawberry /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player PlaybackStatus | sed 's/^s "\(.\+\)"$/\1/')
|
|
|
|
if [ "$length" -ge 3600 ]
|
|
then
|
|
format="+%H:%M:%S"
|
|
else
|
|
format="+%M:%S"
|
|
fi
|
|
|
|
formatted_length=$(date --date=@$length --utc $format)
|
|
formatted_position=$(date --date=@$position --utc $format)
|
|
|
|
if [ "$playback_status" != "Playing" ]
|
|
then
|
|
printf "($playback_status) "
|
|
fi
|
|
echo "$artist - $album - $title ($trackNumber) [$formatted_position / $formatted_length]"
|