new features

Features:
+ play favorite from TuneIn radio
+ play local .m3u playlist (alpha)
+ Apache License 2.0
This commit is contained in:
2021-01-27 17:26:28 +01:00
parent 839830a895
commit 990cfbf8a5

View File

@@ -1,19 +1,17 @@
#!/usr/bin/env bash
# A bash GUI for soco-cli (https://github.com/avantrec/soco-cli/)
# Apache License 2.0
#set -e
#set -u
#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"
if [ "$list" = "discovery" ]; then loc="";
else loc=" -l"; fi
#echo "$loc"
#sleep 3
# Needed to get the soco-cli update
GITHUB_TOKEN=GITHUB_TOKEN
discover=$(sonos-discover -p)
@@ -36,6 +34,10 @@ function is_int() { test "$@" -eq "$@" 2> /dev/null; }
# Main Menu
# 'play_fav_radio_station_no'
# 'play_favourite_number'
# play_m3u
main() {
clear
@@ -65,7 +67,6 @@ main() {
last=${name:1}
echo -e " $j) ➔ Sonos $model device: ${bgd}$sc${reset}$last"
#echo -e " $j) ➔ Sonos $model device: $name "
((j++))
done <<< "$dev"
@@ -296,18 +297,18 @@ soco() {
echo -e ""
echo -e " "
echo -e "------------------------|--------------------------------|-------------------------"
echo -e " Sonos $device Menu : $playing "
echo -e " Sonos $device Menu : $playing "
echo -e "------------------------|--------------------------------|-------------------------"
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 " 3) ${bgd}K${reset}6 FM " " | " "13) volume ${bgd}13${reset} " " | " "28) Play al${bgd}b${reset}ums "
echo -e " 4) Rires et ${bgd}C${reset}hansons " " | " "14) m${bgd}u${reset}te OFF " " | " "29) Play artists (${bgd}x${reset}) "
echo -e " 5) ${bgd}R${reset}TL " " | " "15) volume ${bgd}15${reset} " " | " "30) Play tracks (${bgd}y${reset}) "
echo -e " 6) ${bgd}D${reset}eezer Flow " " | " "16) volume ${bgd}+${reset} " " | " "31) Sleeep (${bgd}j${reset}) "
echo -e " 7) ${italic}Edit/add fav here${reset} " " | " "17) volume ${bgd}-${reset} " " | " "32) Sha${bgd}z${reset}aaaam "
echo -e " 8) " " | " "18) pause ${bgd}o${reset}n $device12 " " | " "33) S${bgd}w${reset}itch Status Light "
echo -e " 9) " " | " "19) ${bgd}p${reset}rev on $device12 " " | " "34) "
echo -e "10) " " | " "20) ${bgd}n${reset}ext on $device12 " " | " "35) "
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) Pla${bgd}y${reset} local .m3u playlist "
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) Play artists (${bgd}x${reset}) "
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) Sleeep (${bgd}j${reset}) "
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) S${bgd}w${reset}itch Status Light "
echo -e " " " | " "21) ${bgd}s${reset}tart $device12 " " | " "36) "
echo -e " " " | " "22) s${bgd}t${reset}op $device12 " " | " "37) "
echo -e " " " | " "23) " " | " "38) "
@@ -319,6 +320,7 @@ soco() {
case "$soco_menu" in
# Play your favs from 1 to 10
1|f|F) option_1;;
2|e|E) option_2;;
3|k|K) option_3;;
@@ -340,12 +342,14 @@ soco() {
22|n|N) option_20;;
26|i|I) soco_infos $device;;
27|l|L) soco_lists $device;;
28|b|B) play_album_from_library;;
29|x|X) play_artist_from_library;;
30|y|Y) play_track_from_library;;
31|j|J) sleeep;;
32|z|Z) option_27;;
33|w|W) led;;
28|a|A) play_radio_from_tunein;;
29|y|Y) play_local_m3u;;
30|b|B) play_album_from_library;;
31|x|X) play_artist_from_library;;
32|y|Y) play_track_from_library;;
33|j|J) sleeep;;
34|z|Z) option_27;;
35|w|W) led;;
40|h|H) exec "$0";;
*) echo -e "\n${red}Oops!!! Please Select Correct Choice${reset}";
echo -e "Press ${bold}ENTER${reset} To Continue..." ; read ;;
@@ -353,6 +357,7 @@ soco() {
done
}
### ADD YOUR FAVS HERE ###
# Playing France Info
option_1() {
@@ -404,6 +409,9 @@ option_7() {
#sonos $loc $device play_fav '<favori>' && sleep 2
}
### /ADD YOUR FAVS HERE ###
# Set volume to level 11
option_11() {
#playing="Playing Deezer Flow..."
@@ -492,6 +500,48 @@ vol_-() {
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
play_artist_from_library() {
read -p "Search artist in library: " search