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
|
||||
|
||||
# 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"
|
||||
|
||||
@@ -300,14 +301,14 @@ soco() {
|
||||
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
|
||||
|
||||
Reference in New Issue
Block a user