sistema_progs

Programas para customizar o meu entorno de traballo nos meus equipos persoais
Log | Files | Refs

moclyrics (1064B)


      1 #!/usr/bin/env sh
      2 
      3 # Description: Fetches the lyrics of the track currently playing in MOC
      4 #
      5 # Dependencies: ddgr (https://github.com/jarun/ddgr)
      6 #
      7 # Shell: POSIX compliant
      8 # Author: Arun Prakash Jana
      9 
     10 # Check if MOC server is running
     11 cmd=$(pgrep -x mocp 2>/dev/null)
     12 ret=$cmd
     13 if [ -z "$ret" ]; then
     14     exit
     15 fi
     16 
     17 # Grab the output
     18 out="$(mocp -i)"
     19 
     20 # Check if anything is playing
     21 state=$(echo "$out" | grep "State:" | cut -d' ' -f2)
     22 if ! [ "$state" = 'PLAY' ]; then
     23     exit
     24 fi
     25 
     26 # Try by Artist and Song Title first
     27 ARTIST="$(echo "$out" | grep 'Artist:' | cut -d':' -f2 | sed 's/^[[:blank:]]*//;s/[[:blank:]]*$//')"
     28 TITLE="$(echo "$out" | grep 'SongTitle:' | cut -d':' -f2 | sed 's/^[[:blank:]]*//;s/[[:blank:]]*$//')"
     29 
     30 if [ -n "$ARTIST" ] && [ -n "$TITLE" ]; then
     31     ddgr -w azlyrics.com --ducky "$ARTIST" "$TITLE"
     32 else
     33     # Try by file name
     34     FILENAME="$(basename "$(echo "$out" | grep 'File:' | cut -d':' -f2)")"
     35     FILENAME="$(echo "${FILENAME%%.*}" | tr -d -)"
     36 
     37     if [ -n "$FILENAME" ]; then
     38         ddgr -w azlyrics.com --ducky "$FILENAME"
     39     fi
     40 fi