当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 36 篇帖子 ]  前往页数 1, 2, 3  下一页
作者 内容
1 楼 
 文章标题 : 电台脚本ghiChannel.sh (有zenity做的gui界面)
帖子发表于 : 2008-10-19 14:53 
头像

注册: 2007-11-19 21:51
帖子: 6956
地址: 成都
送出感谢: 0 次
接收感谢: 4
^^ RT

昨天某人提到了一个叫hiChannel.sh (http://fourdollars.blogspot.com/search/label/hiChannel.sh)的电台脚本,很不错,我给加了一个简单的gui,去除了其中定时提醒的功能,还马马虎虎啦,欢迎使用。 :em01


附件:
ghiChannel.sh.tar.bz2 [3.38 KiB]
被下载 302 次
Screenshot-ghiChannel 播放器 V-08.10.19.png
Screenshot-ghiChannel 播放器 V-08.10.19.png [ 19.63 KiB | 被浏览 2843 次 ]
Screenshot-ghiChannel 播放器 V-08.10.19-1.png
Screenshot-ghiChannel 播放器 V-08.10.19-1.png [ 21.12 KiB | 被浏览 2843 次 ]
Screenshot-ghiChannel 播放器 V-08.10.19-2.png
Screenshot-ghiChannel 播放器 V-08.10.19-2.png [ 13.42 KiB | 被浏览 2838 次 ]
页首
 用户资料  
 
2 楼 
 文章标题 : Re: 电台脚本ghiChannel.sh (有zenity做的gui界面)
帖子发表于 : 2008-10-19 14:55 
头像

注册: 2007-11-19 21:51
帖子: 6956
地址: 成都
送出感谢: 0 次
接收感谢: 4
代码在此:
代码:
#!/usr/bin/env bash
#This is a tuner using zenity based on FourDollars' hichannel.sh (http://fourdollars.blogspot.com/search/label/hiChannel.sh)
name="Name: ghiChannel zenity tuner"
copyright="Copyright (R): 2008-2009 xiooli (xioooli@yahoo.com.cn)"
license="License: GPLv3"
version="Version: 08.10.19"
declare -i option_verbose=0
declare -i option_live_tv=0

function player ()
{
   case $(uname) in
      Darwin)
      open -a "QuickTime Player" $1 && osascript -e "tell application \"QuickTime Player\"" -e "tell document 1" -e "play" -e "end tell" -e "end tell"
      ;;
      *BSD)
      mplayer $1 &
        play_id="$!"
      ;;
      Linux)
      if [ ! -z "$(which mimms)" ] && [ ! -z "$(which ffplay)" ]; then
         mimms $1 - | ffplay - &
            play_id="$!"
      elif [ ! -z "$(which gst-launch)" ]; then
         gst-launch playbin uri=$1 &
            play_id="$!"
      elif [ ! -z "$(which mplayer)" ]; then
         mplayer $1 &
            play_id="$!"
      elif [ ! -z "$(which xine)" ]; then
         xine $1 &
            play_id="$!"
      elif [ ! -z "$(which totem)" ]; then
         totem $1 &
            play_id="$!"
      fi
      ;;
   esac
}

program_name="ghiChannel 播放器 ${version/ersion: /-}"

prompt_message='請選擇:'

category_list=(music life news others foreign culture traffic live)

category_name=(音樂 生活資訊 新聞 綜合 外語 多元文化 交通 免費影視)

music_site_list=(
   'ASIAFM 衛星音樂台' '321'
   'Apple line 蘋果線上' '248'
   'BestRadio 台中好事903' '211'
   'BestRadio 台北好事989' '212'
   'BestRadio 花蓮好事935' '303'
   'BestRadio 高雄港都983' '213'
   'Flyradio 飛揚調頻895' '357'
   'HitFm 聯播網 台中91.5' '88'
   'HitFm 聯播網 高雄90.1' '90'
   'HitFm 聯播網 台北91.7' '87'
   'KISS RADIO 南投廣播' '258'
   'KISS RADIO 台南知音廣播' '255'
   'KISS RADIO 大苗栗廣播' '256'
   'KISS RADIO 大眾廣播電台' '156'
   'KISS RADIO 網路音樂台' '308'
   '中廣古典網' '162'
   '中廣流行網' '205'
   '中廣音樂網 i radio' '206'
   '佳音CCM' '304'
   '全國廣播音樂網' '338'
   '台北之音經典音樂台' '222'
   '台北愛樂' '228'
   '台灣之音-音樂' '313'
   '太陽電台' '289'
   '奇美古典音樂網' '294'
   '寶島新聲廣播電台' '259'
)

