#!/usr/bin/env sh # Description: Fetches the lyrics of the currently playing track in MOC # Requires ddgr (https://github.com/jarun/ddgr) # # Shell: POSIX compliant # Author: Arun Prakash Jana # Check if MOC server is running cmd=$(pgrep -x mocp 2>/dev/null) ret=$cmd if [ -z "$ret" ]; then exit fi # Grab the output out="$(mocp -i)" # Check if anything is playing state=$(echo "$out" | grep "State:" | cut -d' ' -f2) if ! [ $state = 'PLAY' ]; then exit fi # Try by Artist and Song Title first ARTIST="$(echo "$out" | grep 'Artist:' | cut -d':' -f2 | sed 's/^[[:blank:]]*//;s/[[:blank:]]*$//')" TITLE="$(echo "$out" | grep 'SongTitle:' | cut -d':' -f2 | sed 's/^[[:blank:]]*//;s/[[:blank:]]*$//')" if ! [ -z "$ARTIST" ] && ! [ -z "$TITLE" ]; then ddgr -w azlyrics.com --ducky "$ARTIST" "$TITLE" else # Try by file name FILENAME="$(basename "$(echo "$out" | grep 'File:' | cut -d':' -f2)")" FILENAME="$(echo "${FILENAME%%.*}" | tr -d -)" if ! [ -z "$FILENAME" ]; then ddgr -w azlyrics.com --ducky "$FILENAME" fi fi