Mercurial > epgrec.yaz
diff Reservation.class.php @ 137:a18df712fc7e
merged with upstream
author | Yoshiki Yazawa <yaz@honeyplanet.jp> |
---|---|
date | Sun, 21 Mar 2010 03:15:00 +0900 |
parents | b172a0b1ea48 9c5e597ef6c6 |
children | 0ded1d3bd448 |
line wrap: on
line diff
--- a/Reservation.class.php Mon Mar 15 01:39:14 2010 +0900 +++ b/Reservation.class.php Sun Mar 21 03:15:00 2010 +0900 @@ -3,6 +3,7 @@ include_once( INSTALL_PATH . "/DBRecord.class.php" ); include_once( INSTALL_PATH . "/reclib.php" ); include_once( INSTALL_PATH . "/Settings.class.php" ); +include_once( INSTALL_PATH . "/recLog.inc.php" ); // 予約クラス @@ -77,7 +78,7 @@ $crec = new DBRecord( CHANNEL_TBL, "id", $channel_id ); // 既存予約数 = TUNER番号 - $tuners = ($crec->type == "GR") ? $settings->gr_tuners : $settings->bs_tuners; + $tuners = ($crec->type == "GR") ? (int)($settings->gr_tuners) : (int)($settings->bs_tuners); $type_str = ($crec->type == "GR") ? "type = 'GR' " : "(type = 'BS' OR type = 'CS') "; $battings = DBRecord::countRecords( RESERVE_TBL, "WHERE complete = '0' ". @@ -177,8 +178,7 @@ if( $duration < ($settings->former_time + 60) ) { // 60秒以下の番組は弾く throw new Exception( "終わりつつある/終わっている番組です" ); } - - + // ここからファイル名生成 /* %TITLE% 番組タイトル @@ -203,7 +203,7 @@ $fn_title = mb_ereg_replace("[ \./\*:<>\?\\|()\'\"&]","_", trim($title) ); // %TITLE% - $filename = str_replace("%TITLE%", $fn_title, $filename); + $filename = mb_str_replace("%TITLE%", trim($title), $filename); // %ST% 開始日時 $filename = str_replace("%ST%",date("YmdHis", $start_time), $filename ); // %ET% 終了日時 @@ -229,13 +229,17 @@ // %SEC% 開始秒 $filename = str_replace("%SEC%",date("s", $start_time), $filename ); // %DURATION% 録画時間(秒) - $filename = str_replace("%DURATION%","".$duration, $filename ); - + $filename = mb_str_replace("%DURATION%","".$duration, $filename ); + + // あると面倒くさそうな文字を全部_に + $filename = preg_replace("/[ \.\/\*:<>\?\\|()\'\"&]/u","_", trim($filename) ); + // 文字コード変換 if( defined("FILESYSTEM_ENCODING") ) { // $filename = mb_convert_encoding( $filename, FILESYSTEM_ENCODING, "UTF-8" ); $filename = mb_convert_encoding( $filename, FILESYSTEM_ENCODING, "auto" ); } + $filename .= $RECORD_MODE["$mode"]['suffix']; $thumbname = $filename.".jpg"; @@ -299,6 +303,7 @@ } else { $rrec->delete(); + reclog( "Reservation::custom atの実行に失敗した模様", E_ERROR); throw new Exception("AT実行エラー"); } // job番号を取り出す @@ -312,11 +317,13 @@ if( $key !== false ) { if( is_numeric( $rarr[$key+1]) ) { $rrec->job = $rarr[$key+1]; + reclog( "Reservation::custom ジョブ番号".$rrec->job."に録画ジョブを登録"); return $rrec->job; // 成功 } } // エラー $rrec->delete(); + reclog( "Reservation::custom job番号の取得に失敗",E_ERROR ); throw new Exception( "job番号の取得に失敗" ); } catch( Exception $e ) { @@ -348,13 +355,16 @@ } if( ! $rec->complete ) { // 未実行の予約である - if( toTimestamp($rec->starttime) < (time() + PADDING_TIME + $settings->former_time) ) - throw new Exception("過去の録画予約です"); + if( toTimestamp($rec->starttime) < (time() + PADDING_TIME + $settings->former_time) ) { + reclog("Reservation::cancel 未実行の予約の取り消しが実行された", E_ERROR ); + } exec( $settings->atrm . " " . $rec->job ); + reclog("Reservation::cancel ジョブ番号".$rec->job."を削除"); } $rec->delete(); } catch( Exception $e ) { + reclog("Reservation::cancel 予約キャンセルでDB接続またはアクセスに失敗した模様", E_ERROR ); throw $e; } }