awesome/bin/get_mpris_art.sh
2022-10-01 19:38:53 +02:00

38 lines
1.1 KiB
Bash
Executable file

get_artUrl() {
artUrl=$(playerctl -p $1 metadata | grep artUrl | awk '{$1=$2=""; print $0}')
regex='(https?|ftp)://[-[:alnum:]\+&@#/%?=~_|!:,.;]*[-[:alnum:]\+&@#/%=~_|]'
if [[ $artUrl =~ $regex ]]
then
filename=/tmp/spotify-mpris/$(basename $artUrl)
if [ ! -f $filename ]
then
curl -sSL $artUrl --create-dirs -o $filename
fi
echo $filename
else
echo $artUrl
fi
}
read -d'\n' -ra PLAYERS <<<"$(playerctl -l 2>/dev/null)"
declare -a PAUSED
for player in "${PLAYERS[@]}"; do
[ "$player" = "playerctld" ] && continue;
p_status=$(playerctl -p "$player" status 2>/dev/null)
# if we have one playing, we'll use it and EXIT
if [ "$p_status" = "Playing" ]; then
get_artUrl $player
exit 0;
fi
[ "$p_status" = "Paused" ] && PAUSED+=("$player")
done
# if we have a paused, show it otherwise assume there are no players or have all stopped
if [ -n "${PAUSED[0]}" ]; then
get_artUrl ${PAUSED[0]}
echo $(playerctl -p metadata | grep artUrl | awk '{$1=$2=""; print $0}')
fi