pps的bash的用zenity实现的简单的gui列表。使用pps的视频列表接口

sh/bash/dash/ksh/zsh等Shell脚本
头像
xzap
帖子: 256
注册时间: 2006-08-24 21:25

pps的bash的用zenity实现的简单的gui列表。使用pps的视频列表接口

#1

帖子 xzap » 2009-08-28 2:44

pps for linux 的视频列表接口放出了,所以就更新下我的小脚本吧,新开个帖子吧,原来的帖子太乱了。
现在的问题就是:一些连续剧的xml文件里,pps很偷懒的竟然没有放title,所以就会形成错误。这个问题明天再想办法解决吧,现在很晚了,要睡觉了。

同样,编写环境为archliux,ubuntu有问题的请留言,应该不会有问题,什么都没用,就用了sed.

代码: 全选

#!/bin/bash
#=====================================
#帮助pps for linux 更好的播放的小脚本。
#根据视频列表接口生成
#xzap   xzap1982[at]gmail.com
#ver: 20090828
#======================一些设置===================
#pps for linux 的mplayer的地址
exe=~/usr/pps/mplayer
#缓存的播放列表位置
templist=/tmp/ppslist$$
#二级列表缓存位置
sublist=/tmp/sublist$$
#主分类列表缓存位置
categorylist=/tmp/categorylist$$
#======================开始代码========================
#抓取分类页
wget http://playlist.pps.tv/classfortv.php -q -T 10 -O- 2>/dev/null | enconv|sed -ne 's/<Title><!\[CDATA\[\(.*\)\]\]><\/Title>/\1/p' -e 's/<ID><!\[CDATA\[\(.*\)\]\]><\/ID>/\1/p' -e 's/<Type><!\[CDATA\[\(.*\)\]\]><\/Type>/\1/p' -e 's/<ContentNum><!\[CDATA\[\(.*\)\]\]><\/ContentNum>/\1/p' > $categorylist	
while :
do
#产生分类页列表
rusult=($(cat $categorylist|zenity --list  --width 300 --height 500 --separator "  " --hide-column "1" --print-column all --title "pps的简单的播放列表" --text "选择要播放影片的类别,0代表有子目录,1代表无子目录"  --column "class" --column "类别列表" --column "子目录" --column "数量"))
if [ $? != 0 ]
		then 
		[ -e $templist ]&&rm $templist
		[ -e $sublist ]&&rm $sublist
		[ -e $categorylist ]&&rm $categorylist
		exit
		
	fi
class=${rusult[0]} 
fenlei=${rusult[1]} 
ftype=${rusult[2]} 
num=${rusult[3]} 

let count=$num/50
let count=$count+1
#判断是否有二级目录
if [ $ftype = 1 ]; then
[ -e $templist ]&&rm $templist
echo "没有子目录,正在生成播放列表,该列表中共有$num个项目。项目越多,时间越长,请内心等待……"
for (( i = 1; i <= count; i++ )); do
echo -n "."
wget  "http://playlist.pps.tv/channelsfortv.php?class=$class&page=$i" -q -T 10 -O- 2>/dev/null |enconv|sed -ne 's/<Title><!\[CDATA\[\(.*\)\]\]><\/Title>/\1/p' -e 's/<DUrl><!\[CDATA\[\(.*\)\]\]><\/DUrl>/\1/p' >>$templist
done
else
[ -e $sublist ]&&rm $sublist
echo "有子目录,正在生成子目录类别,该子目录中共有$num个项目。项目越多,时间越长,请内心等待……"

wget  "http://playlist.pps.tv/subclassfortv.php?class=$class" -q -T 10 -O- 2>/dev/null |enconv|sed 's/<SubID>/\n<SubID>/g'|sed 's/<Title>/\n<Title>/g'|sed 's/<FilmTitle>/\n<FilmTitle>/g'|sed 's/<ContentNum>/\n<ContentNum>/g'|sed 's/<\/SubClass>/\n<\/SubClass>/g'|sed -ne 's/<SubID><!\[CDATA\[\(.*\)\]\]><\/SubID>/\1/p' -e 's/<Title><!\[CDATA\[\(.*\)\]\]><\/Title>/\1/p' -e 's/<ContentNum><!\[CDATA\[\(.*\)\]\]><\/ContentNum>/\1/p' -e 's/<FilmTitle><!\[CDATA\[\(.*\)\]\]><\/FilmTitle>/\1/p'  >$sublist

subrusult=($(cat $sublist|zenity --list  --width 500 --height 500 --separator "  " --hide-column "1" --print-column all --title "pps的简单的播放列表" --text "请在二级子目录中选择,本目录共有$num个项目"  --column "subid" --column "$fenlei" --column "推荐影片" --column "数量"))

