Mercurial > epgrec.yaz
diff storeProgram.inc.php @ 137:a18df712fc7e
merged with upstream
author | Yoshiki Yazawa <yaz@honeyplanet.jp> |
---|---|
date | Sun, 21 Mar 2010 03:15:00 +0900 |
parents | 9c5e597ef6c6 |
children | 481e789605e3 |
line wrap: on
line diff
--- a/storeProgram.inc.php Mon Mar 15 01:39:14 2010 +0900 +++ b/storeProgram.inc.php Sun Mar 21 03:15:00 2010 +0900 @@ -9,7 +9,12 @@ // 8日以上先のデータがあれば消す $arr = array(); - $arr = DBRecord::createRecords( PROGRAM_TBL, "WHERE starttime > adddate( now(), 8 )" ); + $arr = DBRecord::createRecords( PROGRAM_TBL, "WHERE starttime > adddate( now(), 8 ) "); + foreach( $arr as $val ) $val->delete(); + + // 8日以上前のログを消す + $arr = array(); + $arr = DBRecord::createRecords( LOG_TBL, "WHERE endtime < subdate( now(), 8 )" ); foreach( $arr as $val ) $val->delete(); } @@ -20,15 +25,17 @@ foreach( $arr as $val ) { try { $val->reservation(); + reclog( "getepg::キーワードID".$val->id."を予約"); } catch( Exception $e ) { - // 無視 + // 無視 } } } function storeProgram( $type, $xmlfile ) { global $BS_CHANNEL_MAP, $GR_CHANNEL_MAP, $CS_CHANNEL_MAP; + // チャンネルマップファイルの準備 $map = array(); if( $type == "BS" ) $map = $BS_CHANNEL_MAP; @@ -38,6 +45,7 @@ // XML parse $xml = @simplexml_load_file( $xmlfile ); if( $xml === false ) { + reclog( "getepg::".$xmlfile."が作成されなかった模様", E_ERROR ); return; // XMLが読み取れないなら何もしない } // channel抽出 @@ -63,7 +71,7 @@ } } catch( Exception $e ) { - // 無視 + reclog( "getepg::DBの接続またはチャンネルテーブルの書き込みに失敗", E_ERROR ); } } // channel 終了 @@ -71,10 +79,21 @@ // programme 取得 foreach( $xml->programme as $program ) { + $channel_rec = null; + $channel_disc = $program['channel']; if( ! array_key_exists( "$channel_disc", $map ) ) continue; + $channel = $map["$channel_disc"]; - $channel = $map["$channel_disc"]; + try { + $channel_rec = new DBRecord(CHANNEL_TBL, "channel_disc", "$channel_disc" ); + } + catch( Exception $e ) { + reclog( "getepg::チャンネルレコードが発見できない", E_ERROR ); + } + if( $channel_rec == null ) continue; // あり得ないことが起きた + if( $channel_rec->skip == 1 ) continue; // 受信しないチャンネル + $starttime = str_replace(" +0900", '', $program['start'] ); $endtime = str_replace( " +0900", '', $program['stop'] ); $title = $program->title; @@ -101,8 +120,7 @@ } else $cat_rec = new DBRecord(CATEGORY_TBL, "category_disc" , $category_disc ); - // - $channel_rec = new DBRecord(CHANNEL_TBL, "channel_disc", $channel_disc ); + // $num = DBRecord::countRecords(PROGRAM_TBL, "WHERE program_disc = '".$program_disc."'" ); if( $num == 0 ) { // 新規番組 @@ -118,13 +136,15 @@ try { $reserve = new DBRecord(RESERVE_TBL, "program_id", $rec->id ); if( $reserve->autorec ) { + reclog( "getepg::録画ID".$reserve->id."は時間変更の可能性あり予約を取り消し"); Reservation::cancel( $reserve->id ); } } catch( Exception $e ) { - //無視 + // 無視 } // 番組削除 + reclog( "getepg::放送時間重複が発生した番組ID".$rec->id."を削除" ); $rec->delete(); } } @@ -150,9 +170,10 @@ } } catch(Exception $e) { + reclog( "getepg::DBの入出力に問題が生じた模様", E_ERROR ); exit( $e->getMessage() ); } } // Programme取得完了 } -?> \ No newline at end of file +?>