#!/bin/sh

# from https://github.com/polybar/polybar-scripts/tree/master/polybar-scripts/player-cmus

if info=$(cmus-remote -Q 2> /dev/null); then
	status=$(echo "$info" | grep -v "set " | grep -v "tag " | grep "status " | cut -d ' ' -f 2)

	if [ "$status" = "playing" ] || [ "$status" = "paused" ] || [ "$status" = "stopped" ]; then
		title=$(echo "$info" | grep -v 'set ' | grep " title " | cut -d ' ' -f 3-)
		artist=$(echo "$info" | grep -v 'set ' | grep " artist " | cut -d ' ' -f 3-)
		position=$(echo "$info" | grep -v "set " | grep -v "tag " | grep "position " | cut -d ' ' -f 2)
		duration=$(echo "$info" | grep -v "set " | grep -v "tag " | grep "duration " | cut -d ' ' -f 2)

		if [ "$artist" ] || [ "$title" ]; then
			if [ "$duration" -ge 0 ]; then
				pos_minutes=$(printf "%02d" $((position / 60)))
				pos_seconds=$(printf "%02d" $((position % 60)))

				dur_minutes=$(printf "%02d" $((duration / 60)))
				dur_seconds=$(printf "%02d" $((duration % 60)))

				info_string="| $pos_minutes:$pos_seconds / $dur_minutes:$dur_seconds"
			fi

			info_string="$artist - $title $info_string"

			if [ "$status" = "playing" ]; then
				echo "  $info_string"
			elif [ "$status" = "paused" ]; then
				echo "  $info_string"
			elif [ "$status" = "stopped" ]; then
				echo "  $info_string"
			else
				echo ""
			fi
		else
			echo ""
		fi
	else
		echo ""
	fi
else
	echo ""
fi