life_site_list=(
   'ASIA FM92.3 亞太電台' '295'
   'ASIA FM92.7 亞州電台' '210'
   'GOLD FM-台中城市廣播' '226'
   'GOLD FM-台北健康電台' '229'
   'IC之音' '148'
   '佳音廣播電台' '201'
   '佳音電台2台' '250'
   '全國廣播' '202'
   '台中廣播' '230'
   '台北廣播電台- 都會資訊頻道' '208'
   '台北廣播電台喔海洋頻道' '238'
   '台視數位廣播' '319'
   '大千電台' '109'
   '大愛網路電台' '325'
   '宜蘭中山電台' '301'
   '環宇廣播' '282'
   '真心之音廣播電台' '217'
   '蒲公英聖樂網' '337'
   '警廣長青網' '271'
   '青春線上' '356'
   '飛碟電台' '232'
)

news_site_list=(
   'NEWS98新聞網' '187'
   '中廣新聞網' '207'
)

others_site_list=(
   '台灣之音-華語' '315'
   '復興廣播電台 短波網' '288'
   '復興廣播電台 第一網' '286'
   '復興廣播電台 第二網' '287'
   '正聲台北調幅台' '317'
   '正聲台北調頻台' '198'
   '漢聲光華網-中波' '281'
   '漢聲光華網-短波' '309'
   '漢聲廣播電台' '215'
   '漢聲廣播電台全國調頻網' '216'
   '綠色和平台灣文化廣播電台' '327'
)

foreign_site_list=(
   'ICRT' '177'
   '台灣之音-FM' '312'
   '台灣之音-亞洲' '311'
   '台灣之音-歐美及方言' '314'
)

culture_site_list=(
   '中廣客家頻道' '160'
   '大漢之音' '300'
   '寶島客家' '241'
   '新客家廣播電台' '254'
   '高屏溪客家電台' '298'
)

traffic_site_list=(
   '警廣—交通網台東台' '358'
   '警廣全國交通網' '269'
   '警廣台中台' '260'
   '警廣台北台' '261'
   '警廣台南台' '263'
   '警廣宜蘭台' '265'
   '警廣新竹台' '268'
   '警廣花蓮台' '266'
   '警廣高雄台' '267'
)

live_site_list=(
   '世棒2台' '603'
   '世界盃棒球直播' '996'
   'KuLife' '997'
   'KuMovie' '998'
   'KuDrama' '999'
   'Bloomberg Television' '1001'
   #'中視' '36'
   '中天新聞台' '37'
   '大愛電視台' '38'
   '華視影音頻道' '50'
   '生命電視台' '54'
   '大愛電視二台' '57'
   #'台灣樂起來(樂透開獎)' '58'
   #'NOKIA音樂讓我說演唱會' '604'
   '流行追蹤' '21'
)

