aboutsummaryrefslogtreecommitdiff
path: root/files/.config/nnn/plugins/moclyrics
diff options
context:
space:
mode:
Diffstat (limited to 'files/.config/nnn/plugins/moclyrics')
-rwxr-xr-xfiles/.config/nnn/plugins/moclyrics40
1 files changed, 40 insertions, 0 deletions
diff --git a/files/.config/nnn/plugins/moclyrics b/files/.config/nnn/plugins/moclyrics
new file mode 100755
index 0000000..2f69807
--- /dev/null
+++ b/files/.config/nnn/plugins/moclyrics
@@ -0,0 +1,40 @@
+#!/usr/bin/env sh
+
+# Description: Fetches the lyrics of the track currently playing in MOC
+#
+# Dependencies: 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 [ -n "$ARTIST" ] && [ -n "$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 [ -n "$FILENAME" ]; then
+ ddgr -w azlyrics.com --ducky "$FILENAME"
+ fi
+fi