#!/bin/bash
CONF="$HOME/.config/clickradio"
FDIR="$HOME/.config/clickradio/favs"
PLAYR="/usr/bin/mpv"
EICON='/usr/share/click-radio/icons/error.svg'
CONF="$HOME/.config/clickradio"
FDIR="$HOME/.config/clickradio/favs"
USER=$(who |sed 's/ .*//'|head -n1)

if [ ! -d $FDIR ]; then
mkdir -p $FDIR
fi

favlist(){
while read data; do
echo "$data" | sed 's/&/&amp;/g'
done | tee >(lisT)
}
function lisT(){
SELECT=$(yad \
--title="Click Radio" \
--window-icon=/usr/share/click-radio/icons/click-radio.png \
--width=550 --height=375 --center --on-top \
--list --column="Streaming Favorites Menu" --grid-lines=hor --text="<span font_desc='Sans Bold Italic 10' foreground='#BE7F00'>Double Click To Play Menu Items</span>" \
--button="Remove"!/usr/share/click-radio/icons/stop.svg:3 \
--button="Add Personal"!/usr/share/click-radio/icons/playlist.svg:2 \
--button=Cancel!/usr/share/click-radio/icons/cancel.svg:"/usr/bin/click-radio")
if [ $? = 3 ]; then
$(yad --width=475 --height=100 --center --fixed \
--text="\nNo favorite file was removed from previous list.\nYou must select the file again to confirm removal.\n" \
--window-icon=/usr/share/click-radio/icons/click-radio.png \
--image=/usr/share/click-radio/icons/click-radio.png \
--title='Favorites' \
--button="OK"!/usr/share/click-radio/icons/ok.svg)
dlist(){
while read data; do
echo "$data" | sed 's/&/&amp;/g'
done | tee >(lisT)
}
function lisT(){
SELECT=$(yad \
--title="Click Radio" \
--window-icon=/usr/share/click-radio/icons/click-radio.png \
--width=550 --height=375 --center --on-top \
--list --column="Remove Favorite Item" --grid-lines=hor --text="<span font_desc='Sans Bold Italic 10' foreground='#BE7F00'>Confirming Removal Favorite Item</span>" \
--button="Remove"!/usr/share/click-radio/icons/cancel.svg:0 \
--button="Cancel"!/usr/share/click-radio/icons/ok.svg:1)
if [ $? = "1" ]; then
$CONF/favlist-info &
/usr/bin/click-radio
fi
if ! grep -q '[^[:space:]]' "$CONF/.tmp"; then
  $(yad --width=425 --height=100 --center --fixed \
--text="\nNo file was selected from the favorites list!\nSelect file and remove from the list\n" \
--window-icon=$EICON \
--image=$EICON \
--title='Error' \
--button="Cancel"!/usr/share/click-radio/icons/cancel.svg:1 \
--button="Ok"!/usr/share/click-radio/icons/ok.svg:0)
if [ $? = 1 ]; then
$CONF/favlist-info &
/usr/bin/click-radio
else
$CONF/favlist-info &
/usr/bin/click-radio
fi
 fi
echo "$SELECT"|sed 's/[|].*//' > "$CONF"/.delete
sleep 0.50
DEL=$(cat $CONF/.delete)
if [ -s $CONF/.delete ]; then
/usr/share/click-radio/menu/app/fav_remove &
fi &
rm -f "$FDIR/$DEL"
$CONF/favlist-info
/usr/share/click-radio/menu/app/kill &
pkill -f favlist-info &
/usr/bin/click-radio
exit 0
}
find "$FDIR" -type f \( -name "*.pls" -o -name "*.m3u" \)| sort |awk -F'/' '{print $NF}'| dlist | awk 'NR % 3 == 0;fflush()'  > /dev/null 2>&1
 fi |
if [ $? = 2 ]; then
echo "$SELECT"|sed 's/[|].*//' > "$CONF"/.select
if ! grep -q '[^[:space:]]' "$CONF/.select"; then
rm -f "$CONF/.select"
fi
FILENAME=$(yad \
--title="Click Radio" \
--window-icon=/usr/share/click-radio/icons/click-radio.png \
--on-top --center --title "Select (pls,m3u) audio files to add to favorites stream" \
--file-selection --filename=/home/"$USER"/Downloads --file-filter='Audio (pls, m3u) | *.pls  *.m3u' \
--width=700 --height=450 --center \
--button="Cancel"!/usr/share/click-radio/icons/cancel.svg:"/usr/bin/click-radio" \
--button="Ok"!/usr/share/click-radio/icons/ok.svg:0)
if [ $? = 4 ]; then
/usr/bin/click-radio
else
ADD=$(echo "$FILENAME" | sed 's/[|].*//' | awk 'NR==1{print $0}')
cp -f "$ADD" "$FDIR"
sleep 0.50
"$CONF"/favlist-info
fi
 fi
if [ $? = 0 ]; then
echo "$SELECT" | sed 's/[|].*//'| sed 's/amp;/&/' | sed 's/amp;//g'| sed "s/[.].*//" | awk 'NR==1{print $0}' > $CONF/sfplay
echo "$SELECT" | sed 's/[|].*//'| sed 's/amp;/&/' | sed 's/amp;//g' | awk 'NR==1{print $0}' > $CONF/.tmp
/usr/share/click-radio/menu/app/kill &
play=$(cat $CONF/.tmp | awk 'NR==1{print $0}')
sleep 0.50
$PLAYR --audio-display=no --loop "$FDIR"/"$play" > $CONF/.tmp &
python3 /usr/share/click-radio/menu/wayland/submenu/"Click Radio" 2>&1 &
/usr/share/click-radio/menu/app/PLS
fi
}
if ! test -d "$FDIR" 2>/dev/null; then
$(yad --width=450 --height=100 --center --fixed \
--text="\nNo streaming files for the streaming menu!\nFiles are missing in config folder." \
--window-icon=$EICON \
--image=$EICON \
--title='Error' \
--button="Cancel"!/usr/share/click-radio/icons/cancel.svg:1)
exit 0
else
find "$FDIR" -type f \( -name "*.pls" -o -name "*.m3u" \)| sort |awk -F'/' '{print $NF}'| favlist | awk 'NR % 3 == 0;fflush()'  > /dev/null 2>&1
fi
exit 0

