65 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			65 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
#!/usr/bin/env bash
 | 
						|
 | 
						|
if ! pgrep mpd >/dev/null; then
 | 
						|
    >&2 echo "mpd isn't running."
 | 
						|
    exit 1
 | 
						|
fi
 | 
						|
 | 
						|
info=$(mpc -f ";%artist%;%album%;%title%;%file%")
 | 
						|
if [[ -z $info || ${info:0:1} != ";" ]]; then
 | 
						|
    >&2 echo "nothing is playing."
 | 
						|
    exit
 | 
						|
fi
 | 
						|
 | 
						|
artist=$(awk -F';' '{ print $2 }' <<<"$info")
 | 
						|
album=$(awk -F';' '{ print $3 }' <<<"$info")
 | 
						|
title=$(awk -F';' '{ print $4 }' <<<"$info")
 | 
						|
file=$(awk -F';' '{ print $5 }' <<<"$info")
 | 
						|
 | 
						|
artist="${artist:-No Artist}"
 | 
						|
album="${album:-No Album}"
 | 
						|
title="${title:-Untitled}"
 | 
						|
rating=
 | 
						|
 | 
						|
stars=$(cd ~/music/.db/playlists/ && grep "$file" ./*-star.m3u)
 | 
						|
if [[ $stars ]]; then
 | 
						|
    case $stars in
 | 
						|
        ./1-star.m3u*) starn=1 ;;
 | 
						|
        ./2-star.m3u*) starn=2 ;;
 | 
						|
        ./3-star.m3u*) starn=3 ;;
 | 
						|
        ./4-star.m3u*) starn=4 ;;
 | 
						|
        ./5-star.m3u*) starn=5 ;;
 | 
						|
    esac
 | 
						|
 | 
						|
    if [[ $starn ]]; then
 | 
						|
        star_filled_icon="★"
 | 
						|
        star_empty_icon="☆"
 | 
						|
        if [[ $OSTYPE == linux* ]]; then
 | 
						|
            star_filled_icon="<span fgcolor='#8fb1cd'>${star_filled_icon}</span>"
 | 
						|
            star_empty_icon="<span fgcolor='#666666'>${star_empty_icon}</span>"
 | 
						|
        fi
 | 
						|
 | 
						|
        for ((i=1;i<=5;i++)); do
 | 
						|
            if (( "$starn" >= "$i" )); then
 | 
						|
                rating="${rating}${star_filled_icon}"
 | 
						|
            else
 | 
						|
                rating="${rating}${star_empty_icon}"
 | 
						|
            fi
 | 
						|
        done
 | 
						|
    fi
 | 
						|
fi
 | 
						|
 | 
						|
case $OSTYPE in
 | 
						|
    darwin*)
 | 
						|
        [[ $rating ]] && rating="[$rating] "
 | 
						|
        killall terminal-notifier
 | 
						|
        terminal-notifier -title "$rating$title" -message "by $artist :: $album" -appIcon "/Applications/iTunes.app/Contents/Resources/iTunes.icns" &
 | 
						|
        ;;
 | 
						|
    linux*)
 | 
						|
        [[ $rating ]] && rating="$rating\n"
 | 
						|
        notify-send --icon="media-playback-start" --app-name="ncmpcpp" "$rating$title" "${artist}\n<i>${album}</i>" &
 | 
						|
        ;;
 | 
						|
esac >/dev/null 2>&1
 | 
						|
 | 
						|
exit
 |