#!/bin/bash
v=210125 #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 
export 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' |sed 's/^$/noname/'`"
#echo "$m0==\n=$m" ;exit

M1(){
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 mate-mplayer`" ];then  p=MATE-MPLAYER ; p1=mpl 
elif	[ "`which mplayer`" ];then  p=MPLAYER ; p1=mpl 
else 	p="MADPLAY (только аудио)"
fi
}
p=MPV
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" ]] && sudo rm "$FIFO"  
mkfifo "$FIFO" ; sudo chmod 666 $FIFO
#mpv --profile=pseudo-gui --input-file="$FIFO" --hwdec=auto --geometry=+100%:+0% "$@" &
CFG
[ "`uname -m`" = aarch64 ] && hw=no || hw=auto
[ "`uname -m`" = arm64 ] && hw=no || hw=auto
#ntf -i " $f" &
[ "$f" = peertv.m3u ] && ptv='--user-agent="Dalvik/2.1.0 (Linux; U; Android 6.0.1;)" --referrer="http://peers.tv"'
#mpv --profile=pseudo-gui --input-file="$FIFO" --hwdec=$hw $ptv --geometry=$gd% "$@" &
mpv --profile=pseudo-gui --input-ipc-server="$FIFO" --hwdec=$hw $ptv --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 mpvX`" ];then
    MPV 
#    pgrep -f /usr/local/bin/mpvgui || mpvgui &
#    pgrep -f mpvgui || mpvgui &
    #ntf "$u " &
    if [ ! "`echo "$u" |grep "&"`" ];then
	#ntf "loadf $u " &
#	echo "loadfile \"$u\"" >$FIFO 
	echo "loadfile \"$u\"" | socat - $FIFO &> /dev/null 
    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 mpv`" ]  ; then 
    sudo killall mpv #;sleep 0.5
#    mpv --profile=pseudo-gui  --geometry=$gd% "$u" &
    mpv   --geometry=$gd% "$u" &
elif [ "`which celluloid`" ]  ; then 
    celluloid  "$u" &
elif [ "`which gnome-mpv`" ]  ; then 
    gnome-mpv "$u" &
elif [ "`which mate-mplayer`" ]  ; then 
    r="`xrandr -q | awk '/\*/ {print $1}'`"
    w="`echo "$r" |awk -Fx '{print int($1/100*'$gd')}'`"
    h="`echo "$r" |awk -Fx '{print int($2/100*'$gd')}'`"
    sudo killall -9 mate-mplayer
    mate-mplayer "$u" -w $w -h $h &
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" |grep -E '^([^#]|#EXTINF:)' |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--$f 
[ "$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