new features
Features: + play favorite from TuneIn radio + play local .m3u playlist (alpha) + Apache License 2.0
This commit is contained in:
@@ -1,19 +1,17 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# A bash GUI for soco-cli (https://github.com/avantrec/soco-cli/)
|
||||||
|
# Apache License 2.0
|
||||||
|
|
||||||
#set -e
|
#set -e
|
||||||
#set -u
|
#set -u
|
||||||
#set -o pipefail
|
#set -o pipefail
|
||||||
|
|
||||||
#\033[background;style;color]
|
|
||||||
# background: 40-49,100-107
|
|
||||||
# color: 30-39,90-97
|
|
||||||
# style: 1 (bold) 2 (light) 4 (underline) 5 (blink) 7 (reverse) 8 (hidden)
|
|
||||||
|
|
||||||
list="local"
|
list="local"
|
||||||
if [ "$list" = "discovery" ]; then loc="";
|
if [ "$list" = "discovery" ]; then loc="";
|
||||||
else loc=" -l"; fi
|
else loc=" -l"; fi
|
||||||
#echo "$loc"
|
|
||||||
#sleep 3
|
# Needed to get the soco-cli update
|
||||||
GITHUB_TOKEN=13314ba0099450eaa6c0b2233d0f6adde1f5c718
|
GITHUB_TOKEN=13314ba0099450eaa6c0b2233d0f6adde1f5c718
|
||||||
|
|
||||||
discover=$(sonos-discover -p)
|
discover=$(sonos-discover -p)
|
||||||
@@ -36,6 +34,10 @@ function is_int() { test "$@" -eq "$@" 2> /dev/null; }
|
|||||||
|
|
||||||
# Main Menu
|
# Main Menu
|
||||||
|
|
||||||
|
# 'play_fav_radio_station_no'
|
||||||
|
# 'play_favourite_number'
|
||||||
|
# play_m3u
|
||||||
|
|
||||||
main() {
|
main() {
|
||||||
|
|
||||||
clear
|
clear
|
||||||
@@ -65,7 +67,6 @@ main() {
|
|||||||
last=${name:1}
|
last=${name:1}
|
||||||
echo -e " $j) ➔ Sonos $model device: ${bgd}$sc${reset}$last"
|
echo -e " $j) ➔ Sonos $model device: ${bgd}$sc${reset}$last"
|
||||||
|
|
||||||
#echo -e " $j) ➔ Sonos $model device: $name "
|
|
||||||
((j++))
|
((j++))
|
||||||
done <<< "$dev"
|
done <<< "$dev"
|
||||||
|
|
||||||
@@ -300,14 +301,14 @@ soco() {
|
|||||||
echo -e "------------------------|--------------------------------|-------------------------"
|
echo -e "------------------------|--------------------------------|-------------------------"
|
||||||
echo -e " 1) France In${bgd}f${reset}o " " | " "11) volume ${bgd}11${reset} " " | " "26) ➔ ${bgd}I${reset}nfos "
|
echo -e " 1) France In${bgd}f${reset}o " " | " "11) volume ${bgd}11${reset} " " | " "26) ➔ ${bgd}I${reset}nfos "
|
||||||
echo -e " 2) France Int${bgd}e${reset}r " " | " "12) ${bgd}m${reset}ute ON " " | " "27) ➔ ${bgd}L${reset}ists "
|
echo -e " 2) France Int${bgd}e${reset}r " " | " "12) ${bgd}m${reset}ute ON " " | " "27) ➔ ${bgd}L${reset}ists "
|
||||||
echo -e " 3) ${bgd}K${reset}6 FM " " | " "13) volume ${bgd}13${reset} " " | " "28) Play al${bgd}b${reset}ums "
|
echo -e " 3) ${bgd}K${reset}6 FM " " | " "13) volume ${bgd}13${reset} " " | " "28) Pl${bgd}a${reset}y radio from TuneIn "
|
||||||
echo -e " 4) Rires et ${bgd}C${reset}hansons " " | " "14) m${bgd}u${reset}te OFF " " | " "29) Play artists (${bgd}x${reset}) "
|
echo -e " 4) Rires et ${bgd}C${reset}hansons " " | " "14) m${bgd}u${reset}te OFF " " | " "29) Pla${bgd}y${reset} local .m3u playlist "
|
||||||
echo -e " 5) ${bgd}R${reset}TL " " | " "15) volume ${bgd}15${reset} " " | " "30) Play tracks (${bgd}y${reset}) "
|
echo -e " 5) ${bgd}R${reset}TL " " | " "15) volume ${bgd}15${reset} " " | " "30) Play al${bgd}b${reset}ums "
|
||||||
echo -e " 6) ${bgd}D${reset}eezer Flow " " | " "16) volume ${bgd}+${reset} " " | " "31) Sleeep (${bgd}j${reset}) "
|
echo -e " 6) ${bgd}D${reset}eezer Flow " " | " "16) volume ${bgd}+${reset} " " | " "31) Play artists (${bgd}x${reset}) "
|
||||||
echo -e " 7) ${italic}Edit/add fav here${reset} " " | " "17) volume ${bgd}-${reset} " " | " "32) Sha${bgd}z${reset}aaaam "
|
echo -e " 7) ${italic}Edit/add fav here${reset} " " | " "17) volume ${bgd}-${reset} " " | " "32) Play tracks (${bgd}y${reset}) "
|
||||||
echo -e " 8) " " | " "18) pause ${bgd}o${reset}n $device12 " " | " "33) S${bgd}w${reset}itch Status Light "
|
echo -e " 8) " " | " "18) pause ${bgd}o${reset}n $device12 " " | " "33) Sleeep (${bgd}j${reset}) "
|
||||||
echo -e " 9) " " | " "19) ${bgd}p${reset}rev on $device12 " " | " "34) "
|
echo -e " 9) " " | " "19) ${bgd}p${reset}rev on $device12 " " | " "34) Sha${bgd}z${reset}aaaam "
|
||||||
echo -e "10) " " | " "20) ${bgd}n${reset}ext on $device12 " " | " "35) "
|
echo -e "10) " " | " "20) ${bgd}n${reset}ext on $device12 " " | " "35) S${bgd}w${reset}itch Status Light "
|
||||||
echo -e " " " | " "21) ${bgd}s${reset}tart $device12 " " | " "36) "
|
echo -e " " " | " "21) ${bgd}s${reset}tart $device12 " " | " "36) "
|
||||||
echo -e " " " | " "22) s${bgd}t${reset}op $device12 " " | " "37) "
|
echo -e " " " | " "22) s${bgd}t${reset}op $device12 " " | " "37) "
|
||||||
echo -e " " " | " "23) " " | " "38) "
|
echo -e " " " | " "23) " " | " "38) "
|
||||||
@@ -319,6 +320,7 @@ soco() {
|
|||||||
|
|
||||||
case "$soco_menu" in
|
case "$soco_menu" in
|
||||||
|
|
||||||
|
# Play your favs from 1 to 10
|
||||||
1|f|F) option_1;;
|
1|f|F) option_1;;
|
||||||
2|e|E) option_2;;
|
2|e|E) option_2;;
|
||||||
3|k|K) option_3;;
|
3|k|K) option_3;;
|
||||||
@@ -340,12 +342,14 @@ soco() {
|
|||||||
22|n|N) option_20;;
|
22|n|N) option_20;;
|
||||||
26|i|I) soco_infos $device;;
|
26|i|I) soco_infos $device;;
|
||||||
27|l|L) soco_lists $device;;
|
27|l|L) soco_lists $device;;
|
||||||
28|b|B) play_album_from_library;;
|
28|a|A) play_radio_from_tunein;;
|
||||||
29|x|X) play_artist_from_library;;
|
29|y|Y) play_local_m3u;;
|
||||||
30|y|Y) play_track_from_library;;
|
30|b|B) play_album_from_library;;
|
||||||
31|j|J) sleeep;;
|
31|x|X) play_artist_from_library;;
|
||||||
32|z|Z) option_27;;
|
32|y|Y) play_track_from_library;;
|
||||||
33|w|W) led;;
|
33|j|J) sleeep;;
|
||||||
|
34|z|Z) option_27;;
|
||||||
|
35|w|W) led;;
|
||||||
40|h|H) exec "$0";;
|
40|h|H) exec "$0";;
|
||||||
*) echo -e "\n${red}Oops!!! Please Select Correct Choice${reset}";
|
*) echo -e "\n${red}Oops!!! Please Select Correct Choice${reset}";
|
||||||
echo -e "Press ${bold}ENTER${reset} To Continue..." ; read ;;
|
echo -e "Press ${bold}ENTER${reset} To Continue..." ; read ;;
|
||||||
@@ -353,6 +357,7 @@ soco() {
|
|||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
|
### ADD YOUR FAVS HERE ###
|
||||||
|
|
||||||
# Playing France Info
|
# Playing France Info
|
||||||
option_1() {
|
option_1() {
|
||||||
@@ -404,6 +409,9 @@ option_7() {
|
|||||||
#sonos $loc $device play_fav '<favori>' && sleep 2
|
#sonos $loc $device play_fav '<favori>' && sleep 2
|
||||||
}
|
}
|
||||||
|
|
||||||
|
### /ADD YOUR FAVS HERE ###
|
||||||
|
|
||||||
|
|
||||||
# Set volume to level 11
|
# Set volume to level 11
|
||||||
option_11() {
|
option_11() {
|
||||||
#playing="Playing Deezer Flow..."
|
#playing="Playing Deezer Flow..."
|
||||||
@@ -492,6 +500,48 @@ vol_-() {
|
|||||||
echo -e "\nSet volume to ${bold}level $vol${reset}" && sleep 0.5
|
echo -e "\nSet volume to ${bold}level $vol${reset}" && sleep 0.5
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Play favorite from TuneIn radio
|
||||||
|
play_radio_from_tunein() {
|
||||||
|
playing="Play a radio from TuneIn..."
|
||||||
|
echo -e "\n${bold} $playing ${reset}"
|
||||||
|
|
||||||
|
list=$(sonos $loc $device favourite_radio_stations)
|
||||||
|
echo -e "$list\n"
|
||||||
|
|
||||||
|
read -p "Radio to play: " number
|
||||||
|
|
||||||
|
radio=$(echo "$list" | awk 'NF' | sed "${number}q;d" | awk -F '[0-9]+:' '{print $2}' | xargs)
|
||||||
|
|
||||||
|
playing="Play $radio from TuneIn..."
|
||||||
|
sonos $loc $device play_fav_radio_station_no $number
|
||||||
|
echo "$playing"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Play local .m3u playlist
|
||||||
|
play_local_m3u() {
|
||||||
|
playing="Play a local .m3u playlist..."
|
||||||
|
echo -e "\n${bold} $playing ${reset}"
|
||||||
|
|
||||||
|
|
||||||
|
m3u="/Users/bruno/Music/Shaka Ponk - Apelogies/CD1/playlist.m3u"
|
||||||
|
|
||||||
|
# ${directory////\\/}
|
||||||
|
# sed 's/ /\\ /g'
|
||||||
|
|
||||||
|
m3u="\/Users\/bruno\/Music\/Shaka\ Ponk\ \-\ Apelogies\/CD1\/playlist.m3u"
|
||||||
|
m3u="/Users/bruno/Music/Shaka\ Ponk\ \-\ Apelogies/CD1/playlist.m3u"
|
||||||
|
m3u="playlist.m3u"
|
||||||
|
plt=$(ls *.m3u*)
|
||||||
|
cd /Users/bruno/Music/Shaka\ Ponk\ -\ Apelogies/CD1
|
||||||
|
read -p "Enter m3u file path: " fp
|
||||||
|
if [ -a "$fp" ]; then
|
||||||
|
cat "$fp"
|
||||||
|
sonos $loc $device play_m3u "$fp"
|
||||||
|
else
|
||||||
|
echo "File doesn't exist!"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
# Search artist in library -> add album to queue -> play it
|
# Search artist in library -> add album to queue -> play it
|
||||||
play_artist_from_library() {
|
play_artist_from_library() {
|
||||||
read -p "Search artist in library: " search
|
read -p "Search artist in library: " search
|
||||||
|
|||||||
Reference in New Issue
Block a user