if [ $? != 0 ]
		then 
		[ -e $templist ]&&rm $templist
		[ -e $sublist ]&&rm $sublist
		[ -e $categorylist ]&&rm $categorylist		
		break		
	fi
echo $subrusult
subid=${subrusult[0]} 
subtitle=${subrusult[1]} 
subfilm=${subrusult[2]} 
num=${subrusult[3]} 

let count=$num/50
let count=$count+1
[ -e $templist ]&&rm $templist

for (( i = 1; i <=count; i++ )); do
echo -n "."
wget  "http://playlist.pps.tv/channelsfortv.php?class=$class&subclass=$subid&page=$i" -q -T 10 -O- 2>/dev/null |enconv|sed -ne 's/<Title><!\[CDATA\[\(.*\)\]\]><\/Title>/\1/p' -e 's/<DUrl><!\[CDATA\[\(.*\)\]\]><\/DUrl>/\1/p' >>$templist
done
echo "正在生成播放列表,该列表中共有$num个项目。项目越多,时间越长,请内心等待……"
fi

#生成播放列表
while :
do
url=`cat $templist|zenity --list --column "影片名称" --column "影片的地址" --width 600 --height 600 --title "pps的简单的播放列表" --print-column 2 --text "选择要播放的影片,一共有$num个可播放项目" `

if [ $? != 0 ]
		then 

		
		[ -e $sublist ]&&rm $sublist
			
		
			break
		
	fi

if [ -z $url ]
then 
echo "Sorry! 没有捕获播放地址。"
else

echo "已经捕获播放地址$url现在开始播放……"
#echo $url
sudo $exe $url
wait
fi
done
done

plist.tar.bz2
pps的bash的用zenity实现的简单的gui列表。使用pps的视频列表接口
(1.7 KiB) 已下载 204 次
PPS_Playlist_for_Linux.zip
pps官方的视频列表接口文档
(16.29 KiB) 已下载 229 次
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: pps的bash的用zenity实现的简单的gui列表。使用pps的视频列表接口

#2

帖子 eexpress » 2009-08-28 8:41

是重复的那个?
● 鸣学
头像
momova
帖子: 3381
注册时间: 2007-07-11 21:43
系统: archlinux
来自: 东江边

Re: pps的bash的用zenity实现的简单的gui列表。使用pps的视频列表接口

#3

帖子 momova » 2009-08-28 9:08

代码: 全选

./plist: line 18: enconv:找不到命令
我来了,我看见了,我征服了!
求勾搭,不管饭。
sfsren
帖子: 167
注册时间: 2008-11-07 21:39

Re: pps的bash的用zenity实现的简单的gui列表。使用pps的视频列表接口

#4

帖子 sfsren » 2009-08-28 9:24

./dz1: line 18: enconv:找不到命令
头像
xzap
帖子: 256
注册时间: 2006-08-24 21:25

Re: pps的bash的用zenity实现的简单的gui列表。使用pps的视频列表接口

#5

帖子 xzap » 2009-08-28 10:26

sfsren 写了:./dz1: line 18: enconv:找不到命令
那就装一个啊,或者改成iconv -f gbk,或者直接删除掉,不乱码的话。
sfsren
帖子: 167
注册时间: 2008-11-07 21:39

Re: pps的bash的用zenity实现的简单的gui列表。使用pps的视频列表接口

#6

帖子 sfsren » 2009-08-28 10:58

xzap 写了:
sfsren 写了:./dz1: line 18: enconv:找不到命令
那就装一个啊,或者改成iconv -f gbk,或者直接删除掉,不乱码的话。
ren@ren-desktop:~$ sudo apt-get install enconv
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
E: 无法找到软件包 enconv
改为iconv -f gbk 乱码,直接删除ok了
sfsren
帖子: 167
注册时间: 2008-11-07 21:39

Re: pps的bash的用zenity实现的简单的gui列表。使用pps的视频列表接口

#7

帖子 sfsren » 2009-08-28 11:06

sendpix0.jpg
上面写263个可播放项目,我数了一下,一共才48个,其余的在哪里?可以翻页?
头像
xzap
帖子: 256
注册时间: 2006-08-24 21:25

Re: pps的bash的用zenity实现的简单的gui列表。使用pps的视频列表接口

#8

帖子 xzap » 2009-08-28 12:56

sfsren 写了:
sendpix0.jpg
上面写263个可播放项目,我数了一下,一共才48个,其余的在哪里?可以翻页?
这个情况好像是官方xml的数字标注有误。有的时候是有这个情况
aitjcize
帖子: 96
注册时间: 2009-02-01 18:28
来自: 台灣

Re: pps的bash的用zenity实现的简单的gui列表。使用pps的视频列表接口

