summaryrefslogtreecommitdiff
path: root/plugins/macos/spotify
diff options
context:
space:
mode:
authorTuowen Zhao <ztuowen@gmail.com>2023-11-04 18:38:46 -0700
committerTuowen Zhao <ztuowen@gmail.com>2023-11-04 18:38:46 -0700
commit4d908094fdc2a0c0e9a0a072eba213fab7adef43 (patch)
tree7c17e70bcdeebbe96c84d849bdf17882007480d8 /plugins/macos/spotify
parent4b0bbc0b263a150eb9a9b59f196914629be06a9b (diff)
parent632ed413a9ce62747ded83d7736491b081be4b49 (diff)
downloadzsh-master.tar.gz
zsh-master.tar.bz2
zsh-master.zip
Merge remote-tracking branch 'github/master'HEADmaster
Diffstat (limited to 'plugins/macos/spotify')
-rw-r--r--plugins/macos/spotify37
1 files changed, 19 insertions, 18 deletions
diff --git a/plugins/macos/spotify b/plugins/macos/spotify
index 491a60686..ae42db425 100644
--- a/plugins/macos/spotify
+++ b/plugins/macos/spotify
@@ -1,7 +1,7 @@
#!/usr/bin/env bash
function spotify() {
-# Copyright (c) 2012--2019 Harish Narayanan <mail@harishnarayanan.org>
+# Copyright (c) 2012--2023 Harish Narayanan <mail@harishnarayanan.org>
#
# Contains numerous helpful contributions from Jorge Colindres, Thomas
# Pritchard, iLan Epstein, Gabriele Bonetti, Sean Heller, Eric Martin
@@ -35,6 +35,9 @@ if ! [[ -f "${USER_CONFIG_FILE}" ]]; then
fi
source "${USER_CONFIG_FILE}";
+# Set the percent change in volume for vol up and vol down
+VOL_INCREMENT=10
+
showAPIHelp() {
echo;
echo "Connecting to Spotify's API:";
@@ -43,7 +46,7 @@ showAPIHelp() {
echo " find music by name. It is very likely you want this feature!";
echo;
echo " To get this to work, you need to sign up (or in) and create an 'Application' at:";
- echo " https://developer.spotify.com/my-applications/#!/applications/create";
+ echo " https://developer.spotify.com/dashboard/create";
echo;
echo " Once you've created an application, find the 'Client ID' and 'Client Secret'";
echo " values, and enter them into your shpotify config file at '${USER_CONFIG_FILE}'";
@@ -170,12 +173,12 @@ while [ $# -gt 0 ]; do
if [ -z "${CLIENT_ID}" ]; then
cecho "Invalid Client ID, please update ${USER_CONFIG_FILE}";
showAPIHelp;
- return 1
+ return 1;
fi
if [ -z "${CLIENT_SECRET}" ]; then
cecho "Invalid Client Secret, please update ${USER_CONFIG_FILE}";
showAPIHelp;
- return 1
+ return 1;
fi
SHPOTIFY_CREDENTIALS=$(printf "${CLIENT_ID}:${CLIENT_SECRET}" | base64 | tr -d "\n"|tr -d '\r');
SPOTIFY_PLAY_URI="";
@@ -198,7 +201,7 @@ while [ $# -gt 0 ]; do
fi
SPOTIFY_ACCESS_TOKEN=$( \
printf "${SPOTIFY_TOKEN_RESPONSE_DATA}" \
- | grep -E -o '"access_token":".*",' \
+ | command grep -E -o '"access_token":".*",' \
| sed 's/"access_token"://g' \
| sed 's/"//g' \
| sed 's/,.*//g' \
@@ -219,9 +222,8 @@ while [ $# -gt 0 ]; do
-H "Accept: application/json" \
--data-urlencode "q=$Q" \
-d "type=$type&limit=1&offset=0" \
- | grep -E -o "spotify:$type:[a-zA-Z0-9]+" -m 1
+ | command grep -E -o "spotify:$type:[a-zA-Z0-9]+" -m 1
)
- echo "play uri: ${SPOTIFY_PLAY_URI}"
}
case $2 in
@@ -235,11 +237,11 @@ while [ $# -gt 0 ]; do
results=$( \
curl -s -G $SPOTIFY_SEARCH_API --data-urlencode "q=$Q" -d "type=playlist&limit=10&offset=0" -H "Accept: application/json" -H "Authorization: Bearer ${SPOTIFY_ACCESS_TOKEN}" \
- | grep -E -o "spotify:playlist:[a-zA-Z0-9]+" -m 10 \
+ | command grep -E -o "spotify:playlist:[a-zA-Z0-9]+" -m 10 \
)
count=$( \
- echo "$results" | grep -c "spotify:playlist" \
+ echo "$results" | command grep -c "spotify:playlist" \
)
if [ "$count" -gt 0 ]; then
@@ -333,16 +335,16 @@ while [ $# -gt 0 ]; do
cecho "Current Spotify volume level is $vol.";
break ;
elif [ "$2" = "up" ]; then
- if [ $vol -le 90 ]; then
- newvol=$(( vol+10 ));
+ if [ $vol -le $(( 100-$VOL_INCREMENT )) ]; then
+ newvol=$(( vol+$VOL_INCREMENT ));
cecho "Increasing Spotify volume to $newvol.";
else
newvol=100;
cecho "Spotify volume level is at max.";
fi
elif [ "$2" = "down" ]; then
- if [ $vol -ge 10 ]; then
- newvol=$(( vol-10 ));
+ if [ $vol -ge $(( $VOL_INCREMENT )) ]; then
+ newvol=$(( vol-$VOL_INCREMENT ));
cecho "Reducing Spotify volume to $newvol.";
else
newvol=0;
@@ -354,11 +356,11 @@ while [ $# -gt 0 ]; do
else
echo "Improper use of 'vol' command"
echo "The 'vol' command should be used as follows:"
- echo " vol up # Increases the volume by 10%.";
- echo " vol down # Decreases the volume by 10%.";
+ echo " vol up # Increases the volume by $VOL_INCREMENT%.";
+ echo " vol down # Decreases the volume by $VOL_INCREMENT%.";
echo " vol [amount] # Sets the volume to an amount between 0 and 100.";
echo " vol # Shows the current Spotify volume.";
- return 1
+ return 1;
fi
osascript -e "tell application \"Spotify\" to set sound volume to $newvol";
@@ -468,10 +470,9 @@ while [ $# -gt 0 ]; do
"help" )
showHelp;
break ;;
-
* )
showHelp;
- return 1 ;;
+ return 1;
esac
done