diff --git a/shell/mpd/bin/notify-song.sh b/shell/mpd/bin/notify-song.sh index 405686ef..7cb7e461 100755 --- a/shell/mpd/bin/notify-song.sh +++ b/shell/mpd/bin/notify-song.sh @@ -5,7 +5,7 @@ if ! pgrep mpd >/dev/null; then exit 1 fi -info=$(mpc -f ";%artist%;%album%;%title%") +info=$(mpc -f ";%artist%;%album%;%title%;%file%") if [[ -z $info || ${info:0:1} != ";" ]]; then >&2 echo "nothing is playing." exit @@ -14,16 +14,44 @@ 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="${artist:-No Album}" -title="${artist:-Untitled}" +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="☆" + + 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*) - terminal-notifier -title "$title" -message "by $artist :: $album" -appIcon "/Applications/iTunes.app/Contents/Resources/iTunes.icns" + rating="[$rating] " + killall terminal-notifier + terminal-notifier -title "$rating$title" -message "by $artist :: $album" -appIcon "/Applications/iTunes.app/Contents/Resources/iTunes.icns" ;; linux*) - notify-send --icon="media-playback-start" --app-name="ncmpcpp" "$title" "${artist}\n${album}" + notify-send --icon="media-playback-start" --app-name="ncmpcpp" "$title" "${artist}\n${album}\n$rating" ;; esac