#9

帖子 aitjcize » 2009-08-28 13:02

Aitjcize, AZ
My Blog: http://berelent.blogspot.com
头像
xzap
帖子: 256
注册时间: 2006-08-24 21:25

Re: pps的bash的用zenity实现的简单的gui列表。使用pps的视频列表接口

#10

帖子 xzap » 2009-08-28 17:07

aitjcize 写了:viewtopic.php?f=74&t=223050&start=30
這個更強大 :em04
伤心了,简单点也不错的阿。
gxw5555
帖子: 110
注册时间: 2006-04-22 9:48

Re: pps的bash的用zenity实现的简单的gui列表。使用pps的视频列表接口

#11

帖子 gxw5555 » 2009-08-29 11:10

xzap 写了: 伤心了,简单点也不错的阿。
支持你
头像
xzap
帖子: 256
注册时间: 2006-08-24 21:25

Re: pps的bash的用zenity实现的简单的gui列表。使用pps的视频列表接口

#12

帖子 xzap » 2009-08-29 11:38

gxw5555 写了:
xzap 写了: 伤心了,简单点也不错的阿。
支持你
谢谢,谢谢这位注册比我早发贴比我少的兄弟,太感动了
我感觉我发贴已经够懒了
头像
aric286
帖子: 960
注册时间: 2007-12-03 9:54
联系:

Re: pps的bash的用zenity实现的简单的gui列表。使用pps的视频列表接口

#13

帖子 aric286 » 2009-08-29 11:52

支持更新。再说一句,貌似totem插件还有点问题,在未正常播放之前不能换片。
头像
aric286
帖子: 960
注册时间: 2007-12-03 9:54
联系:

Re: pps的bash的用zenity实现的简单的gui列表。使用pps的视频列表接口

#14

帖子 aric286 » 2009-08-29 12:00

[ppsvod_create]-----------start(ppstream,demo,pps_mp1234)
[ppsvod_create]-----------end

Playing tvod://e69812f1e07affd367c0337f730e467f99979a52e09cb7a2c24463019e41fd3773dc285ff362f34c1b49bfcfa2342a37/%CA%A5%B5%AE%B9%D6%BD%DC.wmv.
No stream found to handle url tvod://e69812f1e07affd367c0337f730e467f99979a52e09cb7a2c24463019e41fd3773dc285ff362f34c1b49bfcfa2342a37/%CA%A5%B5%AE%B9%D6%BD%DC.wmv

[ppsvod_destroy]-----------start
CUDPBaseEx::Send failed!!!!!!!!!!!: Bad file descriptor
CUDPBaseEx::Send failed!!!!!!!!!!!: Bad file descriptor
CUDPBaseEx::Send failed!!!!!!!!!!!: Bad file descriptor
CUDPBaseEx::Send failed!!!!!!!!!!!: Bad file descriptor
CUDPBaseEx::Send failed!!!!!!!!!!!: Bad file descriptor
CUDPBaseEx::Send failed!!!!!!!!!!!: Bad file descriptor
[ppsvod_destroy]-----------end

Exiting... (End of file)
什么意思?错误文件描述?
头像
xzap
帖子: 256
注册时间: 2006-08-24 21:25

Re: pps的bash的用zenity实现的简单的gui列表。使用pps的视频列表接口

#15

帖子 xzap » 2009-08-29 13:01

aric286 写了:
[ppsvod_create]-----------start(ppstream,demo,pps_mp1234)
[ppsvod_create]-----------end

Playing tvod://e69812f1e07affd367c0337f730e467f99979a52e09cb7a2c24463019e41fd3773dc285ff362f34c1b49bfcfa2342a37/%CA%A5%B5%AE%B9%D6%BD%DC.wmv.
No stream found to handle url tvod://e69812f1e07affd367c0337f730e467f99979a52e09cb7a2c24463019e41fd3773dc285ff362f34c1b49bfcfa2342a37/%CA%A5%B5%AE%B9%D6%BD%DC.wmv

[ppsvod_destroy]-----------start
CUDPBaseEx::Send failed!!!!!!!!!!!: Bad file descriptor
CUDPBaseEx::Send failed!!!!!!!!!!!: Bad file descriptor
CUDPBaseEx::Send failed!!!!!!!!!!!: Bad file descriptor
CUDPBaseEx::Send failed!!!!!!!!!!!: Bad file descriptor
CUDPBaseEx::Send failed!!!!!!!!!!!: Bad file descriptor
CUDPBaseEx::Send failed!!!!!!!!!!!: Bad file descriptor
[ppsvod_destroy]-----------end

Exiting... (End of file)
什么意思?错误文件描述?
这个你是不是用的老版本的pps for linux阿,就是用pps://这样的文件链接的
回复