#!/bin/bash ## Get data STATUS="$(mpc status)" # COVER="/tmp/.music_cover.jpg" MUSIC_DIR="$HOME/Music" ## Get status get_status() { if [[ $STATUS == *"[playing]"* ]]; then echo "" else echo "喇" fi } ## Get song get_song() { song=`mpc -f %title% current` if [[ -z "$song" ]]; then echo "Offline" else echo "$song" fi } ## Get artist get_artist() { artist=`mpc -f %artist% current` if [[ -z "$artist" ]]; then echo "Offline" else echo "$artist" fi } ## Get time get_time() { time=`mpc status | grep "%)" | awk '{print $4}' | tr -d '(%)'` if [[ -z "$time" ]]; then echo "0" else echo "$time" fi } get_ctime() { ctime=`mpc status | grep "#" | awk '{print $3}' | sed 's|/.*||g'` if [[ -z "$ctime" ]]; then echo "0:00" else echo "$ctime" fi } get_ttime() { ttime=`mpc -f %time% current` if [[ -z "$ttime" ]]; then echo "0:00" else echo "$ttime" fi } ## Get cover get_cover() { ffmpeg -i "${MUSIC_DIR}/$(mpc current -f %file%)" "${COVER}" -y &> /dev/null STATUS=$? # # Check if the file has a embbeded album art # if [ "$STATUS" -eq 0 ];then # echo "$COVER" # else # echo "cover.png" # fi current=$(mpc current -f '%file%') artist=$(printf "%s\n" "$current" | awk -F '/' '{print $1}') album=$(printf "%s\n" "$current" | awk -F '/' '{print $2}') dir="$MUSIC_DIR/$artist/$album" cover_path=$(find "$dir/" -type f -name "cover*") if [[ $(echo "$cover_path" | wc -l) -eq 1 ]]; then cp "$cover_path" "$HOME/.config/eww/.coverart/cover.png" return 0 else song=$(printf "%s\n" "$current" | awk -F "/" '{print $3}') dir="$MUSIC_DIR/$artist/$album/$song/cover.png" [ ! -f "$dir" ] && dir="$MUSIC_DIR/$artist/$album/$song/cover.jpg" [ ! -f "$dir" ] && exit 1 # pth=$(echo "$dir" | sed -E 's/ /\\ /g') cp "$dir" "$HOME/.config/eww/.coverart/cover.png" fi } ## Execute accordingly if [[ "$1" == "--song" ]]; then get_song elif [[ "$1" == "--artist" ]]; then get_artist elif [[ "$1" == "--status" ]]; then get_status elif [[ "$1" == "--time" ]]; then get_time elif [[ "$1" == "--ctime" ]]; then get_ctime elif [[ "$1" == "--ttime" ]]; then get_ttime elif [[ "$1" == "--cover" ]]; then get_cover elif [[ "$1" == "--toggle" ]]; then mpc -q toggle elif [[ "$1" == "--next" ]]; then { mpc -q next; get_cover; } elif [[ "$1" == "--prev" ]]; then { mpc -q prev; get_cover; } fi