Initial commit. In a broken state, do not use.
This commit is contained in:
@@ -0,0 +1,97 @@
|
||||
#!/bin/bash
|
||||
# configure-pianobar.sh
|
||||
# Description: Easily configure pianobar.
|
||||
#
|
||||
# Copyright 2018, F123 Consulting, <information@f123.org>
|
||||
# Copyright 2018, Storm Dragon, <storm_dragon@linux-a11y.org>
|
||||
#
|
||||
# This is free software; you can redistribute it and/or modify it under the
|
||||
# terms of the GNU General Public License as published by the Free
|
||||
# Software Foundation; either version 3, or (at your option) any later
|
||||
# version.
|
||||
#
|
||||
# This software is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
# General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this package; see the file COPYING. If not, write to the Free
|
||||
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||
# 02110-1301, USA.
|
||||
#
|
||||
#--code--
|
||||
|
||||
# Load functions and reusable code:
|
||||
source /usr/lib/F123-includes/script_functions.sh
|
||||
|
||||
write_configuration() {
|
||||
cat << EOF > "${configPath}/config"
|
||||
user = $1
|
||||
password = $2
|
||||
event_command = $configPath/eventcmd.sh
|
||||
audio_quality = high
|
||||
|
||||
act_songban = !
|
||||
EOF
|
||||
}
|
||||
|
||||
create_eventcmd() {
|
||||
echo '#!/bin/bash
|
||||
# create variables
|
||||
while read L; do
|
||||
k="$(echo "$L" | cut -d "=" -f 1)"
|
||||
v="$(echo "$L" | cut -d "=" -f 2)"
|
||||
export "$k=$v"
|
||||
done < <(grep -e "^\(title\|artist\|album\|stationName\|pRet\|pRetStr\|wRet\|wRetStr\|songDuration\|songPlayed\|rating\|coverArt\|stationCount\|station[0-9]*\)=" /dev/stdin) # do not overwrite $1
|
||||
album="${album% \(*}"
|
||||
artist="${artist% \(*}"
|
||||
case "$1" in
|
||||
"songstart")
|
||||
echo "$artist\\$title\\$album\\$stationName" > '"$configPath"'/nowplaying
|
||||
grep -iqs "^${artist}$" '"$configPath"'/banlist.txt && echo -n "!" > '"$configPath"'/ctl
|
||||
grep -iqs "^${artist}$" '"$configPath"'/lovelist.txt && echo -n "+" > '"$configPath"'/ctl
|
||||
;;
|
||||
"songfinish")
|
||||
rm '"$configPath/nowplaying"'
|
||||
;;' > "$configPath/eventcmd.sh"
|
||||
echo "\"songlove\")
|
||||
$0 -M
|
||||
;;" >> "$configPath/eventcmd.sh"
|
||||
echo '*)
|
||||
if [ "$pRet" -ne 1 ]; then
|
||||
echo "$1 failed"
|
||||
elif [ "$wRet" -ne 1 ]; then
|
||||
echo "$a failed, network error."
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
exit 0' >> "$configPath/eventcmd.sh"
|
||||
chmod 700 "$configPath/eventcmd.sh"
|
||||
}
|
||||
|
||||
configPath="${XDG_CONFIG_HOME:-$HOME/.config}/pianobar"
|
||||
|
||||
if [[ -d "$configPath" ]]; then
|
||||
[[ "$(yesno "A configuration file already exists, would you like to replace it?")" == "Yes" ]] && rm -rf "$configPath"
|
||||
fi
|
||||
|
||||
if [[ ! -d "$configPath" ]]; then
|
||||
email="$(inputbox "Please enter your Pandor account name. (email address)")"
|
||||
[[ -z "email" ]] && exit 0
|
||||
password="$(passwordbox "Please enter your Pandora password.")"
|
||||
[[ -z "password" ]] && exit 0
|
||||
mkdir -p "$configPath" &> /dev/null
|
||||
mkfifo "$configPath/ctl" &> /dev/null
|
||||
write_configuration "$email" "$password"
|
||||
create_eventcmd
|
||||
# Find out if we need a proxy
|
||||
country="$(curl -s ipinfo.io | grep '"country":' | cut -d '"' -f4)"
|
||||
if [[ "${country^^}" != "US" ]]; then
|
||||
proxy="$(curl -s "https://gimmeproxy.com/api/getProxy?country=US" | grep '"ip":' | cut -d '"' -f4)"
|
||||
echo "control_proxy = ${proxy}:80" >> "$configPath/config"
|
||||
fi
|
||||
msgbox "Pianobar has been configured."
|
||||
fi
|
||||
|
||||
exit 0
|
Reference in New Issue
Block a user