From f0f9f5b38e33f295db8afd4cbc4cb59ed64b4b73 Mon Sep 17 00:00:00 2001 From: Sushi-k Date: Mon, 1 Mar 2010 16:00:20 +0900 Subject: [PATCH] =?utf8?q?mod:=20=E4=B8=A6=E5=88=97=E3=83=86=E3=82=B9?= =?utf8?q?=E3=83=88=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- config.php.sample | 23 ++++++++++++++++++++--- getepg.php | 56 +++++++++++++++++++++++++++++++++++++++---------------- 2 files changed, 60 insertions(+), 19 deletions(-) diff --git a/config.php.sample b/config.php.sample index d0e13a3..2634109 100755 --- a/config.php.sample +++ b/config.php.sample @@ -56,10 +56,18 @@ $RECORD_MODE = array( */ ); -// 以下、USE_KUROBON以外の定数は設定不要になりました + +// BSチューナーとして黒Friioを用いているのなら下のfalseをtrueに変えてください。 + +define( "USE_KUROBON", false ); + + + +////////////////////////////////////////////////////////////////////////////// +// 以降の変数・定数はほとんどの場合、変更する必要はありません + define( "INSTALL_PATH", dirname(__FILE__) ); // インストールパス -define( "USE_KUROBON", false ); // BSチューナーとしてFriio BS/CSを使うならtrue // 以降は必要に応じて変更する @@ -68,6 +76,15 @@ define( "DO_RECORD", INSTALL_PATH . "/do-record.sh" ); // レコードスクリ define( "COMPLETE_CMD", INSTALL_PATH . "/recomplete.php" ); // 録画終了コマンド define( "GEN_THUMBNAIL", INSTALL_PATH . "/gen-thumbnail.sh" ); // サムネール生成スクリプト +// BS/CSでEPGを取得するチャンネル +// 通常は変える必要はありません +// BSでepgdumpが頻繁に落ちる場合は、受信状態のいいチャンネルに変えることで +// 改善するかもしれません + +define( "BS_EPG_CHANNEL", "211" ); // BS +define( "CS1_EPG_CHANNEL", "CS8" ); // CS1 +define( "CS2_EPG_CHANNEL", "CS24" ); // CS2 + // 地上デジタルチャンネルテーブルsettings/gr_channel.phpが存在するならそれを // 優先する @@ -278,4 +295,4 @@ define( "KEYWORD_STRUCT", "autorec_mode integer not null default '0',". // 自動録画のモード02/23/2010追加 "weekofday enum ('0','1','2','3','4','5','6','7' ) default '7'" // 曜日、同追加 ); -?> \ No newline at end of file +?> diff --git a/getepg.php b/getepg.php index aefd510..a0ca2b5 100755 --- a/getepg.php +++ b/getepg.php @@ -6,20 +6,44 @@ include_once( INSTALL_PATH . '/Keyword.class.php' ); include_once( INSTALL_PATH . '/Settings.class.php' ); + // 後方互換性 + if( ! defined( "BS_EPG_CHANNEL" ) ) define( "BS_EPG_CHANNEL", "211" ); + if( ! defined( "CS1_EPG_CHANNEL" ) ) define( "CS1_EPG_CHANNEL", "CS8" ); + if( ! defined( "CS2_EPG_CHANNEL" ) ) define( "CS2_EPG_CHANNEL", "CS24" ); + + + function check_file( $file ) { + // ファイルがないなら無問題 + if( ! file_exists( $file ) ) return true; + + // 1時間以上前のファイルなら削除してやり直す + if( (time() - filemtime( $file )) > 3600 ) { + @unlink( $file ); + return true; + } + + return false; + } + $settings = Settings::factory(); - + + $temp_xml_bs = $settings->temp_xml."_bs"; + $temp_xml_cs1 = $settings->temp_xml."_cs1"; + $temp_xml_cs2 = $settings->temp_xml."_cs2"; + $temp_xml_gr = $settings->temp_xml."_gr"; + if( file_exists( $settings->temp_data ) ) @unlink( $settings->temp_data ); // BSを処理する if( $settings->bs_tuners != 0 ) { // 録画重複チェック $num = DBRecord::countRecords( RESERVE_TBL, "WHERE complete = '0' AND (type = 'BS' OR type = 'CS') AND endtime > now() AND starttime < addtime( now(), '00:03:05')" ); - if( ($num == 0) && !file_exists($settings->temp_xml."_bs") ) { - $cmdline = "CHANNEL=211 DURATION=180 TYPE=BS TUNER=0 MODE=0 OUTPUT=".$settings->temp_data." ".DO_RECORD . " >/dev/null 2>&1"; + if( ($num == 0) && check_file($temp_xml_bs) ) { + $cmdline = "CHANNEL=".BS_EPG_CHANNEL." DURATION=180 TYPE=BS TUNER=0 MODE=0 OUTPUT=".$settings->temp_data." ".DO_RECORD . " >/dev/null 2>&1"; exec( $cmdline ); - $cmdline = $settings->epgdump." /BS ".$settings->temp_data." ".$settings->temp_xml."_bs"; + $cmdline = $settings->epgdump." /BS ".$settings->temp_data." ".$temp_xml_bs; exec( $cmdline ); - $cmdline = INSTALL_PATH."/storeProgram.php BS ".$settings->temp_xml."_bs"; + $cmdline = INSTALL_PATH."/storeProgram.php BS ".$temp_xml_bs; exec( $cmdline ); if( file_exists( $settings->temp_data ) ) @unlink( $settings->temp_data ); } @@ -27,22 +51,22 @@ // CS if ($settings->cs_rec_flg != 0) { $num = DBRecord::countRecords( RESERVE_TBL, "WHERE complete = '0' AND (type = 'BS' OR type = 'CS') AND endtime > now() AND starttime < addtime( now(), '00:03:05')" ); - if( ($num == 0) && !file_exists($settings->temp_xml."_cs01") ) { - $cmdline = "CHANNEL=CS8 DURATION=120 TYPE=CS TUNER=0 MODE=0 OUTPUT=".$settings->temp_data." ".DO_RECORD . " >/dev/null 2>&1"; + if( ($num == 0) && check_file($temp_xml_cs1) ) { + $cmdline = "CHANNEL=".CS1_EPG_CHANNEL." DURATION=120 TYPE=CS TUNER=0 MODE=0 OUTPUT=".$settings->temp_data." ".DO_RECORD . " >/dev/null 2>&1"; exec( $cmdline ); - $cmdline = $settings->epgdump." /CS ".$settings->temp_data." ".$settings->temp_xml."_cs01"; + $cmdline = $settings->epgdump." /CS ".$settings->temp_data." ".$temp_xml_cs1; exec( $cmdline ); - $cmdline = INSTALL_PATH."/storeProgram.php CS ".$settings->temp_xml."_cs01"; + $cmdline = INSTALL_PATH."/storeProgram.php CS ".$temp_xml_cs1; exec( $cmdline ); if( file_exists( $settings->temp_data ) ) @unlink( $settings->temp_data ); } $num = DBRecord::countRecords( RESERVE_TBL, "WHERE complete = '0' AND (type = 'BS' OR type = 'CS') AND endtime > now() AND starttime < addtime( now(), '00:03:05')" ); - if( ($num == 0) && !file_exists($settings->temp_xml."_cs02") ) { - $cmdline = "CHANNEL=CS24 DURATION=120 TYPE=CS TUNER=0 MODE=0 OUTPUT=".$settings->temp_data." ".DO_RECORD . " >/dev/null 2>&1"; + if( ($num == 0) && check_file($temp_xml_cs2) ) { + $cmdline = "CHANNEL=".CS2_EPG_CHANNEL." DURATION=120 TYPE=CS TUNER=0 MODE=0 OUTPUT=".$settings->temp_data." ".DO_RECORD . " >/dev/null 2>&1"; exec( $cmdline ); - $cmdline = $settings->epgdump." /CS ".$settings->temp_data." ".$settings->temp_xml."_cs02"; + $cmdline = $settings->epgdump." /CS ".$settings->temp_data." ".$temp_xml_cs2; exec( $cmdline ); - $cmdline = INSTALL_PATH."/storeProgram.php CS ".$settings->temp_xml."_cs02"; + $cmdline = INSTALL_PATH."/storeProgram.php CS ".$temp_xml_cs2; exec( $cmdline ); if( file_exists( $settings->temp_data ) ) @unlink( $settings->temp_data ); } @@ -54,12 +78,12 @@ foreach( $GR_CHANNEL_MAP as $key=>$value ){ // 録画重複チェック $num = DBRecord::countRecords( RESERVE_TBL, "WHERE complete = '0' AND type = 'GR' AND endtime > now() AND starttime < addtime( now(), '00:01:10')" ); - if( ($num == 0) && !file_exists($settings->temp_xml."_".$value."") ) { + if( ($num == 0) && check_file($temp_xml_gr.$value."") ) { $cmdline = "CHANNEL=".$value." DURATION=60 TYPE=GR TUNER=0 MODE=0 OUTPUT=".$settings->temp_data." ".DO_RECORD . " >/dev/null 2>&1"; exec( $cmdline ); - $cmdline = $settings->epgdump." ".$key." ".$settings->temp_data." ".$settings->temp_xml."_".$value.""; + $cmdline = $settings->epgdump." ".$key." ".$settings->temp_data." ".$temp_xml_gr.$value.""; exec( $cmdline ); - $cmdline = INSTALL_PATH."/storeProgram.php GR ".$settings->temp_xml."_".$value.""; + $cmdline = INSTALL_PATH."/storeProgram.php GR ".$temp_xml_gr.$value.""; exec( $cmdline ); if( file_exists( $settings->temp_data ) ) @unlink( $settings->temp_data ); } -- 2.11.0