function read_category ()
{
   size=${#category_list[@]}
   for ((i=0; i<size; i++)); do
      echo " $((i+1)) ${category_name[$i]}"
   done
}

function read_channel ()
{
   echo -e "   0 回到上一層"
   eval size=\${#${category_list[$((category-1))]}_site_list[@]}
   for ((i=0; i<size/2; i++)); do
      eval name=\${${category_list[$((category-1))]}_site_list[$((i*2))]}
      echo "$((i+1))" "${name// /_}"
   done
}

function wmp_get ()
{
   if [ "$(uname)" != "Darwin" ]; then
      if [ ! -z $(which wget) ]; then
         wget -q --user-agent 'Windows Media Player' --referer 'http://www.hichannel.hinet.net' -O - "$*"
      elif [ ! -z $(which curl) ]; then
         curl -q --user-agent 'Windows Media Player' --referer 'http://www.hichannel.hinet.net' --location -o - "$*"
      fi
   else
      curl -q --user-agent 'Windows Media Player' --referer 'http://www.hichannel.hinet.net' --location -o - "$*"
   fi
}

function hinet_radio_url ()
{
   wmp_get $(wmp_get "http://www.hichannel.hinet.net/api/streamFreeRadio.jsp?id=$*" | grep mms | cut -d '"' -f 2) | grep 203 | cut -d '"' -f 2
}

function hinet_video_url ()
{
   wmp_get $(wmp_get "http://www.hichannel.hinet.net/api/streamFreeLive.jsp?id=$*&quality=high" | grep mms | cut -d '"' -f 2) | grep 203 | cut -d '"' -f 2
}

function media_player ()
{
    if [ $option_live_tv = 1 ] ; then
        player $(hinet_video_url $1)
    else
        player $(hinet_radio_url $1)
    fi
}

function get_mode ()
{
    if [ "$option_live_tv" = "1" ]; then
        mode="live模式"
    elif [ "$option_verbose" = "1" ];then
        mode="version模式"
    else
        mode="其他模式"
    fi
   
}

function main_func ()
{
    while [ "${category:-nil}" = "nil" ]; do
        get_mode
       category=$(zenity --list --title="${program_name}" --text="($mode)选择类别:" --column="序号" --column="名称" "0" "程序设置" $(read_category))
        [ "$?" -eq 1 ] &&  exit
        [ "$category" = "0" ] && category="" && parse_parameter
        while [ "${channel:-nil}" = "nil" -a "${category:-nil}" != "nil" ]; do
            channel=$(zenity --list --title="${program_name}" --text="($mode)类别${category}(${category_name[$((category-1))]}),请选择频道:" --column="序号" --column="名称" $(read_channel))
            if [ "$?" -eq 1 -o "$channel" = "0" ]; then
                category=""
                break
            elif [ "${channel:-nil}" = "nil" ]; then
                continue
            fi
        done      
   done

   eval channelname=\${${category_list[$((category-1))]}_site_list[$((channel*2-2))]}
   eval Channel=\${${category_list[$((category-1))]}_site_list[$((channel*2-1))]}

   [ $category = 8 ] && option_live_tv=1

    channel=""
    category=""

   media_player $Channel
    terminat=$(zenity --list --title="${program_name}" --text="现在播放的是 [$channelname]" --column="ID" --column="是否终止播放?" "$play_id" "终止播放")
    [ "$terminat" = "$play_id" ] && kill -9 $play_id
}

function show_about ()
{
    zenity --info --width=300 --title="关于${program_name}" --text="${name}\n${copyright}\n${version}\n${license}"
}

function parse_parameter ()
{
    param=$(zenity --list --title="系统设置" --text="选择条目:" --column="序号" --column="条目" "1" "关于" \
    "2" "live模式" "3" "verbose模式" "4" "其他模式")
   case $param in
      1)
      show_about
      ;;
      2)
      option_live_tv=1
      option_verbose=0
      ;;
      3)
      option_verbose=1
      option_live_tv=0
      ;;
      4)
      option_live_tv=0
      option_verbose=0
   esac
}

function system_check ()
{
   if [ "$(uname)" != "Darwin" ]; then
      if [ -z "$(which wget)" -a -z "$(which curl)" ]; then
         zenity --warning --title="播放条件不满足" --text="$0 needs wget or curl, please install one of them."
         exit
      fi
   fi

   case $(uname) in
      *BSD)
      if [ -z "$(which mplayer)" ]; then
         zenity --warning --title="播放条件不满足" --text="$0 needs mplayer, please install it."
         exit
      fi
      ;;
      Linux)
      if [ -z "$(which mimms)" -a -z "$(which ffplay)" -a -z "$(which gst-launch)" -a -z "$(which mplayer)" -a -z "$(which xine)" -a -z "$(which totem)" ]; then
         zenity --warning --title="播放条件不满足" --text="$0 needs mplayer/xine/totem, please install one of them."
         exit
      fi
      ;;
   esac
}

system_check
while :;do
    main_func
done


页首
 用户资料  
 
3 楼 
 文章标题 : Re: 电台脚本ghiChannel.sh (有zenity做的gui界面)
帖子发表于 : 2008-10-19 15:08 
头像

注册: 2006-12-23 13:46
帖子: 9203
地址: Azores Islands
送出感谢: 0 次
接收感谢: 1
:shock:


_________________
no security measure is worth anything if an attacker has physical access to the machine


页首
 用户资料  
 
4 楼 
 文章标题 : Re: 电台脚本ghiChannel.sh (有zenity做的gui界面)
帖子发表于 : 2008-10-19 15:14 
头像

注册: 2008-03-05 15:41
帖子: 238
地址: 中国广西防城港
送出感谢: 0 次
接收感谢: 0 次
嘻嘻 :em02 :em11


页首
 用户资料  
 
5 楼 
 文章标题 : Re: 电台脚本ghiChannel.sh (有zenity做的gui界面)
帖子发表于 : 2008-10-19 15:17 
头像

注册: 2008-03-05 15:41
帖子: 238
地址: 中国广西防城港
送出感谢: 0 次
接收感谢: 0 次
不错,使用正常~

最后在“终止播放”下面增加静音和最小化到托盘的功能就好了~


页首
 用户资料  
 
6 楼 
 文章标题 : Re: 电台脚本ghiChannel.sh (有zenity做的gui界面)
帖子发表于 : 2008-10-19 15:22 
头像

注册: 2007-11-19 21:51
帖子: 6956
地址: 成都
送出感谢: 0 次
接收感谢: 4
xinzhi 写道:
不错,使用正常~

最后在“终止播放”下面增加静音和最小化到托盘的功能就好了~

