changeset 80:cce6f88590fd

add: db table updater script.
author Sushi-k <epgrec@park.mda.or.jp>
date Thu, 25 Feb 2010 17:09:36 +0900
parents 6eabffb0ccac
children 322bba0d33e5
files Settings.class.php config.php.sample do-record.sh.test epgrec_upgrade.php templates/envSetting.html upgrade_to_201002.php
diffstat 6 files changed, 159 insertions(+), 46 deletions(-) [+]
line wrap: on
line diff
--- a/Settings.class.php	Wed Feb 24 20:27:46 2010 +0900
+++ b/Settings.class.php	Thu Feb 25 17:09:36 2010 +0900
@@ -18,7 +18,11 @@
 				$obj->autorec_mode = 0;
 				$obj->save();
 			}
-			
+			// CSの録画
+			if( $obj->exists("cs_rec_flg") == 0 ) {
+				$obj->cs_rec_flg = 0;
+				$obj->save();
+			}
 			return $obj;
 		}
 		else {
@@ -143,4 +147,4 @@
 		$this->asXML(INSTALL_PATH . self::CONFIG_XML);
 	}
 }
-?>
\ No newline at end of file
+?>
--- a/config.php.sample	Wed Feb 24 20:27:46 2010 +0900
+++ b/config.php.sample	Thu Feb 25 17:09:36 2010 +0900
@@ -43,13 +43,12 @@
 		'suffix' => '.ts',	// ファイル名のサフィックス
 	),
 	
