闲着挂个队列播放的。。。

sh/bash/dash/ksh/zsh等Shell脚本
头像
qqttdh
帖子: 896
注册时间: 2007-07-20 22:15

Re: 闲着挂个队列播放的。。。

#16

帖子 qqttdh » 2008-11-08 22:27

xiooli 写了:试了下,不错的说哦,不过建议把几个脚本集成到一块,至少那几个控制的脚本集成到一起。

btw:你说的添加gnome-panel是什么意思?
我的做法是:
下一首, 暂停 关联到快捷键 (没做上一个的脚本)
所有控制脚本都添加到面板启动器,有时会懒得动键盘 :em03
这样就相当于整个桌面本身就是控制器。。。

。。。然后如果脱离面板,集成在一起的话,即使用zenity貌似也有些。。困难
需要自己编gtk程序。。。(还没学会 :em06

再更新下列表编辑 list_edit

代码: 全选

#!/bin/sh
if [ -s /dev/shm/mnum ];then
	read t < '/dev/shm/mnum'
else
	exit
fi

exec < /dev/shm/mqueue
i=1
while read line
do
a=`echo ${line##*\/}|sed 's/\ /\_/g'`

lab=TRUE

list="$list $lab $a"
i=$(($i + 1))
done

c="`zenity  --list --checklist --height=350  --width=300 --column "曲目" --column "曲名"  $list`"

if ! [ $c ];then exit;fi

if [ -e /dev/shm/mqueue_bak ];then 
rm /dev/shm/mqueue_bak
fi

exec < /dev/shm/mqueue
i=1
tip=0
while read line
do

st=`echo ${line##*\/}|sed 's/\ /\_/g;s/\[/\\\[/g;s/\]/\\\]/g'`
sc="`echo "$c"|grep -n "$st"|sed -n 1p|awk -F : '{print $1}'`"
if [ $sc ];then
song="`awk 'NR=='$i'' /dev/shm/mqueue`"
echo "$song" >> /dev/shm/mqueue_bak
fi

#check if the list changed
if ! [ $sc ];then tip=1;fi

i=$(($i + 1))

done

if [ -s /dev/shm/mqueue_bak ];then 
mv /dev/shm/mqueue_bak /dev/shm/mqueue
#bakup play list
if [ $tip = 1 ];then
cp /dev/shm/mqueue ~/.mqueue
cp /dev/shm/mnum ~/.mnum
fi
#echo quit > /dev/shm/mfifo
fi
头像
xiooli
帖子: 6956
注册时间: 2007-11-19 21:51
来自: 成都
联系:

Re: 闲着挂个队列播放的。。。

#17

帖子 xiooli » 2008-11-08 23:03

明白咯,呵呵,奉献几个图标好放panel上:
ps:用easystroke可以用鼠标手势来控制呢。
附件
gtk-media-rewind-rtl.png
gtk-media-rewind-rtl.png (1.03 KiB) 查看 2515 次
gtk-media-rewind-ltr.png
gtk-media-rewind-ltr.png (1 KiB) 查看 2515 次
gtk-media-play-ltr.png
gtk-media-play-ltr.png (701 Bytes) 查看 2515 次
gtk-media-pause.png
gtk-media-pause.png (430 Bytes) 查看 2516 次
头像
qqttdh
帖子: 896
注册时间: 2007-07-20 22:15

Re: 闲着挂个队列播放的。。。

#18

帖子 qqttdh » 2008-11-09 9:25

版本:0.6
(主体没多大变化,将队列循环变成可选了,默认循环)

代码: 全选

#!/bin/sh
list_out ()
{
while [ $# -gt 0 ]; do
        for i in $@; do
        	if [ `echo "$1"|grep -vicE '(.jpg)|(.srt)'` = 0 ];then break;fi
        	d="`pwd`"
        	if [ `grep -c "${d##*\/}/$1"  /dev/shm/mqueue` != 0 ];then break;fi
                echo "$d/$1" >> /dev/shm/mqueue
                break
        done
        shift
done
}

bakup_list ()
{
#bakup play list
if [ -s /dev/shm/mqueue ];then
   cp /dev/shm/mqueue ~/.mqueue
   cp /dev/shm/mnum ~/.mnum
elif [ -s ~/.mqueue ];then
   cp ~/.mqueue /dev/shm/mqueue
   cp ~/.mnum /dev/shm/mnum
fi
}
#################################################
#       PROGRAMME
if [ $# != 0 ];then
	#生成和添加播放队列
	if [ "`ps aux |grep ' mplayer '|grep -v grep|grep -c "/dev/shm/mfifo"`" = 0 ];then
		if [ -e /dev/shm/mqueue ];then rm /dev/shm/mqueue;fi
		list_out "$@"
	else
		list_out "$@"
		bakup_list
		exit
	fi
elif [ "`ps aux |grep ' mplayer '|grep -v grep|grep -c "/dev/shm/mfifo"`" != 0 ];then
	zenity  --info --text="队列已存在" &
	exit
fi

bakup_list

#排除异己:)
if [ "`ps aux |grep '/player'|grep -vcE '(grep)|(player_now)|(file:)'`" != 2 ];then
	kill -9 `ps aux |grep '/player'|grep -vE '(grep)|(player_now)|(file:)'|awk {'print $2'}|grep -v $$`
fi
#建立/清理 管道
if [ -e  /dev/shm/mfifo ];then
	if [ "`ps aux |grep ' mplayer '|grep -v grep|grep -c "/dev/shm/mfifo"`" != 0 ];then
	    echo quit > /dev/shm/mfifo
	    sleep 0.1
	    if [ "`ps aux |grep ' mplayer '|grep -v grep|grep -c "/dev/shm/mfifo"`" != 0 ];then
		 kill -9 `ps aux |grep ' mplayer '|grep -v grep|grep "/dev/shm/mfifo"|awk {'print $2'}`
	    fi
	fi
else
	mkfifo /dev/shm/mfifo
fi

sleep 0.5

i=1

if [ -e "$1" ];then
	echo $i > /dev/shm/mnum
	echo 0 > /dev/shm/mstat
	mplayer "$1" -input file=/dev/shm/mfifo
	echo 3 > /dev/shm/mstat
	i=2
elif [ -s /dev/shm/mnum ];then
	read i < '/dev/shm/mnum'
fi
#################################################
# MAIN      PROGRAMME
MAX=0
s=0
while [ ture ]; do
	#error manage
	if ! [ -e /dev/shm/mqueue ];then exit;fi;
	if ! [ -s /dev/shm/mqueue ];then rm /dev/shm/mqueue;exit;fi;
	##**##check1
	if [ -s /dev/shm/mnum ];then
		read t < '/dev/shm/mnum'
		ts=$(($t + 1))
		if [ $ts != $i ];then i=$t;fi;
	fi
	#check2
	MAX=`grep -c "" /dev/shm/mqueue`
	if [ $i -gt $MAX ];then
		#是否循环列表 默认循环
		if [ -s /dev/shm/mlol ];then
			read lo < '/dev/shm/mlol'
			if [ $lo = 0 ];then
				exit
			else
				i=1;
			fi
		else
			i=1;
		fi

	fi;
	#
	sone="`awk 'NR=='$i'' /dev/shm/mqueue`"
	echo $i > /dev/shm/mnum
	#echo "$sone"
	echo 0 > /dev/shm/mstat
	mplayer "$sone" -input file=/dev/shm/mfifo;
	echo 3 > /dev/shm/mstat
	#间隔时间
	sleep 5.5
	#check3
	if [ -s /dev/shm/mloop ];then
		read s < '/dev/shm/mloop'
	fi
	if [ $s = 0 ];then i=$(($i + 1));fi
done

exit
linee
帖子: 86
注册时间: 2007-08-09 14:29

Re: 闲着挂个队列播放的。。。

#19

帖子 linee » 2008-11-26 15:38

再增加多个列表就完美了。
头像
qqttdh
帖子: 896
注册时间: 2007-07-20 22:15

Re: 闲着挂个队列播放的。。。

#20

帖子 qqttdh » 2008-11-26 22:48

linee 写了:再增加多个列表就完美了。
主脚本完成。。。

代码: 全选

#!/bin/sh
list_out ()
{
while [ $# -gt 0 ]; do
        for i in $@; do
        	if [ `echo "$1"|grep -vicE '(.jpg)|(.srt)'` = 0 ];then break;fi
        	d="`pwd`"
        	if [ `grep -c "${d##*\/}/$1"  ~/.mplayer/plist/$list_name` != 0 ];then break;fi
        	    if ! [ -e ~/.mplayer/plist ];then
			mkdir ~/.mplayer/plist
		    fi
                echo "$d/$1" >> ~/.mplayer/plist/$list_name
                break
        done
        shift
done
}

#################################################
#       PROGRAMME
if [ $# != 0 ];then
	#生成和添加播放队列
	if [ "`ps aux |grep ' mplayer '|grep -v grep|grep -c "/dev/shm/mfifo"`" = 0 ];then
		#if [ -e ~/.mplayer/plist/$list_name ];then rm ~/.mplayer/plist/$list_name;fi
		list_name=`zenity --entry --text="列表名称"`
		echo $list_name > ~/.mplayer/list_name
		list_out "$@"
	else
		read list_name < ~/.mplayer/list_name
		list_out "$@"
		exit
	fi
elif [ "`ps aux |grep ' mplayer '|grep -v grep|grep -c "/dev/shm/mfifo"`" != 0 ];then
	zenity  --info --text="队列已存在" &
	exit
else
	read list_name < ~/.mplayer/list_name
fi

if [ -s ~/.mplayer/mnum ];then
cp ~/.mplayer/mnum /dev/shm/mnum
fi

#排除异己:)
if [ "`ps aux |grep '/player'|grep -vcE '(grep)|(player_now)|(file:)'`" != 2 ];then
	kill -9 `ps aux |grep '/player'|grep -vE '(grep)|(player_now)|(file:)'|awk {'print $2'}|grep -v $$`
fi
#建立/清理 管道
if [ -e  /dev/shm/mfifo ];then
	if [ "`ps aux |grep ' mplayer '|grep -v grep|grep -c "/dev/shm/mfifo"`" != 0 ];then
	    echo quit > /dev/shm/mfifo
	    sleep 0.1
	    if [ "`ps aux |grep ' mplayer '|grep -v grep|grep -c "/dev/shm/mfifo"`" != 0 ];then
		 kill -9 `ps aux |grep ' mplayer '|grep -v grep|grep "/dev/shm/mfifo"|awk {'print $2'}`
	    fi
	fi
else
	mkfifo /dev/shm/mfifo
fi

sleep 0.5

i=1

if [ -e "$1" ];then
	echo $i > /dev/shm/mnum
	echo 0 > /dev/shm/mstat
	mplayer "$1" -input file=/dev/shm/mfifo
	echo 3 > /dev/shm/mstat
	i=2
elif [ -s /dev/shm/mnum ];then
	read i < '/dev/shm/mnum'
fi
#################################################
# MAIN      PROGRAMME
MAX=0
s=0
while [ ture ]; do
	#error manage
	if ! [ -e ~/.mplayer/plist/$list_name ];then zenity  --info --text="列表为空" & exit;fi;
	if ! [ -s ~/.mplayer/plist/$list_name ];then zenity  --info --text="列表为空" & exit;fi;
	##**##check1
	if [ -s /dev/shm/mnum ];then
		read t < '/dev/shm/mnum'
		ts=$(($t + 1))
		if [ $ts != $i ];then i=$t;fi;
	fi
	#check2
	MAX=`grep -c "" ~/.mplayer/plist/$list_name`
	if [ $i -gt $MAX ];then
		#是否循环列表 默认循环
		if [ -s /dev/shm/mlol ];then
			read lo < '/dev/shm/mlol'
			if [ $lo = 0 ];then
				exit
			else
				i=1;
			fi
		else
			i=1;
		fi

	fi;
	#
	sone="`awk 'NR=='$i'' ~/.mplayer/plist/$list_name`"
	echo $i > /dev/shm/mnum
	echo $i > ~/.mplayer/mnum
	#echo "$sone"
	echo 0 > /dev/shm/mstat
	mplayer "$sone" -input file=/dev/shm/mfifo;
	stat=$?
	echo 3 > /dev/shm/mstat
	#间隔时间
	if [ $stat = 0 ];then	
	sleep 5.5
	fi
	#check3
	if [ -s /dev/shm/mloop ];then
		read s < '/dev/shm/mloop'
	fi
	if [ $s = 0 ];then i=$(($i + 1));fi
done

exit
发言并不是一种义务,最喜欢的回答是不知道
两个手指点击,居然默认就是鼠标中键功能
右上角是中键,右下角是左键
Grub真小,才512B
零度电子书(Unix&Linux)
http://books.05sun.com/downlist/s_62_3.html
win7恢复能力不如xp,ubuntu相对较稳定。。。待机恢复起来似乎。。。
linee
帖子: 86
注册时间: 2007-08-09 14:29

Re: 闲着挂个队列播放的。。。

#21

帖子 linee » 2008-11-27 0:56

qqttdh 写了:
linee 写了:再增加多个列表就完美了。
主脚本完成。。。
期待其它配套散件。
头像
qqttdh
帖子: 896
注册时间: 2007-07-20 22:15

Re: 闲着挂个队列播放的。。。

#22

帖子 qqttdh » 2008-11-27 13:18

linee 写了:
qqttdh 写了:
linee 写了:再增加多个列表就完美了。
主脚本完成。。。
期待其它配套散件。
验证完毕。。。已可以使用。。。
mplayer_queue_player.09.tar.bz2
(3.19 KiB) 已下载 110 次
注:主脚本作了适当修改

代码: 全选

6,11c6,11
<         	if [ `echo "$1"|grep -vicE '(.jpg)|(.srt)'` = 0 ];then break;fi
<         	d="`pwd`"
<         	if [ `grep -c "${d##*\/}/$1"  ~/.mplayer/plist/$list_name` != 0 ];then break;fi
<         	    if ! [ -e ~/.mplayer/plist ];then
< 			mkdir ~/.mplayer/plist
< 		    fi
---
>            if [ `echo "$1"|grep -vicE '(.jpg)|(.srt)'` = 0 ];then break;fi
>            d="`pwd`"
>            if [ `grep -c "${d##*\/}/$1"  ~/.mplayer/plist/$list_name` != 0 ];then break;fi
>                if ! [ -e ~/.mplayer/plist ];then
>          mkdir ~/.mplayer/plist
>           fi
22,32c22,32
< 	#生成和添加播放队列
< 	if [ "`ps aux |grep ' mplayer '|grep -v grep|grep -c "/dev/shm/mfifo"`" = 0 ];then
< 		#if [ -e ~/.mplayer/plist/$list_name ];then rm ~/.mplayer/plist/$list_name;fi
< 		list_name=`zenity --entry --text="列表名称"`
< 		echo $list_name > ~/.mplayer/list_name
< 		list_out "$@"
< 	else
< 		read list_name < ~/.mplayer/list_name
< 		list_out "$@"
< 		exit
< 	fi
---
>    #生成和添加播放队列
>    if [ "`ps aux |grep ' mplayer '|grep -v grep|grep -c "/dev/shm/mfifo"`" = 0 ];then
>       #if [ -e ~/.mplayer/plist/$list_name ];then rm ~/.mplayer/plist/$list_name;fi
>       list_name=`zenity --entry --text="列表名称"`
>       echo $list_name > ~/.mplayer/list_name
>       list_out "$@"
>    else
>       read list_name < ~/.mplayer/list_name
>       list_out "$@"
>       exit
>    fi
34,35c34,35
< 	zenity  --info --text="队列已存在" &
< 	exit
---
>    zenity  --info --text="队列已存在" &
>    exit
37,50c37
< 	if [ -e ~/.mplayer/list_name ];then	
< 		read list_name < ~/.mplayer/list_name
< 	fi
< fi
< 
< 
< if ! [ $list_name ];then
< 	list_name="`ls ~/.mplayer/plist -1|sed 1q`"
< 	echo $list_name > ~/.mplayer/list_name
< 	if ! [ $list_name ];then
< 	list_name=default
< 	#zenity  --info --text="无列表" &
< 	exit
< 	fi
---
>    read list_name < ~/.mplayer/list_name
58,59c45,46
< if [ "`ps aux |grep -E '(/player)|(/pause)'|grep -vcE '(grep)|(player_now)|(file:)'`" != 2 ];then
< 	kill -9 `ps aux |grep '/player'|grep -vE '(grep)|(player_now)|(file:)'|awk {'print $2'}|grep -v $$`
---
> if [ "`ps aux |grep '/player'|grep -vcE '(grep)|(player_now)|(file:)'`" != 2 ];then
>    kill -9 `ps aux |grep '/player'|grep -vE '(grep)|(player_now)|(file:)'|awk {'print $2'}|grep -v $$`
63,69c50,56
< 	if [ "`ps aux |grep ' mplayer '|grep -v grep|grep -c "/dev/shm/mfifo"`" != 0 ];then
< 	    echo quit > /dev/shm/mfifo
< 	    sleep 0.1
< 	    if [ "`ps aux |grep ' mplayer '|grep -v grep|grep -c "/dev/shm/mfifo"`" != 0 ];then
< 		 kill -9 `ps aux |grep ' mplayer '|grep -v grep|grep "/dev/shm/mfifo"|awk {'print $2'}`
< 	    fi
< 	fi
---
>    if [ "`ps aux |grep ' mplayer '|grep -v grep|grep -c "/dev/shm/mfifo"`" != 0 ];then
>        echo quit > /dev/shm/mfifo
>        sleep 0.1
>        if [ "`ps aux |grep ' mplayer '|grep -v grep|grep -c "/dev/shm/mfifo"`" != 0 ];then
>        kill -9 `ps aux |grep ' mplayer '|grep -v grep|grep "/dev/shm/mfifo"|awk {'print $2'}`
>        fi
>    fi
71c58
< 	mkfifo /dev/shm/mfifo
---
>    mkfifo /dev/shm/mfifo
79,83c66,70
< 	echo $i > /dev/shm/mnum
< 	echo 0 > /dev/shm/mstat
< 	mplayer "$1" -input file=/dev/shm/mfifo
< 	echo 3 > /dev/shm/mstat
< 	i=2
---
>    echo $i > /dev/shm/mnum
>    echo 0 > /dev/shm/mstat
>    mplayer "$1" -input file=/dev/shm/mfifo
>    echo 3 > /dev/shm/mstat
>    i=2
85c72
< 	read i < '/dev/shm/mnum'
---
>    read i < '/dev/shm/mnum'
92,139c79,121
< 	#error manage
< 	#if ! [ -e ~/.mplayer/plist/$list_name ];then zenity  --info --text="列表为空" & exit;fi;
< 	if ! [ -s ~/.mplayer/plist/$list_name ];then zenity  --info --text="列表为空" & exit;fi;
< 	##**##check1
< 	if [ -s /dev/shm/mnum ];then
< 		read t < '/dev/shm/mnum'
< 		ts=$(($t + 1))
< 		if [ $ts != $i ];then i=$t;fi;
< 	fi
< 	#check2
< 	MAX=`grep -c "" ~/.mplayer/plist/$list_name`
< 	if [ $i -gt $MAX ];then
< 		#是否循环列表 默认循环
< 		if [ -s /dev/shm/mlol ];then
< 			read lo < '/dev/shm/mlol'
< 			if [ $lo = 0 ];then
< 				exit
< 			else
< 				i=1;
< 			fi
< 		else
< 			i=1;
< 		fi
< 
< 	fi;
< 	#
< 	sone="`awk 'NR=='$i'' ~/.mplayer/plist/$list_name`"
< 	echo $i > /dev/shm/mnum
< 	echo $i > ~/.mplayer/mnum
< 	#echo "$sone"
< 	echo 0 > /dev/shm/mstat
< 	mplayer "$sone" -input file=/dev/shm/mfifo;
< 	stat=$?
< 	echo 3 > /dev/shm/mstat
< 	#间隔时间
< 	if [ $stat = 0 ];then	
< 	sleep 5.5
< 	else
< 		
< 		if [ -s ~/.mplayer/list_name ];then
< 			read list_name < ~/.mplayer/list_name
< 		fi
< 	fi
< 	#check3
< 	if [ -s /dev/shm/mloop ];then
< 		read s < '/dev/shm/mloop'
< 	fi
< 	if [ $s = 0 ];then i=$(($i + 1));fi
---
>    #error manage
>    if ! [ -e ~/.mplayer/plist/$list_name ];then zenity  --info --text="列表为空" & exit;fi;
>    if ! [ -s ~/.mplayer/plist/$list_name ];then zenity  --info --text="列表为空" & exit;fi;
>    ##**##check1
>    if [ -s /dev/shm/mnum ];then
>       read t < '/dev/shm/mnum'
>       ts=$(($t + 1))
>       if [ $ts != $i ];then i=$t;fi;
>    fi
>    #check2
>    MAX=`grep -c "" ~/.mplayer/plist/$list_name`
>    if [ $i -gt $MAX ];then
>       #是否循环列表 默认循环
>       if [ -s /dev/shm/mlol ];then
>          read lo < '/dev/shm/mlol'
>          if [ $lo = 0 ];then
>             exit
>          else
>             i=1;
>          fi
>       else
>          i=1;
>       fi
> 
>    fi;
>    #
>    sone="`awk 'NR=='$i'' ~/.mplayer/plist/$list_name`"
>    echo $i > /dev/shm/mnum
>    echo $i > ~/.mplayer/mnum
>    #echo "$sone"
>    echo 0 > /dev/shm/mstat
>    mplayer "$sone" -input file=/dev/shm/mfifo;
>    stat=$?
>    echo 3 > /dev/shm/mstat
>    #间隔时间
>    if [ $stat = 0 ];then   
>    sleep 5.5
>    fi
>    #check3
>    if [ -s /dev/shm/mloop ];then
>       read s < '/dev/shm/mloop'
>    fi
>    if [ $s = 0 ];then i=$(($i + 1));fi
发言并不是一种义务,最喜欢的回答是不知道
两个手指点击,居然默认就是鼠标中键功能
右上角是中键,右下角是左键
Grub真小,才512B
零度电子书(Unix&Linux)
http://books.05sun.com/downlist/s_62_3.html
win7恢复能力不如xp,ubuntu相对较稳定。。。待机恢复起来似乎。。。
linee
帖子: 86
注册时间: 2007-08-09 14:29

Re: 闲着挂个队列播放的。。。

#23

帖子 linee » 2008-11-27 15:37

qqttdh 写了:
linee 写了:
qqttdh 写了:
linee 写了:再增加多个列表就完美了。
主脚本完成。。。
期待其它配套散件。
验证完毕。。。已可以使用。。。
mplayer_queue_player.09.tar.bz2
注:主脚本作了适当修改
下了mplayer_queue_player.09.tar.bz2,使用不正常啊,初步发现:
player不能播放默认播放列表(上次播放列表);
player_now能添加但player会退出;
next和pervious总会回到正在播放曲目的开始,就是说不跳前也不跳后;
choice_list和choice_sone也会造成player退出;
大约pause和stop是正常的。

还有,目前只能加列表,希望能增加删除列表功能。
头像
qqttdh
帖子: 896
注册时间: 2007-07-20 22:15

Re: 闲着挂个队列播放的。。。

#24

帖子 qqttdh » 2008-11-27 17:35

下了mplayer_queue_player.09.tar.bz2,使用不正常啊,初步发现:
player不能播放默认播放列表(上次播放列表);
player_now能添加但player会退出;
next和pervious总会回到正在播放曲目的开始,就是说不跳前也不跳后;
choice_list和choice_sone也会造成player退出;
大约pause和stop是正常的。

还有,目前只能加列表,希望能增加删除列表功能。
忘了测试。。。列表名中带空格的情况

需要播放以前的列表
cp ~/.mqueue ~/.mplayer/plist/mqueue

删除列表存放在 .mplayer/plist/ 目录下
发言并不是一种义务,最喜欢的回答是不知道
两个手指点击,居然默认就是鼠标中键功能
右上角是中键,右下角是左键
Grub真小,才512B
零度电子书(Unix&Linux)
http://books.05sun.com/downlist/s_62_3.html
win7恢复能力不如xp,ubuntu相对较稳定。。。待机恢复起来似乎。。。
头像
qqttdh
帖子: 896
注册时间: 2007-07-20 22:15

Re: 闲着挂个队列播放的。。。

#25

帖子 qqttdh » 2008-11-27 18:34

添加了很多必要和非必要的引号。。。
播放列表应该能包含任意字符了。。。
列表选择采用了较保守的做法。。。

。。。其余见下贴
发言并不是一种义务,最喜欢的回答是不知道
两个手指点击,居然默认就是鼠标中键功能
右上角是中键,右下角是左键
Grub真小,才512B
零度电子书(Unix&Linux)
http://books.05sun.com/downlist/s_62_3.html
win7恢复能力不如xp,ubuntu相对较稳定。。。待机恢复起来似乎。。。
头像
qqttdh
帖子: 896
注册时间: 2007-07-20 22:15

Re: 闲着挂个队列播放的。。。

#26

帖子 qqttdh » 2008-11-27 22:17

增加删除或重命名列表脚本。。。manage_list
···如意外操作可到列表目录(./mplayer/plist)下从.xx.bak文件恢复
增加一个添加曲目或列表的独立脚本。。。add_new_list
mplayer_queue_player.0.9.2.tar.bz2
(3.64 KiB) 已下载 96 次
发现一个小问题。。。和个别中文有关。。。不过对使用的影响不大
发言并不是一种义务,最喜欢的回答是不知道
两个手指点击,居然默认就是鼠标中键功能
右上角是中键,右下角是左键
Grub真小,才512B
零度电子书(Unix&Linux)
http://books.05sun.com/downlist/s_62_3.html
win7恢复能力不如xp,ubuntu相对较稳定。。。待机恢复起来似乎。。。
头像
qqttdh
帖子: 896
注册时间: 2007-07-20 22:15

Re: 闲着挂个队列播放的。。。

#27

帖子 qqttdh » 2008-11-28 7:32

经查。。。发现问题出在sh重定向中文文件上。。。
将部分脚本运行shell改成bash即可
mplayer_queue_player.0.9.3.tar.bz2
enjoy it...
(3.63 KiB) 已下载 104 次
发言并不是一种义务,最喜欢的回答是不知道
两个手指点击,居然默认就是鼠标中键功能
右上角是中键,右下角是左键
Grub真小,才512B
零度电子书(Unix&Linux)
http://books.05sun.com/downlist/s_62_3.html
win7恢复能力不如xp,ubuntu相对较稳定。。。待机恢复起来似乎。。。
头像
qqttdh
帖子: 896
注册时间: 2007-07-20 22:15

Re: 闲着挂个队列播放的。。。

#28

帖子 qqttdh » 2008-11-28 13:36

一楼那个(09版)重新采用了sh,
并对主脚本的结构作了相应调整(重新采取了08版的一些策略)
控制脚本也作了相应调整。。。
可能还修复了0.9.3中的一些小问题。。。
0.9.X中的stop可能管得太多了。。。09中取消了部分停止功能
但加入了停止所有mplayer的对话(位于exit之后,默认未启动)
。。。 。。。


附上新增的列表管理脚本mamage_list

代码: 全选

#!/bin/sh
#################################################
#       PROGRAMME
	while [ 1 ];do
		echo "`ls ~/.mplayer/plist -1`" > /dev/shm/mlists
		
		if(zenity --question --text="需要删除列表?")then
		
		exec < /dev/shm/mlists
		lab=FALSE
		while read line
		do
			a="`echo "${line##*\/}"|sed 's/\ /\_/g'`"
			list="$list $lab $a"
		done
		
		c=`zenity  --list --checklist --height=350  --width=300 --column "选项" \
		--column "列表名" --text "选择删除列表" $list`
		unset list
		
		exec < /dev/shm/mlists
		while read line
		do
		st="`echo "$line"|sed 's/\ /\_/g;s/\[/\\\[/g;s/\]/\\\]/g'`"
		sc="`echo "$c"|grep -n "$st"|sed -n 1p|awk -F : '{print $1}'`"
		if [ "$sc" ];then
		mv ~/.mplayer/plist/"$line" ~/.mplayer/plist/."$line".bak
		fi
		done
		
		else
		
		exec < /dev/shm/mlists
		lab=FALSE
		while read line
		do
			a="`echo "${line##*\/}"|sed 's/\ /\_/g'`"
			list="$list $lab $a"
		done
		list="$list TRUE"
		
			c=`zenity  --list --radiolist --height=350  --width=300 --column "选项" \
			 --column "列表名" --text "选择重命名列表" $list`
			unset list
			if [ "$c" ]&&[ x"$c" != x"(null)" ];then
			list_name_new=`zenity --entry --text="请输入列表名称"`
			fi
		
		exec < /dev/shm/mlists
		while read line
		do
		st="`echo "$line"|sed 's/\ /\_/g;s/\[/\\\[/g;s/\]/\\\]/g'`"
		sc="`echo "$c"|grep -n "$st"|sed -n 1p|awk -F : '{print $1}'`"
		if [ "$sc" ]&&[ $list_name_new ];then
		mv ~/.mplayer/plist/"$line" ~/.mplayer/plist/"$list_name_new"
		fi
		done
		
		fi

		#if [ "$list_name" ]&&[ x"$list_name" != x"(null)" ];then break;fi		
		if(zenity --question --text="退出?")then exit;fi
		unset c list_name_new
	done
发言并不是一种义务,最喜欢的回答是不知道
两个手指点击,居然默认就是鼠标中键功能
右上角是中键,右下角是左键
Grub真小,才512B
零度电子书(Unix&Linux)
http://books.05sun.com/downlist/s_62_3.html
win7恢复能力不如xp,ubuntu相对较稳定。。。待机恢复起来似乎。。。
linee
帖子: 86
注册时间: 2007-08-09 14:29

Re: 闲着挂个队列播放的。。。

#29

帖子 linee » 2008-11-29 0:17

qqttdh 写了:一楼那个(09版)重新采用了sh,
并对主脚本的结构作了相应调整(重新采取了08版的一些策略)
控制脚本也作了相应调整。。。
可能还修复了0.9.3中的一些小问题。。。
0.9.X中的stop可能管得太多了。。。09中取消了部分停止功能
但加入了停止所有mplayer的对话(位于exit之后,默认未启动)
。。。 。。。
add_new_list有问题:若选已有列表会把以前的内容清空。
add_new_list,player和player_now如果不以nautilus-Scripts方式运行的话(比如:Open with another Application...)列表里的路径前面会多出这么一串字符:/home/(用户名)/。
头像
qqttdh
帖子: 896
注册时间: 2007-07-20 22:15

Re: 闲着挂个队列播放的。。。

#30

帖子 qqttdh » 2008-11-29 9:17

linee 写了:
qqttdh 写了:一楼那个(09版)重新采用了sh,
并对主脚本的结构作了相应调整(重新采取了08版的一些策略)
控制脚本也作了相应调整。。。
可能还修复了0.9.3中的一些小问题。。。
0.9.X中的stop可能管得太多了。。。09中取消了部分停止功能
但加入了停止所有mplayer的对话(位于exit之后,默认未启动)
。。。 。。。
add_new_list有问题:若选已有列表会把以前的内容清空。
add_new_list,player和player_now如果不以nautilus-Scripts方式运行的话(比如:Open with another Application...)列表里的路径前面会多出这么一串字符:/home/(用户名)/。
。。。add_new_list在测试时被漏掉了。。。
其中一段处理列表的代码放到了生成列表的循环里。。。
已经被修正。。。
又在主脚本中添加了一些出错处理机制。。。

至于第二个问题。。。主要由于两种不同的运行方式得到的$1不同。。。
加入了适当的处理机制。。。
发言并不是一种义务,最喜欢的回答是不知道
两个手指点击,居然默认就是鼠标中键功能
右上角是中键,右下角是左键
Grub真小,才512B
零度电子书(Unix&Linux)
http://books.05sun.com/downlist/s_62_3.html
win7恢复能力不如xp,ubuntu相对较稳定。。。待机恢复起来似乎。。。
回复