Files
bash/sonos.sh
Bruno 21 fb35ec9e8e sonos.sh
+ raccourcis-clavier dans les menus
2020-12-15 08:58:16 +01:00

229 lines
7.6 KiB
Bash
Executable File

#!/bin/bash
clear
about() {
clear
echo ""
echo -e "\033[1mAbout:\033[0m"
echo ""
echo " ##### ##### #### #### ## ";
echo " ## ## ## ## ## ## ";
echo " ##### ## ## #### ## ## #### ## ## ### ## ## ## ### ";
echo " ## ## ## ## ## ## ## ###### ## ## ## ## ## ## ## ## ## ";
echo " ##### ## ## ## ## ## ## ## # ## ## ## ## ## ## ";
echo " ## ## ## ## ## ## ## ## ## ## ## ## ##### ## ## ## ";
echo " ###### ##### #### ##### #### ####### #### ## ###### #### ";
echo " ##### ";
echo ""
echo "Just a GUI for the wonderful tool SoCo-Cli"
echo ""
echo "https://github.com/avantrec/soco-cli"
echo ""
echo "<Press Enter to quit>"
}
help() {
echo ""
echo -e "\033[1mHelp:\033[0m"
echo ""
echo "<Press Enter to quit>"
}
inform() {
device="$1"
info=$(sonos $device info)
model_name=$(echo "$info" | grep "model_name" | awk -F"=" '{print $2}')
model_number=$(echo "$info" | grep "model_number" | awk -F"=" '{print $2}')
player_name=$(echo "$info" | grep "player_name" | awk -F"=" '{print $2}')
zone_name=$(echo "$info" | grep "zone_name" | awk -F"=" '{print $2}')
mac_address=$(echo "$info" | grep "mac_address" | awk -F"=" '{print $2}')
ip_address=$(echo "$info" | grep "ip_address" | awk -F"=" '{print $2}')
display_version=$(echo "$info" | grep "display_version" | awk -F"=" '{print $2}')
hardware_version=$(echo "$info" | grep "hardware_version" | awk -F"=" '{print $2}')
software_version=$(echo "$info" | grep "software_version" | awk -F"=" '{print $2}')
echo ""
printf "\e[1m| %-20s | %-20s |\e[0m\n" "$model_name" "$player_name"
printf "| %-20s | %-20s |\n" "Model name" "$model_name"
printf "| %-20s | %-20s |\n" "Model number" "$model_number"
printf "| %-20s | %-20s |\n" "Player name" "$player_name"
printf "| %-20s | %-20s |\n" "Zone name" "$zone_name"
printf "| %-20s | %-20s |\n" "mac adress" "$mac_address"
printf "| %-20s | %-20s |\n" "IP address" "$ip_address"
printf "| %-20s | %-20s |\n" "Display version" "$display_version"
printf "| %-20s | %-20s |\n" "Hardware version" "$hardware_version"
printf "| %-20s | %-20s |\n" "Software version" "$software_version"
}
soco() {
clear
device="$1"
while true
do
clear
echo ""
echo -e "\033[1m 🔊 Sonos $device \033[0m"
echo ""
PS3="Select an option: "
options=(
"France In(f)o"
"France In(t)er"
"(K)6 FM"
"Rires et (C)hansons"
"(R)TL"
"(D)eezer Flow"
"(P)laylist list_favs"
"-(s)tart $device"
"-s(t)op $device"
"-(i)nfos on $device"
"-volume (11)"
"-(m)ute ON"
"-volume (13)"
"-m(u)te OFF"
"-volume (15)"
"-status (l)ight ON"
"-status light (O)FF"
"Menu Princip(a)l"
)
select opt2 in "${options[@]}"
do
case "$REPLY" in
1|f|F)
echo -e "\n\033[1m Playing France Info... \033[0m"
sonos $device play_fav 'franceinfo' && sleep 2
break
;;
2|t|T)
echo -e "\n\033[1m Playing France Inter... \033[0m"
sonos $device play_fav 'france inter' && sleep 2
break
;;
3|k|K)
echo -e "\n\033[1m Playing K6 FM... \033[0m"
sonos $device play_fav 'K6 FM' && sleep 2
break
;;
4|c|C)
echo -e "\n\033[1m Playing Rires et Chansons... \033[0m"
sonos $device play_fav 'Rire et Chansons' && sleep 2
break
;;
5|r|R)
echo -e "\n\033[1m Playing RTL... \033[0m"
sonos $device play_fav 'RTL' && sleep 2
break
;;
6|d|D)
echo -e "\n\033[1m Playing Deezer Flow... \033[0m"
sonos $device play_fav 'Flow'
break
;;
7|p|P)
echo -e "\n\033[1m Display playlist list_favs... \033[0m"
sonos $device list_favs
read -p ""
break
;;
8|s|S)
echo -e "\n\033[1m Start $device... \033[0m"
sonos $device start && sleep 2
break
;;
9|t|T)
echo -e "\n\033[1m Stop $device... \033[0m"
sonos $device stop && sleep 2
break
;;
10|i|I)
echo -e "\n\033[1m Infos on $device... \033[0m"
inform $device
read -p ""
break
;;
11)
echo -e "\n\033[1m Set volume to level 11... \033[0m"
sonos $device volume 11 && sleep 2
break
;;
12|m|M)
echo -e "\n\033[1m Mute ON... \033[0m"
sonos $device mute on && sleep 2
break
;;
13)
echo -e "\n\033[1m Set volume to level 13... \033[0m"
sonos $device volume 13 && sleep 2
break
;;
14|u|U)
echo -e "\n\033[1m Mute OFF... \033[0m"
sonos $device mute off && sleep 2
break
;;
15)
echo -e "\n\033[1m Set volume to level 15... \033[0m"
sonos $device volume 15 && sleep 2
break
;;
16|l|L)
echo -e "\n\033[1m Status light ON... \033[0m"
sonos $device status_light on && sleep 2
break
;;
17|o|O)
echo -e "\n\033[1m Status light OFF... \033[0m"
sonos $device status_light off && sleep 2
break
;;
18|a|A)
exec "$0"
;;
*) echo -e "\n\033[1;31m invalid option \033[0m";;
esac
done
done
}
while true
do
clear
echo -e ""
echo -e "\033[1m 🔈 SoCo-Cli GUI\033[0m"
echo -e ""
PS3='Select an option: '
options=("(A)bout" "(H)elp" "(C)hambre" "(S)alon" "(Q)uit")
select opt in "${options[@]}"
do
case "$REPLY" in
1|a|A)
about
read -p ""
break
;;
2|h|H)
help
read -p ""
break
;;
3|c|C)
soco "Chambre"
;;
4|s|S)
soco "Salon"
;;
5|q|Q)
exit
;;
*) echo "invalid option"
;;
esac
done
done