OSDN Git Service

mod: 並列テスト中
authorSushi-k <epgrec@park.mda.or.jp>
Mon, 1 Mar 2010 07:00:20 +0000 (16:00 +0900)
committerSushi-k <epgrec@park.mda.or.jp>
Mon, 1 Mar 2010 07:00:20 +0000 (16:00 +0900)
config.php.sample
getepg.php

index d0e13a3..2634109 100755 (executable)
@@ -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
+?>
index aefd510..a0ca2b5 100755 (executable)
@@ -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 );
        }
        // 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 );
                }
        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 );
                }