-	/* Examples is as follows.
-	
 	1 => array(
-		'name' => 'Min PID',
-		'suffix' => '_tss.ts',
+		'name' => 'Minimum TS',	// 最小のTS
+		'suffix' => '_tss.ts',	// do-record.shのカスタマイズが必要
 	),
 	
+	/* Example is as follows.
 	2 => array(
 		'name' => '12Mbps MPEG4',
 		'suffix' => '.avi',
@@ -216,7 +215,7 @@
 	"type varchar(8) not null default 'GR',".				// 種別(GR/BS/CS)
 	"channel varchar(10) not null default '0',".			// チャンネル
 	"title varchar(512) not null default 'none',".			// タイトル
-	"description varchar(512) not null default ' ',".		// 説明 text->varchar
+	"description varchar(512) not null default 'none',".	// 説明 text->varchar
 	"category_id integer not null default '0',".			// カテゴリID
 	"starttime datetime not null default '1970-01-01 00:00:00',".	// 開始時刻
 	"endtime datetime not null default '1970-01-01 00:00:00',".		// 終了時刻
@@ -226,7 +225,9 @@
 	"reserve_disc varchar(128) not null default 'none',".	// 識別用hash
 	"autorec integer not null default '0',".				// キーワードID
 	"mode integer not null default '0',".						//録画モード
-	"index reserve_idx (channel_disc, starttime)"			// インデックス
+	"index reserve_ch_idx (channel_disc),".			// インデックス
+	"index reserve_st_idx (starttime)".
+	""
 );
 
 
@@ -244,8 +245,9 @@
 	"endtime datetime not null default '1970-01-01 00:00:00',".		// 終了時刻
 	"program_disc varchar(128) not null default 'none',".	 		// 識別用hash
 	"autorec boolean not null default '1',".					// 自動録画有効無効
-	"index program_idx (channel_disc, starttime)"			// インデックス
-
+	"index program_ch_idx (channel_disc),".			// インデックス
+	"index program_st_idx (starttime)".
+	""
 );
 
 
@@ -274,6 +276,6 @@
 	"category_id integer not null default '0',".			// カテゴリID
 	"use_regexp boolean not null default '0',".				// 正規表現を使用するなら1
 	"autorec_mode integer not null default '0',".						// 自動録画のモード02/23/2010追加
-	"weekofday enum ('0','1','2','3','4','5','6','7' ) default '7'"		// 曜日
+	"weekofday enum ('0','1','2','3','4','5','6','7' ) default '7'"		// 曜日、同追加
 );
 ?>
\ No newline at end of file
--- a/do-record.sh.test	Wed Feb 24 20:27:46 2010 +0900
+++ b/do-record.sh.test	Thu Feb 25 17:09:36 2010 +0900
@@ -5,9 +5,10 @@
 echo "TUNER : $TUNER"
 echo "TYPE : $TYPE"
 echo "MODE : $MODE"
+echo "SID  : $SID"
 
 RECORDER=/usr/local/bin/recpt1
 B25=/usr/local/bin/b25_bcas
 
 /bin/date >${OUTPUT}
-#$RECORDER $CHANNEL $DURATION ${OUTPUT} --b25 --strip >/dev/null
+printenv >>${OUTPUT}
--- a/epgrec_upgrade.php	Wed Feb 24 20:27:46 2010 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,32 +0,0 @@
-#!/usr/bin/php
-<?php
-include_once('config.php');
-include_once(INSTALL_PATH . '/Settings.class.php' );
-
-$settings = Settings::factory();
-
- $dbh = mysql_connect( $settings->db_host, $settings->db_user, $settings->db_pass );
- if( $dbh !== false ) {
-	
-	$sqlstr = "use ".$settings->db_name;
-	mysql_query( $sqlstr );
-	
-	$sqlstr = "set NAMES 'utf8'";
-	mysql_query( $sqlstr );
-	
-	// RESERVE_TBL
-	// description -> text
-	$sqlstr = "alter table ".RESERVE_TBL." modify description text default null;";
-	mysql_query( $sqlstr );
-	// path -> blob
-	$sqlstr = "alter table ".RESERVE_TBL." modify path blob default null;";
-	mysql_query( $sqlstr );
-	
-	// PROGRAM_TBL
-	// descripton -> text
-	$sqlstr = "alter table ".PROGRAM_TBL." modify description text default null;";
-	mysql_query( $sqlstr );
- }
- else exit( "Can't connect DB\n");
-
-?>
\ No newline at end of file
--- a/templates/envSetting.html	Wed Feb 24 20:27:46 2010 +0900
+++ b/templates/envSetting.html	Thu Feb 25 17:09:36 2010 +0900
@@ -115,9 +115,9 @@
 </div>
 
 
-<h3>キーワード自動録画の録画モード</h3>
+<h3>優先する録画モード</h3>
 <div class="setting">
-<div class="caption">キーワード自動録画を行う番組の録画モードを設定します。config.phpの$RECORD_MODEに複数の録画モードを登録しているのであれば、この設定でキーワード自動録画の録画モードを変更できます。デフォルトはモード0です。
+<div class="caption">キーワード自動録画や簡易録画を行う番組の録画モードを設定します。config.phpの$RECORD_MODEに複数の録画モードを登録し、do-record.shをカスタマイズているのであれば、その録画モードを優先して利用できます。キーワード自動録画はキーワード登録時に録画モードを設定することもできます。デフォルトはモード0です。
 </div>
 <select name="autorec_mode" id="id_autorec_mode" >
 {foreach from=$record_mode item=mode name=recmode}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/upgrade_to_201002.php	Thu Feb 25 17:09:36 2010 +0900
@@ -0,0 +1,138 @@
+#!/usr/bin/php
+<?php
+include_once('config.php');
+include_once(INSTALL_PATH . '/Settings.class.php' );
+
+
+// mysqli::multi_queryは動作がいまいちなので使わない
+
+function multi_query( $sqlstrs, $dbh ) {
+	$error = false;
+	
+	foreach( $sqlstrs as $sqlstr ) {
+		$res = mysql_query( $sqlstr );
+		if( $res === FALSE ) {
+			echo "failed: ". $sqlstr . "\n";
+			$error = true;
+		}
+	}
+	return $error;
+}
+
+
+$settings = Settings::factory();
+$dbh = mysql_connect( $settings->db_host, $settings->db_user, $settings->db_pass );
+if( $dbh !== FALSE ) {
+
+	$sqlstr = "use ".$settings->db_name;
+	mysql_query( $sqlstr );
+
+	$sqlstr = "set NAMES 'utf8'";
+	mysql_query( $sqlstr );
+	
+	// RESERVE_TBL
+
+	$sqlstrs = array (
+	 "alter table ".$settings->tbl_prefix.RESERVE_TBL." modify  channel_disc varchar(128) not null default 'none';",	// channel disc
+	 "alter table ".$settings->tbl_prefix.RESERVE_TBL." modify  channel_id integer not null  default '0';",			// channel ID
+	 "alter table ".$settings->tbl_prefix.RESERVE_TBL." modify  program_id integer not null default '0';",				// Program ID
+	 "alter table ".$settings->tbl_prefix.RESERVE_TBL." modify  type varchar(8) not null default 'GR';",				// 種別(GR/BS/CS)
+	 "alter table ".$settings->tbl_prefix.RESERVE_TBL." modify  channel varchar(10) not null default '0';",			// チャンネル
+	 "alter table ".$settings->tbl_prefix.RESERVE_TBL." modify  title varchar(512) not null default 'none';",			// タイトル
+	 "alter table ".$settings->tbl_prefix.RESERVE_TBL." modify  description varchar(512) not null default 'none';",		// 説明 text->varchar
+	 "alter table ".$settings->tbl_prefix.RESERVE_TBL." modify  category_id integer not null default '0';",			// カテゴリID
+	 "alter table ".$settings->tbl_prefix.RESERVE_TBL." modify  starttime datetime not null default '1970-01-01 00:00:00';",	// 開始時刻
+	 "alter table ".$settings->tbl_prefix.RESERVE_TBL." modify  endtime datetime not null default '1970-01-01 00:00:00';",		// 終了時刻
+	 "alter table ".$settings->tbl_prefix.RESERVE_TBL." modify  job integer not null default '0';",					// job番号
+	 "alter table ".$settings->tbl_prefix.RESERVE_TBL." modify  path blob default null;",								// 録画ファイルパス
+	 "alter table ".$settings->tbl_prefix.RESERVE_TBL." modify  complete boolean not null default '0';",				// 完了フラグ
+	 "alter table ".$settings->tbl_prefix.RESERVE_TBL." modify  reserve_disc varchar(128) not null default 'none';",	// 識別用hash
+	 "alter table ".$settings->tbl_prefix.RESERVE_TBL." modify  autorec integer not null default '0';",				// キーワードID
+	 "alter table ".$settings->tbl_prefix.RESERVE_TBL." modify  mode integer not null default '0';",					//録画モード
+	);
+	
+	if( multi_query( $sqlstrs, $dbh ) ) {
+		echo "予約テーブルのアップデートに失敗\n";
+	}
+	
+	$sqlstrs = array(
+	 "create index reserve_ch_idx on ".$settings->tbl_prefix.RESERVE_TBL."  (channel_disc);",
+	 "create index reserve_st_idx on ".$settings->tbl_prefix.RESERVE_TBL."  (starttime);",
+	);
+	
+	if( multi_query( $sqlstrs, $dbh ) ) {
+		echo "予約テーブルにインデックスが作成できません\n";
+	}
+	
+	// PROGRAM_TBL
+	
+	$sqlstrs = array (
+		"alter table ".$settings->tbl_prefix.PROGRAM_TBL." modify channel_disc varchar(128) not null default 'none';",	// channel disc
+		"alter table ".$settings->tbl_prefix.PROGRAM_TBL." modify channel_id integer not null default '0';",				// channel ID
+		"alter table ".$settings->tbl_prefix.PROGRAM_TBL." modify type varchar(8) not null default 'GR';",				// 種別(GR/BS/CS)
+		"alter table ".$settings->tbl_prefix.PROGRAM_TBL." modify channel varchar(10) not null default '0';",			// チャンネル
+		"alter table ".$settings->tbl_prefix.PROGRAM_TBL." modify title varchar(512) not null default 'none';",			// タイトル
+		"alter table ".$settings->tbl_prefix.PROGRAM_TBL." modify description varchar(512) not null default 'none';",	// 説明 text->varchar
+		"alter table ".$settings->tbl_prefix.PROGRAM_TBL." modify category_id integer not null default '0';",			// カテゴリID
+		"alter table ".$settings->tbl_prefix.PROGRAM_TBL." modify starttime datetime not null default '1970-01-01 00:00:00';",	// 開始時刻
+		"alter table ".$settings->tbl_prefix.PROGRAM_TBL." modify endtime datetime not null default '1970-01-01 00:00:00';",		// 終了時刻
+		"alter table ".$settings->tbl_prefix.PROGRAM_TBL." modify program_disc varchar(128) not null default 'none';",	 		// 識別用hash
+		"alter table ".$settings->tbl_prefix.PROGRAM_TBL." modify autorec boolean not null default '1';",					// 自動録画有効無効
+	);
+	
+	if( multi_query( $sqlstrs, $dbh ) ) {
+		echo "番組テーブルのアップデートに失敗\n";
+	}
+	
+	$sqlstrs = array(
+	 "create index program_ch_idx on ".$settings->tbl_prefix.PROGRAM_TBL." (channel_disc);",		// インデックス
+	 "create index program_st_idx on ".$settings->tbl_prefix.PROGRAM_TBL." (starttime);",			// インデックス
+	);
+	
+	if( multi_query( $sqlstrs, $dbh ) ) {
+		echo "番組テーブルにインデックスが作成できません\n";
+	}
+	
+	// CHANNEL_TBL
+	
+	$sqlstrs = array(
+	"alter table ".$settings->tbl_prefix.CHANNEL_TBL." modify type varchar(8) not null default 'GR';",				// 種別
+	"alter table ".$settings->tbl_prefix.CHANNEL_TBL." modify channel varchar(10) not null default '0';",			// channel
+	"alter table ".$settings->tbl_prefix.CHANNEL_TBL." modify name varchar(512) not null default 'none';",			// 表示名
+	"alter table ".$settings->tbl_prefix.CHANNEL_TBL." modify channel_disc varchar(128) not null default 'none';",	// 識別用hash
+	"alter table ".$settings->tbl_prefix.CHANNEL_TBL." add sid varchar(64) not null default 'hd'",				// サービスID用02/23/2010追加
+	);
+	
+	if( multi_query( $sqlstrs, $dbh ) ) {
+		echo "チャンネルテーブルのアップデートに失敗\n";
+	}
+	
+	// CATEGORY_TBL
+	
+	$sqlstrs  = array(
+	"alter table ".$settings->tbl_prefix.CATEGORY_TBL." modify name_jp varchar(512) not null default 'none';",		// 表示名
+	"alter table ".$settings->tbl_prefix.CATEGORY_TBL." modify name_en varchar(512) not null default 'none';",		// 同上
+	"alter table ".$settings->tbl_prefix.CATEGORY_TBL." modify category_disc varchar(128) not null default 'none'",	// 識別用hash
+	);
+	if( multi_query( $sqlstrs, $dbh ) ) {
+		echo "カテゴリテーブルのアップデートに失敗\n";
+	}
+	
+	// KEYWORD_TBL
+	
+	$sqlstrs = array(
+	 "alter table ".$settings->tbl_prefix.KEYWORD_TBL." modify keyword varchar(512) not null default '*';",			// 表示名
+	 "alter table ".$settings->tbl_prefix.KEYWORD_TBL." modify type varchar(8) not null default '*';",				// 種別
+	 "alter table ".$settings->tbl_prefix.KEYWORD_TBL." modify channel_id integer not null default '0';",				// channel ID
+	 "alter table ".$settings->tbl_prefix.KEYWORD_TBL." modify category_id integer not null default '0';",			// カテゴリID
+	 "alter table ".$settings->tbl_prefix.KEYWORD_TBL." modify use_regexp boolean not null default '0';",				// 正規表現を使用するなら1
+	 "alter table ".$settings->tbl_prefix.KEYWORD_TBL." add autorec_mode integer not null default '0';",						// 自動録画のモード02/23/2010追加
+	 "alter table ".$settings->tbl_prefix.KEYWORD_TBL." add weekofday enum ('0','1','2','3','4','5','6','7' ) default '7'",		// 曜日、同追加
+	);
+	if( multi_query( $sqlstrs, $dbh ) ) {
+		echo "キーワードテーブルのアップデートに失敗\n";
+	}
+}
+else
+	exit( "DBの接続に失敗\n" );
+?>
\ No newline at end of file