2011年7月23日土曜日

EPG放送局変動対処パッチ

番組表の異常 で述べた症状への対処パッチをあげる。
ただし本当に放送局名変更があった場合にその局のEPGが更新されなくなる副作用があるので注意すること。
放送局名変更があった場合は、放送局名をDB上で直接変更するかこのパッチを一時的に戻しgetepg.phpを動かせばよい。

本問題は、PT2での正常受信が確保できない限り根治しない。
このパッチは、あくまで対処療法である。


*** storeProgram.inc.old.php 2010-09-04 21:08:26.074996000 +0900
--- storeProgram.inc.php 2011-07-22 23:09:27.217377015 +0900
***************
*** 65,73 ****
     }
    }
    else {
!    // 存在した場合も、とりあえずチャンネル名は更新する
     $rec = new DBRecord(CHANNEL_TBL, "channel_disc", $disc );
     $rec->name = $ch->{'display-name'};
    }
    }
    catch( Exception $e ) {
--- 65,81 ----
     }
    }
    else {
! /*   // 存在した場合も、とりあえずチャンネル名は更新する
     $rec = new DBRecord(CHANNEL_TBL, "channel_disc", $disc );
     $rec->name = $ch->{'display-name'};
+ */
+    // チャンネル名の更新ではない場合に被害が大きいのでログを残して終了する
+    $rec = new DBRecord(CHANNEL_TBL, "channel_disc", $disc );
+    if( $rec->name != $ch->{'display-name'} ){
+     reclog( 'getepg::チャンネル名が違います('.$disc.' [OLD]'.$rec->name.' -> [NEW]'.$ch->{'display-name'}.')', E_ERROR );
+ //    $new_name = $xmlfile.'.'.date("Y-m-d H:i:s", time());
+ //    rename( $xmlfile, $new_name );
+     return; //信頼できないデータなので終了
    }
    }
    catch( Exception $e ) {

0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。