Mercurial > epgrec.yaz
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