#!/bin/bash
v=181201 #sfs
#pgrep -fa m3u-gui
#[ "`pgrep -f m3u-gui |wc -l`" = 1 ] || exit
[ "`pgrep -f "yad --title Проигрыватель плейлиста.m3u"`" ] && 
    ntf -e "Проигрыватель плейлиста" "уже открыт" &&     exit
[ "$2" ] && export rad=1 && shift 
f="$1"
#[ "$f" ] || f=/home/live/Music/radio.m3u
[ ! "`echo "$f"|egrep '.m3u$|.m3u8$'`" ] && f="`ntf -f "*.m3u|*.m3u8" "Выберите плейлист" "/home/live/Music - интернет радио
/home/live/TV - интернет ТВ
"`" 
[ ! "`echo "$f"|egrep '.m3u$|.m3u8$'`" ] && echo "Usage: $0 playlist.m3u" && exit 1
#ntf "-$f-" ;exit

UTF(){
#cp "$f" "$f.bak"
if [ "`file -L "$f" |grep UTF-8`" ];then
m0="`sed 's/\r$//; /^$/d' "$f"`"
 #>"$f" #|tail -n+2 |tr "\n" "," |sed 's/,#/\n/g' |tr "," "\n" |sed 's/&/&amp;/g' 
#m="`echo "$f" |tail -n+2 |sed '/^$/d' |tr "\n" "," |sed 's/,#/\n/g' |tr "," "\n" |sed 's/&/&amp;/g' `"
else
m0="`iconv -f CP1251 -t UTF-8 "$f" |sed 's/\r$//; /^$/d'`"
# > "$f" #|tail -n+2 |tr "\n" "," |sed 's/,#/\n/g' |tr "," "\n" |sed 's/&/&amp;/g'
fi
}
#UTF ; m="`tail -n+2 "$f" |tr "\n" "," |sed 's/,#/\n/g' |tr "," "\n" |sed 's/&/&amp;/g'`"
UTF ; m="`echo "$m0" | sed '1d; s/^#[^,]*,/123\n/; s/&/&amp;/g'`"

if 	[ "$rad" ]; then p="MADPLAY (только аудио)"; p1=mad
elif	[ "`which mpv`" ];then p=MPV ; p1=mpv ; sudo echo "$f" > "/tmp/mpv.list"
elif	[ "`which gnome-mpv`" ];then p=MPV ; p1=mpv ; sudo echo "$f" > "/tmp/mpv.list"
elif	[ "`which mplayer`" ];then  p=MPLAYER ; p1=mpl 
else 	p="MADPLAY (только аудио)"
fi

m2="Проигрыватель плейлиста.m3u"
m3=" <u>Лист:</u> $f 
 <u>Плеер:</u> $p ; Запуск двойным нажатием мыши"
x=410 ;y=520
img=gtk-index #ent
FIFO="/tmp/mpv.fifo" ; export FIFO
CFG(){
c="/home/`sfsusr`/.config/m3u-gui.conf"
#export gd="--geometry=`cat "$c"`"
export gd="`cat "$c"`"
[ "$gd" ] || gd=40 #"--geometry=800"
}
CFG
MPV(){ 
echo ==$gd #;exit
#mpvgui "$@" &
#return
pidof mpv && return
[[ -p "$FIFO" ]] && rm "$FIFO" ; mkfifo "$FIFO" && sudo chmod 666 $FIFO
#mpv --profile=pseudo-gui --input-file="$FIFO" --hwdec=auto --geometry=+100%:+0% "$@" &
CFG
mpv --profile=pseudo-gui --input-file="$FIFO" --hwdec=auto --geometry=$gd% "$@" &
#mpv --profile=pseudo-gui --input-file="$FIFO" --hwdec=auto $gd "$@" &
#--msg-level=all=info --msg-level=all=warn --log-file=/tmp/mpv.log
} ; export -f MPV

