Files
illogical-impulse/lineage/.config/eww/scripts/music
T
2024-02-22 15:35:06 +07:00

226 lines
9.7 KiB
Plaintext
Executable File

#!/usr/bin/env bash
get_status() {
s=$1
if [ "$s" = "Playing" ]; then
echo ""
else
echo ""
fi
}
get_length_sec() {
len=$1
if [ -z "$len" ]; then
echo 0
else
bc <<< "$len / 1000000"
fi
}
get_length_time() {
len=$1
if [ -n "$len" ]; then
len=$(bc <<< "$len / 1000000 + 1")
date -d@"$len" +%M:%S
else
echo ""
fi
}
get_position() {
pos=$1
len=$2
if [ -n "$pos" ]; then
bc -l <<< "$pos / $len * 100"
else
echo 0
fi
}
get_position_time() {
pos=$1
if [ -n "$pos" ]; then
date -d@"$(bc <<< "$pos / 1000000")" +%M:%S
else
echo ""
fi
}
get_cover() {
# COVER_URL=$1
mkdir -p "eww_covers"
cd "eww_covers" || exit
IMGPATH="cover_art"
playerctl -F metadata mpris:artUrl 2>/dev/null | while read -r COVER_URL; do
if [[ "$COVER_URL" = https* ]]; then
# if [ ! -e "eww_covers/$(basename "$COVER_URL")" ]; then
# wget -N "$COVER_URL" -o /dev/null
# # wget -N "$COVER_URL" -o "$IMGPATH"
# fi
# ln -s "$(basename "$COVER_URL")" "$IMGPATH"
# echo "$IMGPATH"
coverurl="$(playerctl metadata mpris:artUrl)"
wget -O "$IMGPATH" "$coverurl" -q
coverpath="$IMGPATH"
wal -c
themejson=$(wal -i "$IMGPATH" -n -t -e -s | grep -e 'color1' | sed 's/'\''/"/g')
printf '{"image": "eww_covers/'"$coverpath"'", "color": '"$themejson"'}\n'
# printf '{"image": "eww_covers/'"$coverpath"'"}\n'
# echo "$themejson" | gojq '.colors'
# echo 'COLORS: '
# notify-send 'eww' 'i found a url!'
cd ..
# notify-send 'eww color changer' "here i go in the dir that has $(ls | tr '\n' ' ')"
echo '//Auto generated color theme for image at:' "$coverurl" > './tmp/_colorscheme.colorpallete'
printf '$colorbg: ' >> './tmp/_colorscheme.colorpallete'
echo "$themejson" | gojq '.colors.color0' | sed 's/"//g' | tr '\n' ';' >> './tmp/_colorscheme.colorpallete'
echo '' >> './tmp/_colorscheme.colorpallete'
printf '$colortext: ' >> './tmp/_colorscheme.colorpallete'
printf "$themejson" | gojq '.colors.color4' | sed 's/"//g' | tr '\n' ';' >> './tmp/_colorscheme.colorpallete'
echo '' >> './tmp/_colorscheme.colorpallete'
printf '$color0: ' >> './tmp/_colorscheme.colorpallete'
printf "$themejson" | gojq '.colors.color1' | sed 's/"//g' | tr '\n' ';' >> './tmp/_colorscheme.colorpallete'
echo '' >> './tmp/_colorscheme.colorpallete'
printf '$color1: ' >> './tmp/_colorscheme.colorpallete'
printf "$themejson" | gojq '.colors.color2' | sed 's/"//g' | tr '\n' ';' >> './tmp/_colorscheme.colorpallete'
echo '' >> './tmp/_colorscheme.colorpallete'
printf '$color2: ' >> './tmp/_colorscheme.colorpallete'
printf "$themejson" | gojq '.colors.color3' | sed 's/"//g' | tr '\n' ';' >> './tmp/_colorscheme.colorpallete'
echo '' >> './tmp/_colorscheme.colorpallete'
printf '$color3: ' >> './tmp/_colorscheme.colorpallete'
printf "$themejson" | gojq '.colors.color4' | sed 's/"//g' | tr '\n' ';' >> './tmp/_colorscheme.colorpallete'
echo '' >> './tmp/_colorscheme.colorpallete'
printf '$color4: ' >> './tmp/_colorscheme.colorpallete'
printf "$themejson" | gojq '.colors.color5' | sed 's/"//g' | tr '\n' ';' >> './tmp/_colorscheme.colorpallete'
echo '' >> './tmp/_colorscheme.colorpallete'
printf '$color5: ' >> './tmp/_colorscheme.colorpallete'
printf "$themejson" | gojq '.colors.color6' | sed 's/"//g' | tr '\n' ';' >> './tmp/_colorscheme.colorpallete'
echo '' >> './tmp/_colorscheme.colorpallete'
printf '$color6: ' >> './tmp/_colorscheme.colorpallete'
printf "$themejson" | gojq '.colors.color7' | sed 's/"//g' | tr '\n' ';' >> './tmp/_colorscheme.colorpallete'
echo '' >> './tmp/_colorscheme.colorpallete'
printf '$color7: ' >> './tmp/_colorscheme.colorpallete'
printf "$themejson" | gojq '.colors.color4' | sed 's/"//g' | tr '\n' ';' >> './tmp/_colorscheme.colorpallete'
echo '' >> './tmp/_colorscheme.colorpallete'
# printf '$colormusic: ' >> './tmp/_colorscheme.colorpallete'
# printf "$themejson" | gojq '.colors.color4' | sed 's/"//g' | tr '\n' ';' >> './tmp/_colorscheme.colorpallete'
# echo '' >> './tmp/_colorscheme.colorpallete'
# Border gradient: color6 -> color5 -> color7
gradient1=$(echo -n "$themejson" | gojq '.colors.color6' | sed 's/"//g')
gradient2=$(echo -n "$themejson" | gojq '.colors.color5' | sed 's/"//g')
gradient3=$(echo -n "$themejson" | gojq '.colors.color7' | sed 's/"//g')
echo '# Auto generated color theme for image at:' "$coverurl" > './tmp/colors_generated.conf'
echo 'general {' >> './tmp/colors_generated.conf'
echo ' col.active_border = rgba('"${gradient1#*#}FF"') rgba('"${gradient2#*#}FF"') rgba('"${gradient3#*#}FF"') 45deg' >> './tmp/colors_generated.conf'
echo ' col.inactive_border = rgba('"${gradient1#*#}66"')' >> './tmp/colors_generated.conf'
echo '}' >> './tmp/colors_generated.conf'
# cp './tmp/_colorscheme.colorpallete' './css/_colorscheme.scss'
cd "eww_covers" || exit
# notify-send 'eww color changer' 'okie dokie'
elif [ "$COVER_URL" = "" ]; then
echo '{"image": "", "color": "$bg"}'
else
COVER_URL="${COVER_URL:7}"
cp "$COVER_URL" "$IMGPATH"
coverpath="$IMGPATH"
wal -c
themejson=$(wal -i "$IMGPATH" -n -t -e -s | grep -e 'color1' | sed 's/'\''/"/g')
printf '{"image": "eww_covers/'"$coverpath"'", "color": '"$themejson"'}\n'
# echo "$themejson"
printf '{"image": "'"$COVER_URL"'", "color": '"$themejson"'}\n'
# printf '{"image": "eww_covers/'"$coverpath"'"}\n'
# echo "$themejson" | gojq '.colors'
# echo 'COLORS: '
# notify-send 'eww' 'i found a file!'
cd ..
# notify-send 'eww color changer' "here i go in the dir that has $(ls | tr '\n' ' ')"
echo '//Auto generated color theme for image at:' "$coverurl" > './tmp/_colorscheme.colorpallete'
printf '$colorbg: ' >> './tmp/_colorscheme.colorpallete'
echo "$themejson" | gojq '.colors.color0' | sed 's/"//g' | tr '\n' ';' >> './tmp/_colorscheme.colorpallete'
echo '' >> './tmp/_colorscheme.colorpallete'
printf '$colortext: ' >> './tmp/_colorscheme.colorpallete'
printf "$themejson" | gojq '.colors.color4' | sed 's/"//g' | tr '\n' ';' >> './tmp/_colorscheme.colorpallete'
echo '' >> './tmp/_colorscheme.colorpallete'
printf '$color0: ' >> './tmp/_colorscheme.colorpallete'
printf "$themejson" | gojq '.colors.color1' | sed 's/"//g' | tr '\n' ';' >> './tmp/_colorscheme.colorpallete'
echo '' >> './tmp/_colorscheme.colorpallete'
printf '$color1: ' >> './tmp/_colorscheme.colorpallete'
printf "$themejson" | gojq '.colors.color2' | sed 's/"//g' | tr '\n' ';' >> './tmp/_colorscheme.colorpallete'
echo '' >> './tmp/_colorscheme.colorpallete'
printf '$color2: ' >> './tmp/_colorscheme.colorpallete'
printf "$themejson" | gojq '.colors.color3' | sed 's/"//g' | tr '\n' ';' >> './tmp/_colorscheme.colorpallete'
echo '' >> './tmp/_colorscheme.colorpallete'
printf '$color3: ' >> './tmp/_colorscheme.colorpallete'
printf "$themejson" | gojq '.colors.color4' | sed 's/"//g' | tr '\n' ';' >> './tmp/_colorscheme.colorpallete'
echo '' >> './tmp/_colorscheme.colorpallete'
printf '$color4: ' >> './tmp/_colorscheme.colorpallete'
printf "$themejson" | gojq '.colors.color5' | sed 's/"//g' | tr '\n' ';' >> './tmp/_colorscheme.colorpallete'
echo '' >> './tmp/_colorscheme.colorpallete'
printf '$color5: ' >> './tmp/_colorscheme.colorpallete'
printf "$themejson" | gojq '.colors.color6' | sed 's/"//g' | tr '\n' ';' >> './tmp/_colorscheme.colorpallete'
echo '' >> './tmp/_colorscheme.colorpallete'
printf '$color6: ' >> './tmp/_colorscheme.colorpallete'
printf "$themejson" | gojq '.colors.color7' | sed 's/"//g' | tr '\n' ';' >> './tmp/_colorscheme.colorpallete'
echo '' >> './tmp/_colorscheme.colorpallete'
printf '$color7: ' >> './tmp/_colorscheme.colorpallete'
printf "$themejson" | gojq '.colors.color4' | sed 's/"//g' | tr '\n' ';' >> './tmp/_colorscheme.colorpallete'
echo '' >> './tmp/_colorscheme.colorpallete'
# printf '$colormusic: ' >> './tmp/_colorscheme.colorpallete'
# printf "$themejson" | gojq '.colors.color4' | sed 's/"//g' | tr '\n' ';' >> './tmp/_colorscheme.colorpallete'
# echo '' >> './tmp/_colorscheme.colorpallete'
# Border gradient: color6 -> color5 -> color7
gradient1=$(echo -n "$themejson" | gojq '.colors.color6' | sed 's/"//g')
gradient2=$(echo -n "$themejson" | gojq '.colors.color5' | sed 's/"//g')
gradient3=$(echo -n "$themejson" | gojq '.colors.color7' | sed 's/"//g')
echo '# Auto generated color theme for image at:' "$coverurl" > './tmp/colors_generated.conf'
echo 'general {' >> './tmp/colors_generated.conf'
echo ' col.active_border = rgba('"${gradient1#*#}FF"') rgba('"${gradient2#*#}FF"') rgba('"${gradient3#*#}FF"') 45deg' >> './tmp/colors_generated.conf'
echo ' col.inactive_border = rgba('"${gradient1#*#}66"')' >> './tmp/colors_generated.conf'
echo '}' >> './tmp/colors_generated.conf'
# cp './tmp/_colorscheme.colorpallete' './css/_colorscheme.scss'
cd "eww_covers" || exit
fi
done
}
# SANITIZE FIX
sanitize() {
echo "$1" | sed 's/"/\"/g'
}
if [ "$1" = "cover" ]; then
get_cover
else
echo '{"artist": "", "title": "", "status": "", "position": "", "position_time": "", "length": ""}'
playerctl -F metadata -f '{{title}}\{{artist}}\{{status}}\{{position}}\' 2>/dev/null | while IFS="$(printf '\\')" read -r title artist status position; do
len=$(playerctl metadata mpris:length)
gojq --null-input -r -c \
--arg artist "$(sanitize "$artist")" \
--arg title "$(sanitize "$title")" \
--arg status "$(get_status "$status")" \
--arg pos "$(get_position "$position" "$len")" \
--arg pos_time "$(get_position_time "$position")" \
--arg length "$(get_length_time "$len")" \
'{"artist": $artist, "title": $title, "status": $status, "position": $pos, "position_time": $pos_time, "length": $length}'
done
fi