# subsonic alias subsonic-cli="\subsonic-cli -c $HOME/.subsonic-cli.conf" subsonic-play() { # $1 songId for song in $@ do echo $song > /tmp/.playing subsonic-cli stream -p id $song \ | mpg123 - done } subsonic-random() { while true; do echo "Fetching moar dataaa.." subsonic-cli getRandomSongs \ | jq -r '.randomSongs[][].id' \ | xargs -n1 -I{} ksh -ic "subsonic-play {}" done } subsonic-favorites() { while true; do echo "Fetching moar dataaa.." subsonic-cli getStarred \ | jq -r '.starred[][].id' \ | sort -r \ | xargs -n1 -I{} ksh -ic "subsonic-play {}" done } subsonic-search() { { echo "|ID|ALBUM|ARTIST|TITLE|GENRE|" echo "|--------|--------|--------|--------|--------|" subsonic-cli search3 \ -p songcount 200 \ -p query "$@" \ | jq -r '.searchResult3[][]|select(.contentType!=null)|[.id,.album,.title,.artist,.genre]' \ | tr -d '", ' \ | awk '/^\[/ { S++ } \ /^\]/ { S-- } \ S==0 { NR=0 } \ NR==2 { ID=$0 } \ NR==3 { ALBUM=$0 } \ NR==4 { TITLE=$0 } \ NR==5 { ARTIST=$0 } \ NR==6 { GENRE=$0 } \ NR==0 { printf("|%s|%s|%s|%s|%s|\n", ID, ALBUM, ARTIST, TITLE, GENRE) }' } | column -s'|' -t } subsonic-star() { [ -f /tmp/.playing ] \ && subsonic-cli star -p id $(cat /tmp/.playing | tail -1) \ || echo bruh. } subsonic-unstar() { [ -f /tmp/.playing ] \ && subsonic-cli unstar -p id $(cat /tmp/.playing | tail -1) \ || echo bruh. }