OSDN Git Service

fix: 録画中にEPGの変更があったときにキャンセルされないよう変更
authorepgrec@park.mda.or.jp <yoneda@recorder.localnet.mda.or.jp>
Sun, 4 Apr 2010 13:49:13 +0000 (22:49 +0900)
committerepgrec@park.mda.or.jp <yoneda@recorder.localnet.mda.or.jp>
Sun, 4 Apr 2010 13:49:13 +0000 (22:49 +0900)
recorder.php
storeProgram.inc.php

index f26ad4b..e3fffe6 100755 (executable)
@@ -156,6 +156,7 @@ try{
        
        $proch = false;
        if( ( $proch = epgrec_exec(DO_RECORD) ) !== false ) {
+               reclog("recorder:: 録画ID".$rrec->id .":".$rrec->type.$rrec->channel.$rrec->title."の録画開始" );
                // 録画完了待ち
                $rec_cont = true;
                while( $rec_cont ){
@@ -195,7 +196,6 @@ try{
        }
        
        // 予定より短いようなら終了時間を現在に書き換える
-       
        if( time() < $endtime ) {
                $rrec->endtime = toDatetime( time() );
        }
index aec1005..a209c16 100755 (executable)
@@ -1,4 +1,5 @@
 <?php
+include_once( INSTALL_PATH . "/reclib.php" );
 
 function garbageClean() {
        // 不要なプログラムの削除
@@ -25,7 +26,6 @@ function doKeywordReservation() {
        foreach( $arr as $val ) {
                try {
                        $val->reservation();
-//                     reclog( "getepg::キーワードID".$val->id."の録画が予約された");
                }
                catch( Exception $e ) {
                        // 無視
@@ -35,6 +35,7 @@ function doKeywordReservation() {
 
 function storeProgram( $type, $xmlfile ) {
        global $BS_CHANNEL_MAP, $GR_CHANNEL_MAP, $CS_CHANNEL_MAP;
+       global $settings;
        
        // チャンネルマップファイルの準備
        $map = array();
@@ -149,9 +150,15 @@ function storeProgram( $type, $xmlfile ) {
                                                // 自動録画予約された番組は放映時間変更と同時にいったん削除する
                                                try {
                                                        $reserve = new DBRecord(RESERVE_TBL, "program_id", $rec->id );
-                                                       if( $reserve->autorec ) {
-                                                               reclog( "getepg::録画ID".$reserve->id.":".$reserve->type.$reserve->channel.$reserve->title."は時間変更の可能性があり予約取り消し" );
-                                                               Reservation::cancel( $reserve->id );
+                                                       // すでに開始されている録画は無視する
+                                                       if( time() > (toTimestamp($reserve->starttime) - PADDING_TIME - $settings->former_time) ) {
+                                                               reclog( "getepg::録画ID".$reserve->id.":".$reserve->type.$reserve->channel.$reserve->title."は録画開始後に時間変更が発生した可能性がある", EPGREC_WARN );
+                                                       }
+                                                       else {
+                                                               if( $reserve->autorec ) {
+                                                                       reclog( "getepg::録画ID".$reserve->id.":".$reserve->type.$reserve->channel.$reserve->title."は時間変更の可能性があり予約取り消し" );
+                                                                       Reservation::cancel( $reserve->id );
+                                                               }
                                                        }
                                                }
                                                catch( Exception $e ) {