静音倒是可以,不过最小化到托盘就不知道怎么办了 :em06


页首
 用户资料  
 
7 楼 
 文章标题 : Re: 电台脚本ghiChannel.sh (有zenity做的gui界面)
帖子发表于 : 2008-10-19 15:27 
头像

注册: 2008-03-05 15:41
帖子: 238
地址: 中国广西防城港
送出感谢: 0 次
接收感谢: 0 次
恩,现在也不错了~


页首
 用户资料  
 
8 楼 
 文章标题 : Re: 电台脚本ghiChannel.sh (有zenity做的gui界面)
帖子发表于 : 2008-10-19 15:33 
头像

注册: 2007-11-19 21:51
帖子: 6956
地址: 成都
送出感谢: 0 次
接收感谢: 4
xinzhi 写道:
恩,现在也不错了~

刚刚改正了一个小问题,请重新下载 :em06


页首
 用户资料  
 
9 楼 
 文章标题 : Re: 电台脚本ghiChannel.sh (有zenity做的gui界面)
帖子发表于 : 2008-10-19 15:34 
头像

注册: 2008-03-05 15:41
帖子: 238
地址: 中国广西防城港
送出感谢: 0 次
接收感谢: 0 次
恩,好的~


页首
 用户资料  
 
10 楼 
 文章标题 : Re: 电台脚本ghiChannel.sh (有zenity做的gui界面)
帖子发表于 : 2008-10-19 16:43 

注册: 2008-08-26 23:29
帖子: 24
送出感谢: 0 次
接收感谢: 0 次
搂主是用vim工具编程的吗


页首
 用户资料  
 
11 楼 
 文章标题 : Re: 电台脚本ghiChannel.sh (有zenity做的gui界面)
帖子发表于 : 2008-10-19 16:47 
头像

注册: 2007-09-29 3:09
帖子: 5773
送出感谢: 0 次
接收感谢: 3
脚本党好...

顺道来个建议是否能把电台列表和位置存成文件再用读取,这样修改,增加,删除等管理工作会好做很多,不用每次动脚本了... :em03

我负责点子的~速闪~ :em02


_________________
HUNT Unfortunately No Talent...


页首
 用户资料  
 
12 楼 
 文章标题 : Re: 电台脚本ghiChannel.sh (有zenity做的gui界面)
帖子发表于 : 2008-10-19 18:20 
头像

注册: 2007-11-19 21:51
帖子: 6956
地址: 成都
送出感谢: 0 次
接收感谢: 4
wxj120bw 写道:
搂主是用vim工具编程的吗

是地,就写写简单的东东,没有那些高手那么专业 :em03
HuntXu 写道:
脚本党好...

顺道来个建议是否能把电台列表和位置存成文件再用读取,这样修改,增加,删除等管理工作会好做很多,不用每次动脚本了... :em03

我负责点子的~速闪~ :em02

说实话,他那个取播放地址的那段我没有搞懂 :em06


页首
 用户资料  
 
13 楼 
 文章标题 : Re: 电台脚本ghiChannel.sh (有zenity做的gui界面)
帖子发表于 : 2008-10-19 18:42 
头像

注册: 2006-04-12 20:05
帖子: 8495
地址: 杭州
送出感谢: 0 次
接收感谢: 8
:em11


_________________
关注我的blog: ε==3


页首
 用户资料  
 
14 楼 
 文章标题 : Re: 电台脚本ghiChannel.sh (有zenity做的gui界面)
帖子发表于 : 2008-10-19 18:55 
头像

注册: 2006-02-28 3:11
帖子: 2470
送出感谢: 0 次
接收感谢: 0 次
看来以后是有可能脱离GTK和QT了(不对, 这个是不是用TK写的?)

LZ试试把mplayer和zenity结合到一起吧, 也许会比smplayer好


_________________
一梦三年,
松风依旧,
萝月何曾老.


灵幽听微, 谁观玉颜?
灼灼春华, 绿叶含丹.


页首
 用户资料  
 
15 楼 
 文章标题 : Re: 电台脚本ghiChannel.sh (有zenity做的gui界面)
帖子发表于 : 2008-10-19 19:23 
头像

注册: 2007-11-19 21:51
帖子: 6956
地址: 成都
送出感谢: 0 次
接收感谢: 4
yjcong 写道:
看来以后是有可能脱离GTK和QT了(不对, 这个是不是用TK写的?)

LZ试试把mplayer和zenity结合到一起吧, 也许会比smplayer好

zenity也是用gtk的吧。你认为点一下跳一个窗口的东东好玩么? :em04


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 36 篇帖子 ]  前往页数 1, 2, 3  下一页

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 3 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译