dclick(){
u="`echo "$3" |sed 's/&amp;/&/g'`" 
echo "\"$2\" \"$u\"" > "/home/`sfsusr`/.config/.mpvfile"    
#ntf -i "-$u-" & 

if [ "`which mpv`" ];then
    MPV 
    pgrep -f /usr/local/bin/mpvgui || mpvgui &
    #ntf "$u " &
    if [ ! "`echo "$u" |grep "&"`" ];then
	#ntf "loadf $u " &
	echo "loadfile \"$u\"" >$FIFO 
    else
	killall mpv && sleep 1 && MPV "$u" &
    fi
    #echo loadfile $u >$FIFO
    #echo "loadfile "$u"" >$FIFO
#elif [ "`which mplayer`" ] || [ ! "$rad" ] ; then 
#elif [ "echo "`which mplayer`$rad" |egrep 'mplayer$'" ] ; then 
elif [ "`which gnome-mpv`" ]  ; then 
    gnome-mpv "$@" &
elif [ "`which mplayer`" ]  ; then 
    #ntf " $rad"
    if [ ! "$rad" ] ;then
        CFG ; killall mplayer ; mplayer -xy 0,$gd -geometry 100%:0% -zoom "$u" &
    #killall mate-mplayer ; mate-mplayer "$u" &
    else sudo pkill -f 'wget -c -q -O - |madplay -q -' ; wget -c -q -O - "$u" 2>/dev/null | madplay -q - &
    fi
else
    #[ "$rad" ];then
    if [ ! "`echo "$u" |egrep '^http|.mp3$'`" ];then
	ntf -e "MADPLAY не может проиграть" "$u 
Подключите модуль <b>MPV</b>" &
	return
    fi
    sudo pkill -f 'wget -c -q -O - |madplay -q -' ; wget -c -q -O - "$u" 2>/dev/null | madplay -q - &
fi
} ;export -f dclick

#echo "$pp"
#sel="$(echo "$m"|sed 's/|/\n/g' |sed 's/=/\n/g' |yad   --title "$m2" --list --text \
#[ "$p" = "MADPLAY (только аудио)" ] || export proc=XX #"        --button=\"$gd%\"!screen_resolution!\"Размер окна $p по горизонтале\":5 "
echo "$m"|yad   --title "$m2 v.$v" --list --text \
    "<span size='large'><b>$m2</b></span>
<i>$m3</i>"  \
	--regex-search \
	--Xundecorated \
	--Xcenter \
	--mouse \
	--Xseparator= \
	--Xitem-separator= \
	--height=$x --width=$y \
	--no-headers \
	--search-column=2 \
	--image-on-top --image="$img" \
	--window-icon="$img" \
	--hide-column=1 \
	--Xprint-column=2 \
	--column="1" \
	--column="2" \
	--column="3" \
	--dclick-action='bash -c "dclick %s"' \
        --button=""!gtk-open!"Открыть другой плейлист":2 \
        --button="$gd%"!screen_resolution!"Размер окна $p по горизонтале":5 \
        --button="Инфо."!info!"Что сейчас проигрывается":4 \
	--button=""!gtk-edit!"Редактировать плейлист":3 \
	--button=gtk-quit:0 

y="$?"
echo --$y
[ "$y" = "5" ] && (m3u-gui-set m3u-gui "$f" & ) && exit
[ "$y" = "2" ] && $0 &
if [ "$y" = "3" ];then 
    #f1=${f%%.*} ;  f2=${f##*.}
    d="`date +%y%m%d`"
    f3="${f%%.*}-`date +%y%m%d`.${f##*.}"
    #f3="${f/-[0-9][0-9][0-9][0-9][0-9][0-9].m3u/-`date +%y%m%d`.m3u}"
    #printf "===$f \n-- $f2 \n-- $f3\n"
    #[ "$f2" = "$f3" ] || f3="$f2"
    #f3="`echo $f3|sed 's/-'$d'-'$d'\.\([^\.]\+\)$/-'$d'\.\1/'`"
    f3="`echo $f3|sed 's/-[0-9][0-9][0-9][0-9][0-9][0-9]-'$d'\.\([^\.]\+\)$/-'$d'\.\1/'`"
    echo "$m0" > "$f3" && leafpad "$f3" && $0 "$f3" & #|| $0 "$f" &
    exit
fi

if [ "$y" = "4" ];then
    ntf -i "$(cat "/home/`sfsusr`/.config/.mpvfile" || echo "m3u-gui ничего не проигрывает") " &
    $0 "$f" &
    exit
fi

[ "`which mpv`" ] || sudo pkill -f "mplayer -xy 0"
[ "`which mpv`" ] || sudo pkill -f 'wget -c -q -O - |madplay -q -'
sudo rm "/home/`sfsusr`/.config/.mpvfile"
#killall wget madplay