チェンジセット 94: trunk/install
- コミット日時:
- 2010/02/28 22:28:26 (15 年前)
- ファイル:
-
- trunk/install/mktable.sqlite.txt (追加)
- trunk/install/perl/addatq.pl (更新) (9 diffs)
- trunk/install/perl/addpidatq.pl (更新) (5 diffs)
- trunk/install/perl/captureimagemaker.pl (更新) (4 diffs)
- trunk/install/perl/changestbch.pl (更新) (2 diffs)
- trunk/install/perl/db (追加)
- trunk/install/perl/db/Pg.pl (追加)
- trunk/install/perl/db/SQLite.pl (追加)
- trunk/install/perl/deletemovie.pl (更新) (1 diff)
- trunk/install/perl/digitaltvrecording.pl (更新) (5 diffs)
- trunk/install/perl/envpolicyupdate.pl (更新) (2 diffs)
- trunk/install/perl/folprep.pl (更新) (1 diff)
- trunk/install/perl/foltia_conf1.pl.template (更新) (1 diff)
- trunk/install/perl/foltialib.pl (更新) (10 diffs)
- trunk/install/perl/getxml2db.pl (更新) (10 diffs)
- trunk/install/perl/ipodtranscode.pl (更新) (11 diffs)
- trunk/install/perl/mklocalizeddir.pl (更新) (2 diffs)
- trunk/install/perl/recwrap.pl (更新) (12 diffs)
- trunk/install/perl/schedulecheck.pl (更新) (4 diffs)
- trunk/install/perl/singletranscode.pl (更新) (9 diffs)
- trunk/install/perl/tvrecording.pl (更新) (3 diffs)
- trunk/install/perl/updatem2pfiletable.pl (更新) (3 diffs)
- trunk/install/perl/xmltv2foltia.pl (更新) (7 diffs)
- trunk/install/php/StarlightBreaker/sb-edit.php (更新) (1 diff)
- trunk/install/php/accountregist.php (更新) (3 diffs)
- trunk/install/php/delepgp.php (更新) (2 diffs)
- trunk/install/php/deletemovie.php (更新) (4 diffs)
- trunk/install/php/delreserve.php (更新) (5 diffs)
- trunk/install/php/folcast.php (更新) (5 diffs)
- trunk/install/php/foltia_config2.php.template (更新) (1 diff)
- trunk/install/php/foltialib.php (更新) (19 diffs)
- trunk/install/php/graytable.css (更新) (1 diff)
- trunk/install/php/index.php (更新) (9 diffs)
- trunk/install/php/listreserve.php (更新) (15 diffs)
- trunk/install/php/m.php (更新) (8 diffs)
- trunk/install/php/reservecomp.php (更新) (4 diffs)
- trunk/install/php/reserveepg.php (更新) (3 diffs)
- trunk/install/php/reserveepgcomp.php (更新) (3 diffs)
- trunk/install/php/reserveprogram.php (更新) (6 diffs)
- trunk/install/php/selectcaptureimage.php (更新) (2 diffs)
- trunk/install/php/showlib.php (更新) (4 diffs)
- trunk/install/php/showlibc.php (更新) (6 diffs)
- trunk/install/php/showplaylist.php (更新) (6 diffs)
- trunk/install/php/titlelist.php (更新) (4 diffs)
- trunk/install/php/view_syabas.php (更新) (1 diff)
- trunk/install/php/viewepg.php (更新) (6 diffs)
凡例:
- 変更無し
- 追加
- 削除
- 更新
- コピー
- 移動
trunk/install/perl/addatq.pl
r1 r94 16 16 use DBI; 17 17 use DBD::Pg; 18 use DBD::SQLite; 18 19 use Schedule::At; 19 20 use Time::Local; … … 21 22 $path = $0; 22 23 $path =~ s/addatq.pl$//i; 23 if ($p wdne "./"){24 if ($path ne "./"){ 24 25 push( @INC, "$path"); 25 26 } … … 38 39 39 40 #DB検索(TIDとStationIDからPIDへ) 40 $data_source = sprintf("dbi:%s:dbname=%s;host=%s;port=%d", 41 $DBDriv,$DBName,$DBHost,$DBPort); 42 $dbh = DBI->connect($data_source,$DBUser,$DBPass) ||die $DBI::error;; 41 $dbh = DBI->connect($DSN,$DBUser,$DBPass) ||die $DBI::error;; 43 42 44 43 if ($station == 0){ 45 $DBQuery = "SELECT count(*) FROM foltia_tvrecord WHERE tid = '$tid' "; 44 $sth = $dbh->prepare($stmt{'addatq.1'}); 45 $sth->execute($tid); 46 46 }else{ 47 $DBQuery = "SELECT count(*) FROM foltia_tvrecord WHERE tid = '$tid' AND stationid = '$station' "; 47 $sth = $dbh->prepare($stmt{'addatq.2'}); 48 $sth->execute($tid, $station); 48 49 } 49 $sth = $dbh->prepare($DBQuery);50 $sth->execute();51 50 @titlecount = $sth->fetchrow_array; 52 51 #件数数える … … 54 53 #2以上だったら 55 54 if ($titlecount[0] >= 2){ 56 #全曲取りが含まれているか調べる 57 $DBQuery = "SELECT count(*) FROM foltia_tvrecord WHERE tid = '$tid' AND stationid ='0' "; 58 $kth = $dbh->prepare($DBQuery); 59 $kth->execute(); 55 #全局録りが含まれているか調べる 56 $kth = $dbh->prepare($stmt{'addatq.3'}); 57 $kth->execute($tid); 60 58 @reservecounts = $kth->fetchrow_array; 61 59 … … 63 61 if($tid == 0){ 64 62 #今回の引き数がSID 0だったら 65 #全局取りだけ予約66 # &writelog("addatq DEBUG; ALL STATION RESERVE. TID=$tid SID=$station $titlecount[0] match:$ DBQuery");63 #全局録りだけ予約 64 # &writelog("addatq DEBUG; ALL STATION RESERVE. TID=$tid SID=$station $titlecount[0] match:$stmt{'addatq.3'}"); 67 65 &addcue; 68 66 }else{ 69 67 #ほかの全局録画addatqが予約入れてくれるからなにもしない 70 # &writelog("addatq DEBUG; SKIP OPERSTION. TID=$tid SID=$station $titlecount[0] match:$ DBQuery");68 # &writelog("addatq DEBUG; SKIP OPERSTION. TID=$tid SID=$station $titlecount[0] match:$stmt{'addatq.3'}"); 71 69 exit; 72 70 }#end if ふくまれていたら … … 75 73 &addcue; 76 74 }else{ 77 &writelog("addatq error; reserve impossible . TID=$tid SID=$station $titlecount[0] match:$DBQuery");75 &writelog("addatq error; reserve impossible . TID=$tid SID=$station $titlecount[0] match:$stmt{'addatq.3'}"); 78 76 } 79 77 … … 82 80 # & addcue; 83 81 # }else{ 84 #&writelog("addatq error record TID=$tid SID=$station $titlecount[0] match:$ DBQuery");82 #&writelog("addatq error record TID=$tid SID=$station $titlecount[0] match:$stmt{'addatq.3'}"); 85 83 #} 86 84 … … 88 86 89 87 if ($station == 0){ 90 $DBQuery = "SELECT * FROM foltia_tvrecord WHERE tid = '$tid' "; 88 $sth = $dbh->prepare($stmt{'addatq.addcue.1'}); 89 $sth->execute($tid); 91 90 }else{ 92 $DBQuery = "SELECT * FROM foltia_tvrecord WHERE tid = '$tid' AND stationid = '$station' "; 91 $sth = $dbh->prepare($stmt{'addatq.addcue.2'}); 92 $sth->execute($tid, $station); 93 93 } 94 $sth = $dbh->prepare($DBQuery);95 $sth->execute();96 94 @titlecount= $sth->fetchrow_array; 97 95 $bitrate = $titlecount[2];#ビットレート取得 98 96 99 97 #PID抽出 100 $now = &epoch2foldate(`date +%s`);101 $twodaysafter = &epoch2foldate(`date +%s`+ (60 * 60 * 24 * 2));98 $now = &epoch2foldate(time()); 99 $twodaysafter = &epoch2foldate(time() + (60 * 60 * 24 * 2)); 102 100 #キュー入れは直近2日後まで 103 101 if ($station == 0 ){ 104 $ DBQuery = "105 SELECT * from foltia_subtitle WHERE tid = '$tid' AND startdatetime > '$now' AND startdatetime < '$twodaysafter' ";102 $sth = $dbh->prepare($stmt{'addatq.addcue.3'}); 103 $sth->execute($tid, $now, $twodaysafter); 106 104 }else{ 107 $DBQuery = "108 SELECT * from foltia_subtitle WHERE tid = '$tid' AND stationid = '$station' AND startdatetime > '$now' AND startdatetime < '$twodaysafter' ";109 105 #stationIDからrecch 110 $getrecchquery="SELECT stationid , stationrecch FROM foltia_station where stationid = '$station' "; 111 $stationh = $dbh->prepare($getrecchquery); 112 $stationh->execute(); 106 $stationh = $dbh->prepare($stmt{'addatq.addcue.4'}); 107 $stationh->execute($station); 113 108 @stationl = $stationh->fetchrow_array; 114 109 $recch = $stationl[1]; 115 }116 110 117 $sth = $dbh->prepare($DBQuery); 118 $sth->execute(); 111 $sth = $dbh->prepare($stmt{'addatq.addcue.5'}); 112 $sth->execute($tid, $station, $now, $twodaysafter); 113 } 119 114 120 115 while (($pid , … … 131 126 if ($station == 0 ){ 132 127 #stationIDからrecch 133 $getrecchquery="SELECT stationid , stationrecch FROM foltia_station where stationid = '$stationid' "; 134 $stationh = $dbh->prepare($getrecchquery); 135 $stationh->execute(); 128 $stationh = $dbh->prepare($stmt{'addatq.addcue.6'}); 129 $stationh->execute($stationid); 136 130 @stationl = $stationh->fetchrow_array; 137 131 $recch = $stationl[1]; trunk/install/perl/addpidatq.pl
r83 r94 14 14 use DBI; 15 15 use DBD::Pg; 16 use DBD::SQLite; 16 17 use Schedule::At; 17 18 use Time::Local; … … 19 20 $path = $0; 20 21 $path =~ s/addpidatq.pl$//i; 21 if ($p wdne "./"){22 if ($path ne "./"){ 22 23 push( @INC, "$path"); 23 24 } … … 36 37 37 38 #DB検索(PID) 38 my $data_source = sprintf("dbi:%s:dbname=%s;host=%s;port=%d", 39 $DBDriv,$DBName,$DBHost,$DBPort); 40 $dbh = DBI->connect($data_source,$DBUser,$DBPass) ||die $DBI::error;; 39 $dbh = DBI->connect($DSN,$DBUser,$DBPass) ||die $DBI::error;; 41 40 42 $DBQuery = "SELECT count(*) FROM foltia_subtitle WHERE pid = '$pid' "; 43 $sth = $dbh->prepare($DBQuery); 44 $sth->execute(); 41 $sth = $dbh->prepare($stmt{'addpidatq.1'}); 42 $sth->execute($pid); 45 43 @titlecount= $sth->fetchrow_array; 46 44 47 45 if ($titlecount[0] == 1 ){ 48 49 $DBQuery = "SELECT bitrate,digital FROM foltia_tvrecord , foltia_subtitle WHERE foltia_tvrecord.tid = foltia_subtitle.tid AND pid='$pid' "; 50 $sth = $dbh->prepare($DBQuery); 51 $sth->execute(); 46 $sth = $dbh->prepare($stmt{'addpidatq.2'}); 47 $sth->execute($pid); 52 48 @titlecount= $sth->fetchrow_array; 53 49 $bitrate = $titlecount[0];#ビットレート取得 … … 59 55 60 56 #PID抽出 61 $now = &epoch2foldate(`date +%s`);57 $now = &epoch2foldate(time()); 62 58 63 59 #stationIDからrecch 64 $DBQuery = "SELECT stationrecch,digitalch ,digitalstationband ,foltia_station.stationid FROM foltia_station,foltia_subtitle WHERE foltia_subtitle.pid = '$pid' AND foltia_subtitle.stationid = foltia_station.stationid "; 65 66 $stationh = $dbh->prepare($DBQuery); 67 $stationh->execute(); 68 @stationl = $stationh->fetchrow_array; 60 $stationh = $dbh->prepare($stmt{'addpidatq.3'}); 61 $stationh->execute($pid); 62 @stationl = $stationh->fetchrow_array(); 69 63 $recch = $stationl[0]; 70 64 if ($recch eq ""){ 71 &writelog("addpidatq ERROR recch is NULL:$ DBQuery.");65 &writelog("addpidatq ERROR recch is NULL:$stmt{'addpidatq.3'}."); 72 66 exit 1; 73 67 } … … 82 76 $digitalstationband = 0; 83 77 } 84 $DBQuery = "SELECT * FROM foltia_subtitle WHERE pid='$pid' "; 85 $sth = $dbh->prepare($DBQuery); 86 $sth->execute(); 78 $sth = $dbh->prepare($stmt{'addpidatq.4'}); 79 $sth->execute($pid); 87 80 ($pid , 88 81 $tid , trunk/install/perl/captureimagemaker.pl
r83 r94 14 14 $path = $0; 15 15 $path =~ s/captureimagemaker.pl$//i; 16 if ($p wdne "./"){16 if ($path ne "./"){ 17 17 push( @INC, "$path"); 18 18 } … … 56 56 $date =~ s/[^0-9]//ig; 57 57 if ($date eq "" ){ 58 $date = `date +%Y%m%d` 58 $date = strftime("%Y%m%d", localtime); 59 59 } 60 60 # print "DATE:$date\n"; … … 65 65 $time =~ s/[^0-9]//ig; 66 66 if ($time eq "" ){ 67 $time = `date +%H%M` 67 $time = strftime("%H%M", localtime); 68 68 } 69 69 # print "TIME:$time\n"; … … 119 119 # 10秒ごとに 120 120 if ($filename =~ /m2t$/){ 121 &writelog("captureimagemaker DEBUG mplayer -ss 00:00:10 -vo jpeg:outdir=$capimgdirname/$captureimgdir/ -vf scale=192:108 -ao null -sstep 9 -v 3 $recfolderpath/$filename"); 122 system ("mplayer -ss 00:00:10 -vo jpeg:outdir=$capimgdirname/$captureimgdir/ -vf scale=192:108 -ao null -sstep 9 -v 3 $recfolderpath/$filename"); 121 &writelog("captureimagemaker DEBUG mplayer -ss 00:00:10 -vo jpeg:outdir=$capimgdirname/$captureimgdir/ -vf scale=192:108 -ao null -sstep 9 $recfolderpath/$filename"); 122 system ("mplayer -ss 00:00:10 -vo jpeg:outdir=$capimgdirname/$captureimgdir/ -vf scale=192:108 -ao null -sstep 9 $recfolderpath/$filename"); 123 if(-e "$capimgdirname/$captureimgdir/00000001.jpg" ){ #$capimgdirname/$captureimgdir/があったらなにもしない 124 }else{ #空っぽなら再試行 125 &writelog("captureimagemaker DEBUG RETRY mplayer -ss 00:00:10 -vo jpeg:outdir=$capimgdirname/$captureimgdir/ -vf framestep=300step,scale=192:108 -ao null $recfolderpath/$filename"); 126 system ("mplayer -ss 00:00:10 -vo jpeg:outdir=$capimgdirname/$captureimgdir/ -vf framestep=300step,scale=192:108 -ao null $recfolderpath/$filename"); 127 } 128 123 129 }else{ 124 130 &writelog("captureimagemaker DEBUG mplayer -ss 00:00:10 -vo jpeg:outdir=$capimgdirname/$captureimgdir/ -vf crop=690:460:12:10,scale=160:120 -ao null -sstep 9 -v 3 $recfolderpath/$filename"); 125 system ("mplayer -ss 00:00:10 -vo jpeg:outdir=$capimgdirname/$captureimgdir/ -vf crop=690:460:12:10,scale=160:120 -ao null -sstep 9 -v 3 $recfolderpath/$filename"); 131 system ("mplayer -ss 00:00:10 -vo jpeg:outdir=$capimgdirname/$captureimgdir/ -vf crop=690:460:12:10,scale=160:120 -ao null -sstep 9 $recfolderpath/$filename"); 132 if(-e "$capimgdirname/$captureimgdir/00000001.jpg" ){ #$capimgdirname/ 133 }else{ 134 system ("mplayer -ss 00:00:10 -vo jpeg:outdir=$capimgdirname/$captureimgdir/ -vf framestep=300step,crop=690:460:12:10,scale=160:120 -ao null $recfolderpath/$filename"); 135 } 126 136 } 127 137 trunk/install/perl/changestbch.pl
r1 r94 26 26 use DBI; 27 27 use DBD::Pg; 28 use DBD::SQLite; 28 29 29 30 $path = $0; 30 31 $path =~ s/changestbch.pl$//i; 31 if ($p wdne "./"){32 if ($path ne "./"){ 32 33 push( @INC, "$path"); 33 34 } … … 54 55 # pidから局(送出コマンド)調べる 55 56 #DB初期化 56 my $data_source = sprintf("dbi:%s:dbname=%s;host=%s;port=%d", 57 $DBDriv,$DBName,$DBHost,$DBPort); 58 $dbh = DBI->connect($data_source,$DBUser,$DBPass) ||die $DBI::error;; 57 $dbh = DBI->connect($DSN,$DBUser,$DBPass) ||die $DBI::error;; 59 58 60 $DBQuery = "SELECT foltia_station.tunertype,foltia_station.tunerch ,foltia_station.stationrecch ,foltia_station.stationid FROM foltia_subtitle,foltia_station WHERE foltia_subtitle.stationid = foltia_station.stationid AND foltia_subtitle.pid = '$pid' "; 61 $sth = $dbh->prepare($DBQuery); 62 $sth->execute(); 59 $sth = $dbh->prepare($stmt{'changestbch.1'}); 60 $sth->execute($pid); 63 61 @chstatus = $sth->fetchrow_array; 64 62 $tunertype = $chstatus[0]; trunk/install/perl/deletemovie.pl
r83 r94 17 17 $path = $0; 18 18 $path =~ s/deletemovie.pl$//i; 19 if ($p wdne "./"){19 if ($path ne "./"){ 20 20 push( @INC, "$path"); 21 21 } trunk/install/perl/digitaltvrecording.pl
r91 r94 25 25 $path = $0; 26 26 $path =~ s/digitaltvrecording.pl$//i; 27 if ($p wdne "./"){27 if ($path ne "./"){ 28 28 push( @INC, "$path"); 29 29 } … … 112 112 &writelog("digitaltvrecording: DEBUG FILENAME ne null \$outputfile $outputfile "); 113 113 }else{ 114 $outputfile .= `date +%Y%m%d-%H%M --date "1 min "`;114 $outputfile .= strftime("%Y%m%d-%H%M", localtime(time + 60)); 115 115 chomp($outputfile); 116 116 $outputfile .= ".m2t"; … … 193 193 } 194 194 }else{ # エラー b25とrecfriioがありません 195 &writelog("digitaltvrecording :ERROR :recfriio or b25 not found. You must install $toolpath/ b25 and $toolpath/recfriio.");195 &writelog("digitaltvrecording :ERROR :recfriio or b25 not found. You must install $toolpath/perl/tool/b25 and $toolpath/perl/tool/recfriio."); 196 196 exit 1; 197 197 } … … 387 387 } 388 388 }else{ # エラー recpt1がありません 389 &writelog("digitaltvrecording :ERROR :recpt1 not found. You must install $toolpath/ b25 and $toolpath/recpt1.");389 &writelog("digitaltvrecording :ERROR :recpt1 not found. You must install $toolpath/tool/b25 and $toolpath/tool/recpt1."); 390 390 $errorflag = 1; 391 391 } … … 409 409 } 410 410 }else{ # エラー recfriioがありません 411 &writelog("digitaltvrecording :ERROR :recfriio not found. You must install $toolpath/ b25 and $toolpath/recfriio.");411 &writelog("digitaltvrecording :ERROR :recfriio not found. You must install $toolpath/perl/tool/b25 and $toolpath/perl/tool/recfriio."); 412 412 exit 1; 413 413 } trunk/install/perl/envpolicyupdate.pl
r70 r94 16 16 use DBI; 17 17 use DBD::Pg; 18 use DBD::SQLite; 18 19 19 20 $path = $0; 20 21 $path =~ s/envpolicyupdate.pl$//i; 21 if ($p wdne "./"){22 if ($path ne "./"){ 22 23 push( @INC, "$path"); 23 24 } … … 33 34 eval "$returnparam\n"; 34 35 35 my $data_source = sprintf("dbi:%s:dbname=%s;host=%s;port=%d", 36 $DBDriv,$DBName,$DBHost,$DBPort); 37 $dbh = DBI->connect($data_source,$DBUser,$DBPass) ||die $DBI::error;; 36 $dbh = DBI->connect($DSN,$DBUser,$DBPass) ||die $DBI::error;; 38 37 39 $DBQuery = "SELECT userclass,name,passwd1 FROM foltia_envpolicy "; 40 41 $envph = $dbh->prepare($DBQuery); 38 $envph = $dbh->prepare($stmt{'envpolicyupdate.1'}); 42 39 $envph->execute(); 43 40 trunk/install/perl/folprep.pl
r1 r94 23 23 $path = $0; 24 24 $path =~ s/folprep.pl$//i; 25 if ($p wdne "./"){25 if ($path ne "./"){ 26 26 push( @INC, "$path"); 27 27 } trunk/install/perl/foltia_conf1.pl.template
r83 r94 28 28 29 29 #以下はデフォルトでインストールしてればいじらなくてもいい 30 $main::DBDriv="Pg"; 31 $main::DBHost="localhost"; 32 $main::DBPort="5432"; 33 $main::DBName="foltia"; 30 31 ## for postgresql 32 #$main::DSN="dbi:Pg:dbname=foltia;host=localhost;port=5432"; 33 #require 'db/Pg.pl'; 34 35 ## for sqlite 36 $main::DSN="dbi:SQLite:dbname=/home/foltia/foltia.sqlite"; 37 require 'db/SQLite.pl'; 38 34 39 $main::DBUser="foltia"; 35 40 $main::DBPass=""; trunk/install/perl/foltialib.pl
r83 r94 4 4 $path = $0; 5 5 $path =~ s/foltialib.pl$//i; 6 if ($p wdne "./"){6 if ($path ne "./"){ 7 7 push( @INC, "$path"); 8 8 } … … 13 13 use DBI; 14 14 use DBD::Pg; 15 16 17 $DBDriv=$main::DBDriv; 18 $DBHost=$main::DBHost; 19 $DBPort=$main::DBPort; 20 $DBName=$main::DBName; 15 use DBD::SQLite; 16 use POSIX qw(strftime); 17 18 $DSN=$main::DSN; 21 19 $DBUser=$main::DBUser; 22 20 $DBPass=""; … … 47 45 sub writelog{ 48 46 my $messages = $_[0]; 49 my $timestump = `date +%Y/%m/%d_%H:%M:%S`;47 my $timestump = strftime("%Y/%m/%d_%H:%M:%S", localtime); 50 48 chomp($timestump); 51 49 if ($debugmode == 1){ … … 146 144 my $stationname = $_[0] ; 147 145 my $stationid ; 148 my $DBQuery = "SELECT count(*) FROM foltia_station WHERE stationname = '$item{ChName}'";149 146 150 147 my $sth; 151 $sth = $dbh->prepare($DBQuery);152 $sth->execute();148 $sth = $dbh->prepare($stmt{'foltialib.getstationid.1'}); 149 $sth->execute($item{'ChName'}); 153 150 my @stationcount; 154 151 @stationcount= $sth->fetchrow_array; … … 156 153 if ($stationcount[0] == 1){ 157 154 #チャンネルID取得 158 $DBQuery = "SELECT stationid,stationname FROM foltia_station WHERE stationname = '$item{ChName}'"; 159 $sth = $dbh->prepare($DBQuery); 160 $sth->execute(); 155 $sth = $dbh->prepare($stmt{'foltialib.getstationid.2'}); 156 $sth->execute($item{'ChName'}); 161 157 @stationinfo= $sth->fetchrow_array; 162 158 #局ID … … 166 162 }elsif($stationcount[0] == 0){ 167 163 #新規登録 168 $DBQuery = "SELECT max(stationid) FROM foltia_station"; 169 $sth = $dbh->prepare($DBQuery); 164 $sth = $dbh->prepare($stmt{'foltialib.getstationid.3'}); 170 165 $sth->execute(); 171 166 @stationinfo= $sth->fetchrow_array; … … 174 169 ##$DBQuery = "insert into foltia_station values ('$stationid' ,'$item{ChName}','0','','','','','','')"; 175 170 #新規局追加時は非受信局をデフォルトに 176 $DBQuery = "insert into foltia_station (stationid , stationname ,stationrecch ) values ('$stationid' ,'$item{ChName}','-10')"; 177 178 $sth = $dbh->prepare($DBQuery); 179 $sth->execute(); 171 $sth = $dbh->prepare($stmt{'foltialib.getstationid.4'}); 172 $sth->execute($stationid, $item{'ChName'}, -10); 180 173 #print "Add station;$DBQuery\n"; 181 &writelog("foltialib Add station;$DBQuery");174 &writelog("foltialib Add station;$stmt{'foltialib.getstationid.4'}"); 182 175 }else{ 183 176 … … 287 280 } 288 281 289 my $DBQuery = "SELECT pid FROM foltia_subtitle WHERE m2pfilename = '$m2pfilename' LIMIT 1 ";290 282 my $sth; 291 $sth = $dbh->prepare($DBQuery);292 $sth->execute();293 #print "$ DBQuery\n";283 $sth = $dbh->prepare($stmt{'foltialib.getpidbympegfilename.1'}); 284 $sth->execute($m2pfilename); 285 #print "$stmt{'foltialib.getpidbympegfilename.1'}\n"; 294 286 my @pidinfo = $sth->fetchrow_array; 295 287 my $pid = $pidinfo[0]; … … 312 304 313 305 if ($updatestatus > 0 ){ 314 my $DBQuery = "UPDATE foltia_subtitle SET filestatus = $updatestatus , lastupdate = now() WHERE pid = $pid ";315 306 my $sth; 316 $sth = $dbh->prepare($DBQuery);317 $sth->execute();307 $sth = $dbh->prepare($stmt{'foltialib.changefilestatus.1'}); 308 $sth->execute($updatestatus, $pid); 318 309 return 1; 319 310 }else{ … … 351 342 } 352 343 353 my $DBQuery = "SELECT filestatus FROM foltia_subtitle WHERE pid = $pid ";354 344 my $sth; 355 $sth = $dbh->prepare($DBQuery);356 $sth->execute();345 $sth = $dbh->prepare($stmt{'foltialib.getfilestatus.1'}); 346 $sth->execute($pid); 357 347 358 348 my @statusinfo = $sth->fetchrow_array; trunk/install/perl/getxml2db.pl
r82 r94 19 19 use DBI; 20 20 use DBD::Pg; 21 use DBD::SQLite; 21 22 use Digest::MD5 qw(md5_hex); 22 23 23 24 $path = $0; 24 25 $path =~ s/getxml2db.pl$//i; 25 if ($p wdne "./"){26 if ($path ne "./"){ 26 27 push( @INC, "$path"); 27 28 } … … 48 49 } 49 50 51 $dbh = DBI->connect($DSN,$DBUser,$DBPass) ||die $DBI::error;; 50 52 51 my $data_source = sprintf("dbi:%s:dbname=%s;host=%s;port=%d", 52 $DBDriv,$DBName,$DBHost,$DBPort); 53 54 $dbh = DBI->connect($data_source,$DBUser,$DBPass) ||die $DBI::error;; 55 56 #$dbh->{AutoCommit} = 0; 53 $dbh->{AutoCommit} = 0; 57 54 58 55 # If-Modified-Since使うように変更#2008/11/14 … … 105 102 $programtitlename =~ s/\>\;/>/gi; 106 103 $programtitlename =~ s/\&\;/\&/gi; 107 $programtitle = $dbh->quote($programtitlename); 104 # $programtitle = $dbh->quote($programtitlename); 105 $programtitle = $programtitlename; 108 106 109 107 Jcode::convert(\$item{ChName},'euc'); … … 115 113 $programSubTitle =~ s/\>\;/>/gi; 116 114 $programSubTitle =~ s/\&\;/\&/gi; 117 $programSubTitle = $dbh->quote($programSubTitle);115 # $programSubTitle = $dbh->quote($programSubTitle); 118 116 119 117 $offsetmin = $item{StOffset}/60; … … 127 125 #サブタイトル追加------------------------------------------------- 128 126 #番組があるか確認 129 $DBQuery = "SELECT count(*) FROM foltia_program WHERE tid = '$item{TID}'"; 130 $sth = $dbh->prepare($DBQuery); 131 $sth->execute(); 127 $sth = $dbh->prepare($stmt{'getxml2db.1'}); 128 $sth->execute($item{TID}); 132 129 @titlecount= $sth->fetchrow_array; 133 130 … … 137 134 #200412012359 138 135 $nomalstarttime = substr($sttime,8,4); 139 $DBQuery = "insert into foltia_program values ($item{TID},$programtitle,'','$nomalstarttime','$length','','','3','1','')";140 # $sth = $dbh->prepare($DBQuery);141 # $sth->execute();142 $oserr = $dbh->do($DBQuery);143 &writelog("getxml2db ADD TV Progtam:$item{TID}:$programtitle");144 136 145 137 $sth = $dbh->prepare($stmt{'getxml2db.2'}); 138 $oserr = $sth->execute($item{TID}, $programtitle, '', $nomalstarttime, $length, '', '', 3, 1, '', ''); 139 &writelog("getxml2db ADD TV Progtam:$item{TID}:$programtitle"); 146 140 }else{ 147 141 #2006/2/26 148 142 #あったら、タイトル確認して 149 $DBQuery = "SELECT title FROM foltia_program WHERE tid = '$item{TID}'"; 150 $sth = $dbh->prepare($DBQuery); 151 $sth->execute(); 143 $sth = $dbh->prepare($stmt{'getxml2db.3'}); 144 $sth->execute($item{TID}); 152 145 @titlearray = $sth->fetchrow_array; 153 146 #更新などされてたらupdate 154 147 #print "$titlearray[0] / $programtitle\n"; 155 148 if ($titlearray[0] ne "$programtitlename" ){ 156 $DBQuery = "UPDATE foltia_program SET title = $programtitle where tid = '$item{TID}' "; 157 # $sth = $dbh->prepare($DBQuery); 158 # $sth->execute(); 159 $oserr = $dbh->do($DBQuery); 149 $sth = $dbh->prepare($stmt{'getxml2db.4'}); 150 $oserr = $sth->execute($programtitle, $item{TID}); 160 151 &writelog("getxml2db UPDATE TV Progtam:$item{TID}:$programtitle"); 161 152 }#end if update … … 164 155 165 156 #PIDがあるか確認 166 $DBQuery = "SELECT count(*) FROM foltia_subtitle WHERE tid = '$item{TID}' AND pid = '$item{PID}' "; 167 $sth = $dbh->prepare($DBQuery); 168 $sth->execute(); 157 $sth = $dbh->prepare($stmt{'getxml2db.5'}); 158 $sth->execute($item{'TID'}, $item{'PID'}); 169 159 @subticount= $sth->fetchrow_array; 170 160 if ($subticount[0] >= 1){ … … 174 164 #UPDATE foltia_subtitle SET stationid = '42',countno = '8',subtitle = '京都行きます' ,startdatetime = '200503010035' ,enddatetime = '200503010050',startoffset = '0' ,lengthmin = '15' WHERE tid = '550' AND pid = '26000' 175 165 if ($item{Count} == ""){ 176 177 $DBQuery = "UPDATE foltia_subtitle SET 178 stationid = '$stationid', 179 countno = null, 180 subtitle = $programSubTitle , 181 startdatetime = '$recstartdate' , 182 enddatetime = '$recenddate', 183 startoffset = '$offsetmin' , 184 lengthmin = '$length' 185 WHERE tid = '$item{TID}' AND pid = '$item{PID}' "; 186 166 $sth = $dbh->prepare($stmt{'getxml2db.6'}); 167 $oserr = $sth->execute($stationid, undef, $programSubTitle, $recstartdate, $recenddate, $offsetmin, $length, $item{'TID'}, $item{'PID'}); 187 168 }else{ 188 189 $DBQuery = "UPDATE foltia_subtitle SET 190 stationid = '$stationid', 191 countno = '$item{Count}', 192 subtitle = $programSubTitle , 193 startdatetime = '$recstartdate' , 194 enddatetime = '$recenddate', 195 startoffset = '$offsetmin' , 196 lengthmin = '$length' 197 WHERE tid = '$item{TID}' AND pid = '$item{PID}' "; 198 } 199 # $sth = $dbh->prepare($DBQuery); 200 # $sth->execute(); 201 $oserr = $dbh->do($DBQuery); 202 169 $sth = $dbh->prepare($stmt{'getxml2db.7'}); 170 $oserr = $sth->execute($stationid, $item{'Count'}, $programSubTitle, $recstartdate, $recenddate, $offsetmin, $length, $item{'TID'}, $item{'PID'}); 171 } 203 172 }else{ 204 173 #なければ追加 … … 207 176 #そのままキューに入る形で 208 177 if ($item{Count} eq ""){ 209 $DBQuery = "insert into foltia_subtitle values ( '$item{PID}','$item{TID}','$stationid',null,$programSubTitle,'$recstartdate','$recenddate','$offsetmin' ,'$length')"; 178 $sth = $dbh->prepare($stmt{'getxml2db.8'}); 179 $oserr = $sth->execute($item{'PID'}, $item{'TID'}, $stationid, undef, $programSubTitle, $recstartdate, $recenddate, $offsetmin, $length); 210 180 }else{ 211 $DBQuery = "insert into foltia_subtitle values ( '$item{PID}','$item{TID}','$stationid','$item{Count}',$programSubTitle,'$recstartdate','$recenddate','$offsetmin' ,'$length')"; 181 $sth = $dbh->prepare($stmt{'getxml2db.9'}); 182 $oserr = $sth->execute($item{'PID'}, $item{'TID'}, $stationid, $item{'Count'}, $programSubTitle, $recstartdate, $recenddate, $offsetmin, $length); 212 183 } 213 # $sth = $dbh->prepare($DBQuery);214 # $sth->execute();215 $oserr = $dbh->do($DBQuery);216 217 184 } 218 219 185 220 186 #print "$DBQuery\n\n\n"; … … 226 192 }#foreach 227 193 228 #$oserr = $dbh->commit;194 $oserr = $dbh->commit; 229 195 ## $dbh->disconnect(); 230 231 trunk/install/perl/ipodtranscode.pl
r83 r94 13 13 use DBI; 14 14 use DBD::Pg; 15 use DBD::SQLite; 15 16 use Jcode; 16 17 17 18 $path = $0; 18 19 $path =~ s/ipodtranscode.pl$//i; 19 if ($p wdne "./"){20 if ($path ne "./"){ 20 21 push( @INC, "$path"); 21 22 } … … 35 36 36 37 #DB初期化 37 my $data_source = sprintf("dbi:%s:dbname=%s;host=%s;port=%d", 38 $DBDriv,$DBName,$DBHost,$DBPort); 39 $dbh = DBI->connect($data_source,$DBUser,$DBPass) ||die $DBI::error;; 38 $dbh = DBI->connect($DSN,$DBUser,$DBPass) ||die $DBI::error;; 40 39 41 40 # タイトル取得 … … 57 56 58 57 while ($counttranscodefiles >= 1){ 59 60 $DBQuery = "SELECT foltia_subtitle.pid,foltia_subtitle.tid,foltia_subtitle.m2pfilename,filestatus,foltia_program.aspect ,foltia_subtitle.countno 61 FROM foltia_subtitle, foltia_program, foltia_m2pfiles 62 WHERE filestatus >= $FILESTATUSRECEND AND filestatus < $FILESTATUSTRANSCODECOMPLETE AND foltia_program.tid = foltia_subtitle.TID AND foltia_program.PSP = 1 AND foltia_m2pfiles.m2pfilename = foltia_subtitle.m2pfilename 63 ORDER BY enddatetime ASC 64 LIMIT 1 "; 65 66 $sth = $dbh->prepare($DBQuery); 67 $sth->execute(); 58 $sth = $dbh->prepare($stmt{'ipodtranscode.1'}); 59 $sth->execute($FILESTATUSRECEND, $FILESTATUSTRANSCODECOMPLETE, ); 68 60 @dbparam = $sth->fetchrow_array; 69 61 #print "$dbparam[0],$dbparam[1],$dbparam[2],$dbparam[3],$dbparam[4],$dbparam[5]\n"; 70 &writelog("ipodtranscode DEBUG $DBQuery");62 #&writelog("ipodtranscode DEBUG $DBQuery"); 71 63 &writelog("ipodtranscode DEBUG $dbparam[0],$dbparam[1],$dbparam[2],$dbparam[3],$dbparam[4],$dbparam[5]"); 72 64 $pid = $dbparam[0]; … … 86 78 # タイトル取得 87 79 if ($pid ne ""){ 88 89 $DBQuery = "SELECT title , countno , subtitle 90 FROM foltia_program, foltia_subtitle 91 WHERE foltia_program.tid = foltia_subtitle.tid 92 AND foltia_subtitle.pid = $pid "; 93 $sth = $dbh->prepare($DBQuery); 94 $sth->execute(); 80 $sth = $dbh->prepare($stmt{'ipodtranscode.2'}); 81 $sth->execute($pid); 95 82 @programtitle = $sth->fetchrow_array; 96 83 $programtitle[0] =~ s/\"/\\"/gi; … … 147 134 } 148 135 136 149 137 $filenamebody = $inputmpeg2 ; 150 138 $filenamebody =~ s/.m2t$|.ts$|.m2p$|.mpg$//gi; 139 151 140 #デジタルかアナログか 152 141 if ($inputmpeg2 =~ /m2t$|ts$/i){ … … 174 163 $ffmpegencopt = " -s 360x202 -deinterlace -r 24.00 -vcodec libx264 -g 300 -b 330000 -level 13 -loop 1 -sc_threshold 60 -partp4x4 1 -rc_eq 'blurCplx^(1-qComp)' -refs 3 -maxrate 700000 -async 50 -f h264 $filenamebody.264"; 175 164 }elsif($trconqty == 2){ 176 $ffmpegencopt = " -s 480x272 -deinterlace -r 29.97 -vcodec libx264 -g 300 -b 400000 -level 13 -loop 1 -sc_threshold 60 -partp4x4 1 -rc_eq 'blurCplx^(1-qComp)' -refs 3 -maxrate 700000 -async 50 -f h264 $filenamebody.264"; 165 # $ffmpegencopt = " -s 480x272 -deinterlace -r 29.97 -vcodec libx264 -g 300 -b 400000 -level 13 -loop 1 -sc_threshold 60 -partp4x4 1 -rc_eq 'blurCplx^(1-qComp)' -refs 3 -maxrate 700000 -async 50 -f h264 $filenamebody.264"; 166 # for ffmpeg 0.5 or later 167 $ffmpegencopt = " -s 480x272 -deinterlace -r 29.97 -vcodec libx264 -vpre default -g 300 -b 400000 -level 13 -sc_threshold 60 -rc_eq 'blurCplx^(1-qComp)' -refs 3 -maxrate 700000 -async 50 -f h264 $filenamebody.264"; 177 168 }elsif($trconqty == 3){#640x352 178 $ffmpegencopt = " -s 640x352 -deinterlace -r 29.97 -vcodec libx264 -g 100 -b 600000 -level 13 -loop 1 -sc_threshold 60 -partp4x4 1 -rc_eq 'blurCplx^(1-qComp)' -refs 3 -maxrate 700000 -async 50 -f h264 $filenamebody.264"; 169 # $ffmpegencopt = " -s 640x352 -deinterlace -r 29.97 -vcodec libx264 -g 100 -b 600000 -level 13 -loop 1 -sc_threshold 60 -partp4x4 1 -rc_eq 'blurCplx^(1-qComp)' -refs 3 -maxrate 700000 -async 50 -f h264 $filenamebody.264"; 170 # for ffmpeg 0.5 or later 171 $ffmpegencopt = " -s 640x352 -deinterlace -r 29.97 -vcodec libx264 -vpre default -g 100 -b 600000 -level 13 -sc_threshold 60 -rc_eq 'blurCplx^(1-qComp)' -refs 3 -maxrate 700000 -async 50 -f h264 $filenamebody.264"; 179 172 } 180 173 &changefilestatus($pid,$FILESTATUSTRANSCODEFFMPEG); … … 246 239 # MP4ビルド 247 240 unlink("${filenamebody}.base.mp4"); 248 &changefilestatus($pid,$FILESTATUSTRANSCODEMP4BOX); 249 &writelog("ipodtranscode MP4Box $filenamebody"); 250 system ("cd $recfolderpath ; MP4Box -fps 29.97 -add $filenamebody.264 -new $filenamebody.base.mp4"); 251 #$exit_value = $? >> 8; 252 #$signal_num = $? & 127; 253 #$dumped_core = $? & 128; 254 #&writelog("ipodtranscode DEBUG MP4Box -fps 29.97 -add:$exit_value:$signal_num:$dumped_core"); 255 256 if (-e "$filenamebody.base.mp4"){ 257 system ("cd $recfolderpath ; MP4Box -add $filenamebody.aac $filenamebody.base.mp4"); 258 #$exit_value = $? >> 8; 259 #$signal_num = $? & 127; 260 #$dumped_core = $? & 128; 261 #&writelog("ipodtranscode DEBUG MP4Box -add $filenamebody.aac:$exit_value:$signal_num:$dumped_core"); 241 if (-e "$toolpath/perl/tool/MP4Box"){ 242 &changefilestatus($pid,$FILESTATUSTRANSCODEMP4BOX); 243 &writelog("ipodtranscode MP4Box $filenamebody"); 244 # system ("cd $recfolderpath ; MP4Box -fps 29.97 -add $filenamebody.264 -new $filenamebody.base.mp4"); 245 system ("cd $recfolderpath ;$toolpath/perl/tool/MP4Box -fps 29.97 -add $filenamebody.264 -new $filenamebody.base.mp4"); 246 $exit_value = $? >> 8; 247 $signal_num = $? & 127; 248 $dumped_core = $? & 128; 249 &writelog("ipodtranscode DEBUG MP4Box -fps 29.97 -add $filenamebody.264 -new $filenamebody.base.mp4:$exit_value:$signal_num:$dumped_core"); 250 251 252 if (-e "$filenamebody.base.mp4"){ 253 # system ("cd $recfolderpath ; MP4Box -add $filenamebody.aac $filenamebody.base.mp4"); 254 system ("cd $recfolderpath ;$toolpath/perl/tool/MP4Box -add $filenamebody.aac $filenamebody.base.mp4"); 255 $exit_value = $? >> 8; 256 $signal_num = $? & 127; 257 $dumped_core = $? & 128; 258 &writelog("ipodtranscode DEBUG MP4Box -add $filenamebody.aac:$exit_value:$signal_num:$dumped_core"); 259 }else{ 260 $filelist = `ls -lhtr $recfolderpath/${filenamebody}*`; 261 $debugenv = `env`; 262 &writelog("ipodtranscode ERR File not exist.$debugenv.$filelist ;$filenamebody.base.mp4;$filelist;cd $recfolderpath ;$toolpath/perl/tool/MP4Box -fps 29.97 -add $filenamebody.264 -new $filenamebody.base.mp4"); 263 } 262 264 }else{ 263 &writelog("ipodtranscode ERR File not exist.$filenamebody.base.mp4"); 264 } 265 266 } 267 268 if ($filestatus <= $FILESTATUSTRANSCODEATOM){ 269 unlink("${mp4outdir}MAQ${mp4filenamestring}.MP4"); 270 # iPodヘッダ付加 271 &changefilestatus($pid,$FILESTATUSTRANSCODEATOM); 272 &writelog("ipodtranscode ATOM $filenamebody"); 273 #system ("/usr/local/bin/ffmpeg -y -i $filenamebody.base.mp4 -vcodec copy -acodec copy -f ipod ${mp4outdir}MAQ${mp4filenamestring}.MP4"); 274 system ("cd $recfolderpath ; MP4Box -ipod $filenamebody.base.mp4"); 275 $exit_value = $? >> 8; 276 $signal_num = $? & 127; 277 $dumped_core = $? & 128; 278 &writelog("ipodtranscode DEBUG MP4Box -ipod:$exit_value:$signal_num:$dumped_core"); 279 system("mv $filenamebody.base.mp4 ${mp4outdir}MAQ${mp4filenamestring}.MP4"); 280 &writelog("ipodtranscode mv $filenamebody.base.mp4 ${mp4outdir}MAQ${mp4filenamestring}.MP4"); 281 # ipodtranscode mv /home/foltia/php/tv/1329-21-20080829-0017.base.mp4 /home/foltia/php/tv/1329.localized/mp4/MAQ-/home/foltia/php/tv/1329-21-20080829-0017.MP4 282 265 &writelog("ipodtranscode WARN; Pls. install $toolpath/perl/tool/MP4Box"); 266 } 267 #} 268 269 #if ($filestatus <= $FILESTATUSTRANSCODEATOM){ 270 if (-e "$toolpath/perl/tool/MP4Box"){ 271 # iPodヘッダ付加 272 # &changefilestatus($pid,$FILESTATUSTRANSCODEATOM); 273 &writelog("ipodtranscode ATOM $filenamebody"); 274 #system ("/usr/local/bin/ffmpeg -y -i $filenamebody.base.mp4 -vcodec copy -acodec copy -f ipod ${mp4outdir}MAQ${mp4filenamestring}.MP4"); 275 # system ("cd $recfolderpath ; MP4Box -ipod $filenamebody.base.mp4"); 276 system ("cd $recfolderpath ; $toolpath/perl/tool/MP4Box -ipod $filenamebody.base.mp4"); 277 $exit_value = $? >> 8; 278 $signal_num = $? & 127; 279 $dumped_core = $? & 128; 280 &writelog("ipodtranscode DEBUG MP4Box -ipod $filenamebody.base.mp4:$exit_value:$signal_num:$dumped_core"); 281 if (-e "$filenamebody.base.mp4"){ 282 unlink("${mp4outdir}MAQ${mp4filenamestring}.MP4"); 283 system("mv $filenamebody.base.mp4 ${mp4outdir}MAQ${mp4filenamestring}.MP4"); 284 &writelog("ipodtranscode mv $filenamebody.base.mp4 ${mp4outdir}MAQ${mp4filenamestring}.MP4"); 285 }else{ 286 &writelog("ipodtranscode ERR $filenamebody.base.mp4 Not found."); 287 } 288 # ipodtranscode mv /home/foltia/php/tv/1329-21-20080829-0017.base.mp4 /home/foltia/php/tv/1329.localized/mp4/MAQ-/home/foltia/php/tv/1329-21-20080829-0017.MP4 289 }else{ 290 &writelog("ipodtranscode WARN; Pls. install $toolpath/perl/tool/MP4Box"); 291 } 283 292 } 284 293 if ($filestatus <= $FILESTATUSTRANSCODECOMPLETE){ 294 if (-e "${mp4outdir}MAQ${mp4filenamestring}.MP4"){ 285 295 # 中間ファイル消す 286 296 &changefilestatus($pid,$FILESTATUSTRANSCODECOMPLETE); … … 293 303 294 304 &updatemp4file(); 295 305 }else{ 306 &writelog("ipodtranscode ERR ; Fail MAQ${mp4filenamestring}.MP4"); 307 } 296 308 } 297 309 … … 384 396 &writelog("ipodtranscode DEBUG thmfilename $thmfilename"); 385 397 386 system ("mplayer -ss 00:01:20 -vo jpeg:outdir=$pspdirname -ao null -sstep 1 -frames 3 -v 3 $outputfilename"); 387 388 &writelog("ipodtranscode DEBUG mplayer -ss 00:01:20 -vo jpeg:outdir=$pspdirname -ao null -sstep 1 -frames 3 -v 3 $outputfilename"); 389 390 if (-e "$pspdirname/$thmfilename"){ 391 $timestamp =`date "+%Y%m%d-%H%M%S"`; 392 chomp $timestamp; 393 system("convert -crop 160x120+1+3 -resize 165x126\! $pspdirname/00000002.jpg $pspdirname/$thmfilename".$timestamp.".THM"); 398 #system ("mplayer -ss 00:01:20 -vo jpeg:outdir=$pspdirname -ao null -sstep 1 -frames 3 -v 3 $outputfilename"); 399 # 400 #&writelog("ipodtranscode DEBUG mplayer -ss 00:01:20 -vo jpeg:outdir=$pspdirname -ao null -sstep 1 -frames 3 -v 3 $outputfilename"); 401 if($outputfilename =~ /.m2t$/){ 402 #ハイビジョンTS 403 system ("mplayer -ss 00:01:20 -vo jpeg:outdir=$pspdirname -ao null -vf framestep=300step,scale=160:90,expand=160:120 -frames 1 $outputfilename"); 404 &writelog("ipodtranscode DEBUG mplayer -ss 00:01:20 -vo jpeg:outdir=$pspdirname -ao null -vf framestep=300step,scale=160:90,expand=160:120 -frames 1 $outputfilename"); 394 405 }else{ 395 system("convert -crop 160x120+1+3 -resize 165x126\! $pspdirname/00000002.jpg $pspdirname/$thmfilename"); 396 } 397 &writelog("ipodtranscode DEBUG convert -crop 160x120+1+3 -resize 165x126\! $pspdirname/00000002.jpg $pspdirname/$thmfilename"); 398 399 system("rm -rf $pspdirname/0000000*.jpg "); 400 &writelog("ipodtranscode DEBUG rm -rf $pspdirname/0000000*.jpg"); 406 #アナログ 407 system ("mplayer -ss 00:01:20 -vo jpeg:outdir=$pspdirname -ao null -vf framestep=300step,scale=165:126,crop=160:120 -frames 1 $outputfilename"); 408 &writelog("ipodtranscode DEBUG mplayer -ss 00:01:20 -vo jpeg:outdir=$pspdirname -ao null -vf framestep=300step,scale=165:126,crop=160:120 -frames 1 $outputfilename"); 409 } 410 #if (-e "$pspdirname/$thmfilename"){ 411 # $timestamp = strftime("%Y%m%d-%H%M%S", localtime); 412 #chomp $timestamp; 413 # system("convert -crop 160x120+1+3 -resize 165x126\! $pspdirname/00000002.jpg $pspdirname/$thmfilename".$timestamp.".THM"); 414 #}else{ 415 # system("convert -crop 160x120+1+3 -resize 165x126\! $pspdirname/00000002.jpg $pspdirname/$thmfilename"); 416 #} 417 #&writelog("ipodtranscode DEBUG convert -crop 160x120+1+3 -resize 165x126\! $pspdirname/00000002.jpg $pspdirname/$thmfilename"); 418 419 #system("rm -rf $pspdirname/0000000*.jpg "); 420 #&writelog("ipodtranscode DEBUG rm -rf $pspdirname/0000000*.jpg"); 421 system("mv $pspdirname/00000001.jpg $pspdirname/$thmfilename"); 401 422 402 423 }#endsub makethumbnail … … 407 428 if (-e "${mp4outdir}MAQ${mp4filenamestring}.MP4"){ 408 429 # MP4ファイル名をPIDレコードに書き込み 409 $DBQuery = "UPDATE foltia_subtitle SET PSPfilename = '$mp4filename' WHERE pid = '$pid' "; 410 $sth = $dbh->prepare($DBQuery); 411 $sth->execute(); 412 &writelog("ipodtranscode UPDATEsubtitleDB $DBQuery"); 430 $sth = $dbh->prepare($stmt{'ipodtranscode.updatemp4file.1'}); 431 $sth->execute($mp4filename, $pid); 432 &writelog("ipodtranscode UPDATEsubtitleDB $stmt{'ipodtranscode.updatemp4file.1'}"); 413 433 414 434 # MP4ファイル名をfoltia_mp4files挿入 415 $DBQuery = "insert into foltia_mp4files values ('$tid','$mp4filename') "; 416 $sth = $dbh->prepare($DBQuery); 417 $sth->execute(); 418 &writelog("ipodtranscode UPDATEmp4DB $DBQuery"); 435 $sth = $dbh->prepare($stmt{'ipodtranscode.updatemp4file.2'}); 436 $sth->execute($tid, $mp4filename); 437 &writelog("ipodtranscode UPDATEmp4DB $stmt{'ipodtranscode.updatemp4file.2'}"); 419 438 420 439 &changefilestatus($pid,$FILESTATUSALLCOMPLETE); … … 427 446 428 447 sub counttranscodefiles(){ 429 my $DBQuery = "SELECT count(*) FROM foltia_subtitle, foltia_program, foltia_m2pfiles 430 WHERE filestatus >= $FILESTATUSRECEND AND filestatus < $FILESTATUSTRANSCODECOMPLETE AND foltia_program.tid = foltia_subtitle.TID AND foltia_program.PSP = 1 AND foltia_m2pfiles.m2pfilename = foltia_subtitle.m2pfilename "; 431 $sth = $dbh->prepare($DBQuery); 432 $sth->execute(); 448 $sth = $dbh->prepare($stmt{'ipodtranscode.counttranscodefiles.1'}); 449 $sth->execute($FILESTATUSRECEND, $FILESTATUSTRANSCODECOMPLETE); 433 450 my @titlecount= $sth->fetchrow_array; 434 451 trunk/install/perl/mklocalizeddir.pl
r1 r94 16 16 use DBI; 17 17 use DBD::Pg; 18 18 use DBD::SQLite; 19 19 20 20 $path = $0; 21 21 $path =~ s/mklocalizeddir.pl$//i; 22 if ($p wdne "./"){22 if ($path ne "./"){ 23 23 push( @INC, "$path"); 24 24 } … … 43 43 44 44 #接続 45 my $data_source = sprintf("dbi:%s:dbname=%s;host=%s;port=%d", 46 $DBDriv,$DBName,$DBHost,$DBPort); 47 $dbh = DBI->connect($data_source,$DBUser,$DBPass) ||die $DBI::error;; 45 $dbh = DBI->connect($DSN,$DBUser,$DBPass) ||die $DBI::error;; 48 46 49 47 #検索 50 $DBQuery = "select title from foltia_program where tid=$tid "; 51 $sth = $dbh->prepare($DBQuery); 52 $sth->execute(); 48 $sth = $dbh->prepare($stmt{'mklocalizeddir.1'}); 49 $sth->execute($tid); 53 50 @subticount= $sth->fetchrow_array; 54 51 $title = $subticount[0] ; trunk/install/perl/recwrap.pl
r91 r94 15 15 use DBI; 16 16 use DBD::Pg; 17 use DBD::SQLite; 17 18 use Schedule::At; 18 19 use Time::Local; … … 21 22 $path = $0; 22 23 $path =~ s/recwrap.pl$//i; 23 if ($p wdne "./"){24 if ($path ne "./"){ 24 25 push( @INC, "$path"); 25 26 } … … 46 47 47 48 #DB初期化 48 my $data_source = sprintf("dbi:%s:dbname=%s;host=%s;port=%d", 49 $DBDriv,$DBName,$DBHost,$DBPort); 50 $dbh = DBI->connect($data_source,$DBUser,$DBPass) ||die $DBI::error;; 49 $dbh = DBI->connect($DSN,$DBUser,$DBPass) ||die $DBI::error;; 51 50 52 51 … … 57 56 } 58 57 59 $outputfile = `date +%Y%m%d-%H%M --date "1 min "`;58 $outputfile = strftime("%Y%m%d-%H%M", localtime(time + 60)); 60 59 chomp($outputfile); 61 60 … … 77 76 &writelog("recwrap RECSTART DIGITAL $digitalstationband $digitalch $reclength $stationid 0 $outputfilename $tid $countno friio"); 78 77 #録画 79 $starttime = (`date +%s`);78 $starttime = time(); 80 79 $oserr = system("$toolpath/perl/digitaltvrecording.pl $digitalstationband $digitalch $reclength $stationid 0 $outputfilename $tid $countno friio"); 81 80 $oserr = $oserr / 256; … … 119 118 #録画 120 119 #system("$toolpath/perl/tvrecording.pl $recch $reclength 0 $outputfile $bitrate $tid $countno"); 121 $starttime = (`date +%s`);120 $starttime = time(); 122 121 123 122 $oserr = system("$toolpath/perl/tvrecording.pl $recch $reclength 0 $outputfilename $bitrate $tid $countno"); … … 131 130 132 131 #デバイスビジーで即死してないか検出 133 $now = (`date +%s`);132 $now = time(); 134 133 if ($now < $starttime + 100){ #録画プロセス起動してから100秒以内に戻ってきてたら 135 $retrycounter == 0;134 $retrycounter = 0; 136 135 while($now < $starttime + 100){ 137 136 if($retrycounter >= 5){ … … 141 140 &writelog("recwrap retry recording $now $starttime"); 142 141 #アナログ録画 143 $starttime = (`date +%s`);142 $starttime = time(); 144 143 if($outputfilename =~ /.m2t$/){ 145 144 $outputfilename =~ s/.m2t$/.m2p/; 146 145 } 147 146 $oserr = system("$toolpath/perl/tvrecording.pl $recch $reclength N $outputfilename $bitrate $tid $countno"); 148 $now = (`date +%s`);147 $now = time(); 149 148 $oserr = $oserr / 256; 150 149 if ($oserr == 1){ … … 160 159 161 160 # m2pファイル名をPIDレコードに書き込み 162 $DBQuery = "UPDATE foltia_subtitle SET m2pfilename = '$outputfilename' WHERE pid = '$pid' "; 163 $sth = $dbh->prepare($DBQuery); 164 $sth->execute(); 165 &writelog("recwrap DEBUG UPDATEDB $DBQuery"); 161 $sth = $dbh->prepare($stmt{'recwrap.1'}); 162 $sth->execute($outputfilename, $pid); 163 &writelog("recwrap DEBUG UPDATEDB $stmt{'recwrap.1'}"); 166 164 &changefilestatus($pid,$FILESTATUSRECEND); 167 165 168 166 # m2pファイル名をPIDレコードに書き込み 169 $DBQuery = "insert into foltia_m2pfiles values ('$outputfilename')"; 170 $sth = $dbh->prepare($DBQuery); 171 $sth->execute(); 172 &writelog("recwrap DEBUG UPDATEDB $DBQuery"); 167 $sth = $dbh->prepare($stmt{'recwrap.2'}); 168 $sth->execute($outputfilename); 169 &writelog("recwrap DEBUG UPDATEDB $stmt{'recwrap.2'}"); 173 170 174 171 # Starlight breaker向けキャプチャ画像作成 … … 181 178 182 179 183 184 180 # MPEG4 ------------------------------------------------------ 185 181 #MPEG4トラコン必要かどうか 186 $DBQuery = "SELECT psp,aspect,title FROM foltia_program WHERE tid = '$tid' "; 187 $sth = $dbh->prepare($DBQuery); 188 $sth->execute(); 182 $sth = $dbh->prepare($stmt{'recwrap.3'}); 183 $sth->execute($tid); 189 184 @psptrcn= $sth->fetchrow_array; 190 185 if ($psptrcn[0] == 1 ){#トラコン番組 … … 192 187 exec ("$toolpath/perl/ipodtranscode.pl"); 193 188 exit; 194 #195 # ここから下は旧エンコード#2008/12/23196 # 新エンコードはDBを見て未完了MPEG2を順次トラコン処理、197 # 分散エンコードもきっとラクチンに対応可能198 # 新エンコードではXviD/M4VスタイルとPSPファイル名対応を廃止199 200 &changefilestatus($pid,80);201 #MPEG4ムービーディレクトリがあるかどうか202 203 #TIDが100以上の3桁の場合はそのまま204 my $pspfilnamehd = "";205 206 $pspfilnamehd = $tid;207 &makemp4dir($tid);208 $pspdirname = "$tid.localized/";209 $pspdirname = $recfolderpath."/".$pspdirname;210 211 #なければ作る212 #unless (-e $pspdirname ){213 # system("$toolpath/perl/mklocalizeddir.pl $tid");214 # #&writelog("recwrap mkdir $pspdirname");215 #}216 $pspdirname = "$tid.localized/mp4/";217 $pspdirname = $recfolderpath."/".$pspdirname;218 #なければ作る219 #unless (-e $pspdirname ){220 # mkdir $pspdirname ,0777;221 # #&writelog("recwrap mkdir $pspdirname");222 #}223 224 #ファイル名決定225 if ($mp4filenamestyle == 1){# 1;よりわかりやすいファイル名226 $pspfilname = $mp4newstylefilename ;227 228 }else{##0:PSP ファームウェアver.2.80より前と互換性を持つファイル名229 #・フォルダ名[100MNV01]の100の部分は変更可(100〜999)。230 # MP_ROOT ━ 100MNV01 ┳ M4V00001.MP4(動画)231 #┃ ┗ M4V00001.THM(サムネイル)※必須ではない232 233 #ファイル名決定234 #ファイル名決定 #新アルゴリズム235 #TID 0000-3599まで[3桁]236 #話数 00-999まで[2桁]237 238 my $pspfilnameft = "";239 my $pspfilnameyearhd = "";240 my $pspfilnameyearft = "";241 242 $btid = $tid % 3600;243 # print "$btid\n";244 245 if($btid >= 0 && $btid < 1000){246 247 $pspfilnamehd = sprintf("%03d",$btid);248 249 }elsif ($btid >= 1000 && $btid < 3600){250 $pspfilnameyearhd = substr($btid, 0, 2);251 $pspfilnameyearhd =~ s/10/A/;252 $pspfilnameyearhd =~ s/11/B/;253 $pspfilnameyearhd =~ s/12/C/;254 $pspfilnameyearhd =~ s/13/D/;255 $pspfilnameyearhd =~ s/14/E/;256 $pspfilnameyearhd =~ s/15/F/;257 $pspfilnameyearhd =~ s/16/G/;258 $pspfilnameyearhd =~ s/17/H/;259 $pspfilnameyearhd =~ s/18/I/;260 $pspfilnameyearhd =~ s/19/J/;261 $pspfilnameyearhd =~ s/20/K/;262 $pspfilnameyearhd =~ s/21/L/;263 $pspfilnameyearhd =~ s/22/M/;264 $pspfilnameyearhd =~ s/23/N/;265 $pspfilnameyearhd =~ s/24/O/;266 $pspfilnameyearhd =~ s/25/P/;267 $pspfilnameyearhd =~ s/26/Q/;268 $pspfilnameyearhd =~ s/27/R/;269 $pspfilnameyearhd =~ s/28/S/;270 $pspfilnameyearhd =~ s/29/T/;271 $pspfilnameyearhd =~ s/30/U/;272 $pspfilnameyearhd =~ s/31/V/;273 $pspfilnameyearhd =~ s/32/W/;274 $pspfilnameyearhd =~ s/33/X/;275 $pspfilnameyearhd =~ s/34/Y/;276 $pspfilnameyearhd =~ s/35/Z/;277 278 $pspfilnameyearft = substr($btid, 2, 2);279 $pspfilnameyearft = sprintf("%02d",$pspfilnameyearft);280 $pspfilnamehd = $pspfilnameyearhd . $pspfilnameyearft;281 282 }283 284 # 話数285 if (0 < $countno && $countno < 100 ){286 # 2桁287 $pspfilnameft = sprintf("%02d",$countno);288 }elsif(100 <= $countno && $countno < 1000 ){289 # 3桁290 $pspfilnameft = sprintf("%03d",$countno); # 話数3桁291 $pspfilnamehd = substr($pspfilnamehd, 0, 2); # TID 二桁 後ろ1バイト落とし292 }elsif(1000 <= $countno && $countno < 10000 ){293 # 4桁294 $pspfilnameft = sprintf("%04d",$countno); # 話数4桁295 $pspfilnamehd = substr($pspfilnamehd, 0, 1); # TID 1桁 後ろ2バイト落とし296 297 298 }elsif($countno == 0){299 #タイムスタンプが最新のMP4ファイル名取得300 my $newestmp4filename = `cd $pspdirname ; ls -t *.MP4 | head -1`;301 if ($newestmp4filename =~ /M4V$tid/){302 $nowcountno = $' ;303 $nowcountno++;304 $pspfilnameft = sprintf("%02d",$nowcountno);305 while (-e "$pspdirname/M4V".$pspfilnamehd.$pspfilnameft.".MP4"){306 $nowcountno++;307 $pspfilnameft = sprintf("%02d",$nowcountno);308 print "File exist:$nowcountno\n";309 }310 #print "NeXT\n";311 }else{312 # 0の場合 週番号を100から引いたもの313 # week number of year with Monday as first day of week (01..53)314 #だったけど常に0に315 # my $weeno = `date "+%V"`;316 # $weeno = 100 - $weeno ;317 # $pspfilnameft = sprintf("%02d",$weeno);318 $pspfilnameft = sprintf("%02d",0);319 #print "WEEKNO\n";320 }321 322 }323 324 my $pspfilname = $pspfilnamehd.$pspfilnameft ;325 # print "$pspfilname($pspfilnamehd/$pspfilnameft)\n";326 }# endif MP4ファイル名が新styleなら327 #2006/12/03_10:30:24 recwrap TRCNSTART vfr4psp.sh /home/foltia/php/tv/591-87-20061203-1000.m2p -591-87-20061203-1000 /home/foltia/php/tv/591.localized/mp4/ 3328 329 330 # トラコンキューイング #2007/7/10331 my $trcnprocesses = "";332 my $cpucores = `ls /proc/acpi/processor | wc -l`;333 $cpucores =~ s/[^0-9]//gi;334 unless ($cpucores >= 1 ){335 $cpucores = 1;336 }337 do {338 $trcnprocesses = `ps ax | grep ffmpeg | grep -v grep | wc -l `;339 $trcnprocesses =~ s/[^0-9]//gi;340 # 既にトラコンプロセスが走っているなら適当に待機341 if ($trcnprocesses >= $cpucores){342 if (-e "/proc/uptime" ){343 $loadaverage = `uptime`;344 chomp($loadaverage);345 }else{346 $loadaverage = "";347 }348 &writelog("recwrap TRCN WAITING :$trcnprocesses / $cpucores :$outputfilename $loadaverage");349 sleep 113;350 sleep ($recch)*5;351 }352 } until ($trcnprocesses < $cpucores);353 354 355 if (($trconqty eq "")||($trconqty == 0 )){356 &writelog("recwrap TRCNSTART vfr4psp.sh $recfolderpath/$outputfilename $pspfilname $pspdirname $psptrcn[1]");357 system("$toolpath/perl/transcode/vfr4psp.sh $recfolderpath/$outputfilename $pspfilname $pspdirname $psptrcn[1]");358 &writelog("recwrap TRCNEND vfr4psp.sh $recfolderpath/$outputfilename $pspfilname $pspdirname $psptrcn[1]");359 #最適化360 $DBQuery = "SELECT subtitle FROM foltia_subtitle WHERE tid = '$tid' AND countno = '$countno' ";361 $sth = $dbh->prepare($DBQuery);362 $sth->execute();363 @programtitle = $sth->fetchrow_array;364 if ( $countno == "0" ){365 $pspcountno = "";366 }else{367 $pspcountno = $countno ;368 }369 &writelog("recwrap OPTIMIZE mp4psp -p $pspdirname/M4V$pspfilname.MP4 -t '$psptrcn[2] $pspcountno $programtitle[0]' ");370 Jcode::convert(\$programtitle[0],'euc');371 system ("/usr/local/bin/mp4psp -p $pspdirname/M4V$pspfilname.MP4 -t '$psptrcn[2] $pspcountno $programtitle[0]'") ;372 $mp4filename = "M4V${pspfilname}.MP4";373 $thmfilename = "M4V${pspfilname}.THM";374 }else{# #2006/12/6 新エンコーダ375 376 &writelog("recwrap TRCNSTART ipodtranscode.pl $recfolderpath/$outputfilename $pspfilname $pspdirname $pid $psptrcn[1]");377 system("$toolpath/perl/ipodtranscode.pl $recfolderpath/$outputfilename $pspfilname $pspdirname $pid $psptrcn[1]");378 &writelog("recwrap TRCNEND ipodtranscode.pl $recfolderpath/$outputfilename $pspfilname $pspdirname $psptrcn[1]");379 380 if($trconqty >= 2){#H.264/AVCなら381 $mp4filename = "MAQ${pspfilname}.MP4";382 $thmfilename = "MAQ${pspfilname}.THM";383 }else{384 $mp4filename = "M4V${pspfilname}.MP4";385 $thmfilename = "M4V${pspfilname}.THM";386 }387 }388 389 #サムネール390 391 # mplayer -ss 00:01:20 -vo jpeg:outdir=/home/foltia/php/tv/443MNV01 -ao null -sstep 1 -frames 3 -v 3 /home/foltia/php/tv/443-07-20050218-0030.m2p392 #2005/02/22_18:30:05 recwrap TRCNSTART vfr4psp.sh /home/foltia/php/tv/447-21-20050222-1800.m2p 44721 /home/foltia/php/tv/447MNV01 3393 &writelog("recwrap THAMJ mplayer -ss 00:01:20 -vo jpeg:outdir=$pspdirname -ao null -sstep 1 -frames 3 -v 3 $recfolderpath/$outputfilename ");394 system ("mplayer -ss 00:01:20 -vo jpeg:outdir=$pspdirname -ao null -sstep 1 -frames 3 -v 3 $recfolderpath/$outputfilename");395 &writelog("recwrap THAMI convert -crop 160x120+1+3 -resize 165x126\! $pspdirname/00000002.jpg $pspdirname/M4V$pspdirname.THM ");396 397 if (-e "$pspdirname/$thmfilename"){398 $timestamp =`date "+%Y%m%d-%H%M%S"`;399 chomp $timestamp;400 system("convert -crop 160x120+1+3 -resize 165x126\! $pspdirname/00000002.jpg $pspdirname/$thmfilename".$timestamp.".THM");401 402 }else{403 system("convert -crop 160x120+1+3 -resize 165x126\! $pspdirname/00000002.jpg $pspdirname/$thmfilename");404 }405 # rm -rf 00000001.jpg406 # convert -resize 160x120\! 00000002.jpg M4V44307.THM407 # rm -rf 00000002.jpg408 system("rm -rf $pspdirname/0000000*.jpg ");409 410 411 412 413 # MP4ファイル名をPIDレコードに書き込み414 $DBQuery = "UPDATE foltia_subtitle SET PSPfilename = '$mp4filename' WHERE pid = '$pid' ";415 $sth = $dbh->prepare($DBQuery);416 $sth->execute();417 &writelog("recwrap UPDATEsubtitleDB $DBQuery");418 419 # MP4ファイル名をfoltia_mp4files挿入420 $DBQuery = "insert into foltia_mp4files values ('$tid','$mp4filename') ";421 $sth = $dbh->prepare($DBQuery);422 $sth->execute();423 &writelog("recwrap UPDATEmp4DB $DBQuery");424 425 &changefilestatus($pid,200);426 189 }#PSPトラコンあり 427 190 428 191 sub continuousrecordingcheck(){ 429 my $now = `date +%s --date "2 min "`;192 my $now = time() + 60 * 2; 430 193 &writelog("recwrap DEBUG continuousrecordingcheck() now $now"); 431 194 my @processes =`ps ax | grep recfriio`; … … 474 237 $startdatetime = $startdate.$filenameparts[0]; 475 238 #DBから録画中番組のデータ探す 476 $DBQuery = " 477 SELECT foltia_subtitle.tid,foltia_subtitle.countno,foltia_subtitle.subtitle,foltia_subtitle.startdatetime ,foltia_subtitle.enddatetime ,foltia_subtitle.lengthmin ,foltia_tvrecord.bitrate , foltia_subtitle.startoffset , foltia_subtitle.pid ,foltia_tvrecord.digital 478 FROM foltia_subtitle ,foltia_tvrecord 479 WHERE 480 foltia_tvrecord.tid = foltia_subtitle.tid AND 481 foltia_tvrecord.tid = $tid AND 482 foltia_subtitle.startdatetime = $startdatetime AND 483 foltia_tvrecord.digital = 1"; 484 &writelog("recwrap DEBUG continuousrecordingcheck() $DBQuery"); 485 $sth = $dbh->prepare($DBQuery); 239 &writelog("recwrap DEBUG continuousrecordingcheck() $stmt{'recwrap.7'}"); 240 $sth = $dbh->prepare($stmt{'recwrap.7'}); 486 241 &writelog("recwrap DEBUG continuousrecordingcheck() prepare"); 487 $sth->execute();242 $sth->execute($tid, $startdatetime); 488 243 &writelog("recwrap DEBUG continuousrecordingcheck() execute"); 489 244 @recfile = $sth->fetchrow_array; trunk/install/perl/schedulecheck.pl
r1 r94 14 14 use DBI; 15 15 use DBD::Pg; 16 use DBD::SQLite; 16 17 use Schedule::At; 17 18 use Time::Local; … … 19 20 $path = $0; 20 21 $path =~ s/schedulecheck.pl$//i; 21 if ($p wdne "./"){22 if ($path ne "./"){ 22 23 push( @INC, "$path"); 23 24 } … … 29 30 30 31 #予約番組探し 31 $now = &epoch2foldate( `date +%s`);32 $now = &epoch2foldate(time()); 32 33 $now = &epoch2foldate($now); 33 34 $checkrangetime = $now + 15*60;#15分後まで 34 35 $checkrangetime = &epoch2foldate($checkrangetime); 35 36 36 my $data_source = sprintf("dbi:%s:dbname=%s;host=%s;port=%d", 37 $DBDriv,$DBName,$DBHost,$DBPort); 38 $dbh = DBI->connect($data_source,$DBUser,$DBPass) ||die $DBI::error;; 37 $dbh = DBI->connect($DSN,$DBUser,$DBPass) ||die $DBI::error;; 39 38 40 $DBQuery = "SELECT count(*) FROM foltia_tvrecord "; 41 42 43 $sth = $dbh->prepare($DBQuery); 39 $sth = $dbh->prepare($stmt{'schedulecheck.1'}); 44 40 $sth->execute(); 45 41 @titlecount= $sth->fetchrow_array; … … 48 44 exit; 49 45 }else{ 50 51 $DBQuery = "SELECT tid ,stationid FROM foltia_tvrecord "; 52 $sth = $dbh->prepare($DBQuery); 46 $sth = $dbh->prepare($stmt{'schedulecheck.2'}); 53 47 $sth->execute(); 54 48 while (($tid,$stationid ) = $sth->fetchrow_array()) { trunk/install/perl/singletranscode.pl
r1 r94 28 28 use DBI; 29 29 use DBD::Pg; 30 use DBD::SQLite; 30 31 use Schedule::At; 31 32 use Time::Local; … … 34 35 $path = $0; 35 36 $path =~ s/singletranscode.pl$//i; 36 if ($p wdne "./"){37 if ($path ne "./"){ 37 38 push( @INC, "$path"); 38 39 } … … 63 64 64 65 #PSPトラコン必要かどうか 65 my $data_source = sprintf("dbi:%s:dbname=%s;host=%s;port=%d", 66 67 $DBDriv,$DBName,$DBHost,$DBPort); 68 $dbh = DBI->connect($data_source,$DBUser,$DBPass) ||die $DBI::error;; 66 $dbh = DBI->connect($DSN,$DBUser,$DBPass) ||die $DBI::error;; 69 67 70 68 if ($ARGV[1] != ""){ 71 69 $pid = $ARGV[1] ; 72 70 }else{ 73 $DBQuery = "SELECT pid FROM foltia_subtitle WHERE m2pfilename = '$ARGV[0]' "; 74 $sth = $dbh->prepare($DBQuery); 75 $sth->execute(); 71 $sth = $dbh->prepare($stmt{'singletranscode.1'}); 72 $sth->execute($ARGV[0]); 76 73 @pidarray = $sth->fetchrow_array; 77 74 unless ($pidarray[0] == "" ){ … … 86 83 # 追加部分 87 84 88 $query = "SELECT count(*) FROM foltia_subtitle WHERE tid = '$tid' AND countno = '$countno' "; 89 $sth = $dbh->prepare($query); 90 $sth->execute(); 85 $sth = $dbh->prepare($stmt{'singletranscode.2'}); 86 $sth->execute($tid, $countno); 91 87 @subticount= $sth->fetchrow_array; 92 88 unless ($subticount[0] >= 1){ 93 89 94 $query = "SELECT count(*) FROM foltia_subtitle WHERE tid = '$tid' "; 95 $sth = $dbh->prepare($query); 96 $sth->execute(); 90 $sth = $dbh->prepare($stmt{'singletranscode.3'}); 91 $sth->execute($tid); 97 92 @subticount= $sth->fetchrow_array; 98 93 … … 120 115 # PSP ------------------------------------------------------ 121 116 #PSPトラコン必要かどうか 122 $DBQuery = "SELECT psp,aspect,title FROM foltia_program WHERE tid = '$tid' "; 123 $sth = $dbh->prepare($DBQuery); 124 $sth->execute(); 117 $sth = $dbh->prepare($stmt{'singletranscode.4'}); 118 $sth->execute($tid); 125 119 @psptrcn= $sth->fetchrow_array; 126 120 if ($psptrcn[0] == 1 ){#トラコン番組 … … 227 221 my $newestmp4filename = `cd $pspdirname ; ls -t *.MP4 | head -1`; 228 222 if ($newestmp4filename =~ /M4V$tid/){ 229 $nowcountno = $' ;223 $nowcountno = $' ;#' 230 224 $nowcountno++; 231 225 $pspfilnameft = sprintf("%02d",$nowcountno); … … 261 255 #最適化 262 256 263 $DBQuery = "SELECT subtitle FROM foltia_subtitle WHERE tid = '$tid' AND countno = '$countno' "; 264 $sth = $dbh->prepare($DBQuery); 265 $sth->execute(); 257 $sth = $dbh->prepare($stmt{'singletranscode.5'}); 258 $sth->execute($tid, $countno); 266 259 @programtitle = $sth->fetchrow_array; 267 260 … … 285 278 286 279 if (-e "$pspdirname/M4V".$pspfilname.".THM"){ 287 $timestamp =`date "+%Y%m%d-%H%M%S"`;280 $timestamp = strftime("%Y%m%d-%H%M%S", localtime); 288 281 chomp $timestamp; 289 282 system("convert -crop 160x120+1+3 -resize 165x126\! $pspdirname/00000002.jpg $pspdirname/M4V".$pspfilname.".THM.".$timestamp.".THM"); … … 297 290 system("rm -rf $pspdirname/0000000*.jpg "); 298 291 299 300 301 302 292 # MP4ファイル名をPIDレコードに書き込み 303 293 unless ($pid eq ""){ 304 $DBQuery = " 305 UPDATE foltia_subtitle 306 SET PSPfilename = 'M4V$pspfilname.MP4' 307 WHERE pid = '$pid' "; 308 $sth = $dbh->prepare($DBQuery); 309 $sth->execute(); 310 &writelog("singletranscode UPDATEsubtitleDB $DBQuery"); 294 $sth = $dbh->prepare($stmt{'singletranscode.6'}); 295 $sth->execute("M4V$pspfilname.MP4", $pid); 296 &writelog("singletranscode UPDATEsubtitleDB $stmt{'singletranscode.6'}"); 311 297 }else{ 312 298 &writelog("singletranscode PID not found"); 313 299 } 314 300 # MP4ファイル名をfoltia_mp4files挿入 315 $DBQuery = "insert into foltia_mp4files values ('$tid','M4V$pspfilname.MP4') "; 316 $sth = $dbh->prepare($DBQuery); 317 $sth->execute(); 318 &writelog("singletranscode UPDATEmp4DB $DBQuery"); 301 $sth = $dbh->prepare($stmt{'singletranscode.7'}); 302 $sth->execute($tid, "M4V$pspfilname.MP4"); 303 &writelog("singletranscode UPDATEmp4DB $stmt{'singletranscode.7'}"); 319 304 320 305 }#PSPトラコンあり 321 322 trunk/install/perl/tvrecording.pl
r83 r94 29 29 $path = $0; 30 30 $path =~ s/tvrecording.pl$//i; 31 if ($p wdne "./"){31 if ($path ne "./"){ 32 32 push( @INC, "$path"); 33 33 } … … 301 301 # $outputfile .= "$ARGV[3]"; 302 302 # }else{ 303 # $outputfile .= `date +%Y%m%d-%H%M --date "1 min "`;303 # $outputfile .= strftime("%Y%m%d-%H%M", localtime(time + 60)); 304 304 # } 305 305 $outputfile = $ARGV[3]; … … 308 308 $outputfile = $outputpath.$outputfile ; 309 309 # $outputfile .= "$ARGV[3]"; 310 # $outputfile .= `date +%Y%m%d-%H%M --date "1 min "`;310 # $outputfile .= strftime("%Y%m%d-%H%M", localtime(time + 60)); 311 311 &writelog("tvrecording: DEBUG ARGV[2] ne null \$outputfile $outputfile "); 312 312 }else{ 313 $outputfile .= `date +%Y%m%d-%H%M --date "1 min "`;313 $outputfile .= strftime("%Y%m%d-%H%M", localtime(time + 60)); 314 314 chomp($outputfile); 315 315 $outputfile .= ".m2p"; trunk/install/perl/updatem2pfiletable.pl
r83 r94 16 16 use DBI; 17 17 use DBD::Pg; 18 use DBD::SQLite; 18 19 19 20 $path = $0; 20 21 $path =~ s/updatem2pfiletable.pl$//i; 21 if ($p wdne "./"){22 if ($path ne "./"){ 22 23 push( @INC, "$path"); 23 24 } 24 25 25 26 require "foltialib.pl"; 26 my $data_source = sprintf("dbi:%s:dbname=%s;host=%s;port=%d", 27 $DBDriv,$DBName,$DBHost,$DBPort); 28 $dbh = DBI->connect($data_source,$DBUser,$DBPass) ||die $DBI::error;; 27 $dbh = DBI->connect($DSN,$DBUser,$DBPass) ||die $DBI::error;; 29 28 30 29 $dbh->{AutoCommit} = 0; 31 30 # ひとまず消す 32 $query = "DELETE FROM foltia_m2pfiles "; 33 $sth = $dbh->prepare($query); 31 $sth = $dbh->prepare($stmt{'updatem2pfiletable.1'}); 34 32 $sth->execute(); 35 33 36 34 while ($file = glob("$recfolderpath/*.m2?")) { 37 35 $file =~ s/$recfolderpath\///; 38 $query = "insert into foltia_m2pfiles values ('$file')";39 $oserr = $dbh->do($query);36 $sth = $dbh->prepare($stmt{'updatem2pfiletable.2'}); 37 $sth->execute($file); 40 38 # print "$file\n"; 41 39 }#while … … 46 44 47 45 # ひとまず消す 48 $query = "DELETE FROM foltia_mp4files "; 49 $sth = $dbh->prepare($query); 46 $sth = $dbh->prepare($stmt{'updatem2pfiletable.3'}); 50 47 $sth->execute(); 51 48 … … 58 55 $filetid =~ s/[^0-9]//g; 59 56 if (($filetid ne "" )&& ($fileline[2] ne "" )){ 60 $ query = "insert into foltia_mp4files values ('$filetid','$fileline[2]')";61 $oserr = $ dbh->do($query);57 $sth = $dbh->prepare($stmt{'updatem2pfiletable.4'}); 58 $oserr = $sth->execute($filetid, $fileline[2]); 62 59 #print "$filetid;$fileline[2];$query\n" 63 60 # http://www.atmarkit.co.jp/fnetwork/rensai/sql03/sql1.html trunk/install/perl/xmltv2foltia.pl
r38 r94 30 30 use DBI; 31 31 use DBD::Pg; 32 use DBD::SQLite; 32 33 33 34 $path = $0; 34 35 $path =~ s/xmltv2foltia.pl$//i; 35 if ($p wdne "./"){36 if ($path ne "./"){ 36 37 push( @INC, "$path"); 37 38 } … … 40 41 $currentworkdate = "" ; 41 42 $currentworkch = "" ; 42 $today = `date "+%Y%m%d"`;43 $todaytime = `date "+%Y%m%d%H%M"`;43 $today = strftime("%Y%m%d", localtime); 44 $todaytime = strftime("%Y%m%d%H%M", localtime); 44 45 45 46 # DB Connect 46 my $data_source = sprintf("dbi:%s:dbname=%s;host=%s;port=%d", 47 $DBDriv,$DBName,$DBHost,$DBPort); 48 $dbh = DBI->connect($data_source,$DBUser,$DBPass) ||die $DBI::error;; 47 $dbh = DBI->connect($DSN,$DBUser,$DBPass) ||die $DBI::error;; 48 $dbh->{AutoCommit} = 0; 49 49 50 50 while(<>){ … … 187 187 }elsif(/<\/programme>/){ 188 188 #登録処理はココで 189 #&writelog("xmltv2foltia DEBUG call chkerase $item{ start},$item{channel}");190 191 &chkerase($item{start},$item{channel});192 if ($item{subtitle} ne "" ){193 $registdesc = $item{subtitle}." ".$item{desc};189 #&writelog("xmltv2foltia DEBUG call chkerase $item{'start'},$item{'channel'}"); 190 191 &chkerase($item{'start'}, $item{'channel'}); 192 if ($item{'subtitle'} ne "" ){ 193 $registdesc = $item{'subtitle'}." ".$item{'desc'}; 194 194 }else{ 195 $registdesc = $item{desc};195 $registdesc = $item{'desc'}; 196 196 } 197 ®istdb($item{start},$item{stop},$item{channel},$item{title},$registdesc ,$item{category});197 ®istdb($item{'start'},$item{'stop'},$item{'channel'},$item{'title'},$registdesc ,$item{'category'}); 198 198 199 199 # print "$item{start} … … 216 216 }# while 217 217 218 $dbh->commit; 219 220 #end 221 ################ 222 218 223 sub chkerase{ 219 224 # xmltvからきた日付とチャンネルをfoltia epgと比較 … … 232 237 # 新規に入る予定の未来の番組表、全部いったん消す 233 238 # $DBQuery = "DELETE from foltia_epg where startdatetime > $epgstartdatetime AND ontvchannel = '$ontvepgchannel' "; 234 $DBQuery = "DELETE from foltia_epg where startdatetime > $todaytime AND ontvchannel = '$ontvepgchannel' "; 235 $sth = $dbh->prepare($DBQuery); 236 $sth->execute(); 237 &writelog("xmltv2foltia DELETE EPG $epgstartdatetime:$DBQuery"); 239 $sth = $dbh->prepare($stmt{'xmltv2foltia.chkerase.1'}); 240 $sth->execute($todaytime, $ontvepgchannel); 241 &writelog("xmltv2foltia DELETE EPG $epgstartdatetime:$stmt{'xmltv2foltia.chkerase.1'}"); 238 242 #$currentworkdate = "$today"; 239 243 $currentworkch = $ontvepgchannel ; … … 261 265 if($foltiastarttime > $todaytime){ 262 266 263 my $DBQuery = "SELECT max(epgid) FROM foltia_epg "; 264 $sth = $dbh->prepare($DBQuery); 267 $sth = $dbh->prepare($stmt{'xmltv2foltia.registdb.1'}); 265 268 $sth->execute(); 266 269 @currentepgid = $sth->fetchrow_array; … … 274 277 #&writelog("xmltv2foltia DEBUG $currentepgid[0] / $newepgid"); 275 278 my $lengthmin = &calclength($foltiastarttime , $foltiaendtime); 276 $newepgid = $dbh->quote($newepgid ); 277 $foltiastarttime = $dbh->quote($foltiastarttime); 278 $foltiaendtime = $dbh->quote($foltiaendtime ); 279 $lengthmin = $dbh->quote($lengthmin ); 280 $channel = $dbh->quote($channel ); 281 $title = $dbh->quote($title); 282 $desc = $dbh->quote($desc); 283 $category = $dbh->quote($category); 284 285 $DBQuery = "insert into foltia_epg values ($newepgid,$foltiastarttime,$foltiaendtime,$lengthmin,$channel,$title,$desc,$category)"; 286 # $DBQuery = $dbh->quote($DBQuery); 287 $sth = $dbh->prepare($DBQuery); 288 $sth->execute(); 289 279 # $newepgid = $dbh->quote($newepgid ); 280 # $foltiastarttime = $dbh->quote($foltiastarttime); 281 # $foltiaendtime = $dbh->quote($foltiaendtime ); 282 # $lengthmin = $dbh->quote($lengthmin ); 283 # $channel = $dbh->quote($channel ); 284 # $title = $dbh->quote($title); 285 # $desc = $dbh->quote($desc); 286 # $category = $dbh->quote($category); 287 288 $sth = $dbh->prepare($stmt{'xmltv2foltia.registdb.2'}); 289 $sth->execute($newepgid, $foltiastarttime, $foltiaendtime, $lengthmin, $channel, $title, $desc, $category) || 290 warn "error: $newepgid, $foltiastarttime, $foltiaendtime, $lengthmin, $channel, $title, $desc, $category\n"; 290 291 291 292 # &writelog("xmltv2foltia DEBUG $DBQuery"); trunk/install/php/StarlightBreaker/sb-edit.php
r88 r94 73 73 FROM foltia_subtitle , foltia_program ,foltia_station 74 74 WHERE foltia_program.tid = foltia_subtitle.tid AND foltia_station.stationid = foltia_subtitle.stationid 75 AND foltia_subtitle.pid = '$pid'76 77 ";78 $rs = m_query($con, $query, "DBクエリに失敗しました");75 AND foltia_subtitle.pid = ? 76 "; 77 // $rs = m_query($con, $query, "DBクエリに失敗しました"); 78 $rs = sql_query($con, $query, "DBクエリに失敗しました",array($pid)); 79 79 $rows = pg_num_rows($rs); 80 80 if ($rows == 0){ trunk/install/php/accountregist.php
r70 r94 58 58 if ($username != ""){ 59 59 $query = " 60 SELECT memberid ,userclass,name,passwd160 SELECT count(memberid) 61 61 FROM foltia_envpolicy 62 WHERE foltia_envpolicy.name = '$username'62 WHERE foltia_envpolicy.name = ? 63 63 "; 64 $isaccountexist = m_query($con, $query, "DBクエリに失敗しました"); 65 $isaccountexistncount = pg_num_rows($isaccountexist); 64 // $isaccountexist = m_query($con, $query, "DBクエリに失敗しました"); 65 $isaccountexist = sql_query($con, $query, "DBクエリに失敗しました",array($username)); 66 67 $isaccountexistncount = $isaccountexist->fetchColumn(0); 66 68 67 69 if ($isaccountexistncount == 0){ … … 85 87 "; 86 88 $rs = m_query($con, $query, "DBクエリに失敗しました"); 87 $max rows = pg_num_rows($rs);88 if ($max rows == 0){89 $nextcno = 1;89 $maxid = $rs->fetchColumn(0); 90 if ($maxid) { 91 $nextcno = $maxid + 1; 90 92 }else{ 91 $rowdata = pg_fetch_row($rs, 0); 92 $nextcno = $rowdata[0]; 93 $nextcno++ ; 93 $nextcno = 1; 94 94 } 95 95 … … 110 110 $query = " 111 111 insert into foltia_envpolicy 112 values ( '$nextcno','2','$username','$userpasswd',now(),'$remotehost')";112 values ( ?,'2',?,?,now(),?)"; 113 113 //print "$query <br>\n"; 114 $rs = m_query($con, $query, "DBクエリに失敗しました"); 114 // $rs = m_query($con, $query, "DBクエリに失敗しました"); 115 $rs = sql_query($con, $query, "DBクエリに失敗しました",array($nextcno,$username,$userpasswd,$remotehost)); 115 116 116 117 print "次のアカウントを登録しました。<br> trunk/install/php/delepgp.php
r84 r94 70 70 WHERE foltia_subtitle.tid = 0 AND 71 71 foltia_station.stationid = foltia_subtitle.stationid AND 72 foltia_subtitle.pid = $pid72 foltia_subtitle.pid = ? 73 73 "; 74 74 75 $rs = m_query($con, $query, "DBクエリに失敗しました");76 $ maxrows = pg_num_rows($rs);77 78 if ($maxrows == 0) {75 // $rs = m_query($con, $query, "DBクエリに失敗しました"); 76 $rs = sql_query($con, $query, "DBクエリに失敗しました",array($pid)); 77 $rowdata = $rs->fetch(); 78 if (! $rowdate) { 79 79 die_exit("登録番組がありません<BR>"); 80 80 } 81 $rowdata = pg_fetch_row($rs, 0);82 81 83 82 $pid = htmlspecialchars($rowdata[0]); … … 114 113 DELETE 115 114 FROM foltia_subtitle 116 WHERE foltia_subtitle.pid = $pid AND foltia_subtitle.tid = 0 "; 117 $rs = m_query($con, $query, "DBクエリに失敗しました"); 115 WHERE foltia_subtitle.pid = ? AND foltia_subtitle.tid = 0 "; 116 // $rs = m_query($con, $query, "DBクエリに失敗しました"); 117 $rs = sql_query($con, $query, "DBクエリに失敗しました",array($pid)); 118 118 } 119 119 }else{ trunk/install/php/deletemovie.php
r76 r94 88 88 FROM foltia_subtitle , foltia_program 89 89 WHERE foltia_program.tid = foltia_subtitle.tid 90 AND foltia_subtitle.tid = $filesplit[0]90 AND foltia_subtitle.tid = ? 91 91 "; 92 $rs = m_query($con, $query, "DBクエリに失敗しました"); 93 $rowdata = pg_fetch_row($rs, $row); 92 //$rs = m_query($con, $query, "DBクエリに失敗しました"); 93 $rs = sql_query($con, $query, "DBクエリに失敗しました",array($filesplit[0])); 94 $rall = $rs->fetchAll(); 95 $rowdata = $rall[$row]; 94 96 //print" $fName./$rowdata[1]//$rowdata[2]<BR>\n"; 95 97 $title = $rowdata[1]; … … 103 105 FROM foltia_subtitle , foltia_program 104 106 WHERE foltia_program.tid = foltia_subtitle.tid 105 AND foltia_subtitle.tid = $filesplit[0]106 AND foltia_subtitle.countno = $filesplit[1]107 AND foltia_subtitle.tid = ? 108 AND foltia_subtitle.countno = ? 107 109 "; 108 $rs = m_query($con, $query, "DBクエリに失敗しました"); 109 $rowdata = pg_fetch_row($rs, $row); 110 //$rs = m_query($con, $query, "DBクエリに失敗しました"); 111 $rs = sql_query($con, $query, "DBクエリに失敗しました",array($filesplit[0] ,$filesplit[1])); 112 $rall = $rs->fetchAll(); 113 $rowdata = $rall[$row]; 110 114 //print" $fName./$rowdata[1]/$rowdata[2]/$rowdata[3]<BR>\n"; 111 115 $title = $rowdata[1]; … … 119 123 $count = htmlspecialchars($count); 120 124 $subtitle = htmlspecialchars($subtitle); 121 122 //--123 124 125 125 126 print " … … 138 139 $query = " 139 140 DELETE FROM foltia_m2pfiles 140 WHERE m2pfilename = '$fName'141 WHERE m2pfilename = ? 141 142 "; 142 $rs = m_query($con, $query, "DBクエリに失敗しました"); 143 //$rs = m_query($con, $query, "DBクエリに失敗しました"); 144 $rs = sql_query($con, $query, "DBクエリに失敗しました",array($fName)); 143 145 144 146 //削除処理 trunk/install/php/delreserve.php
r70 r94 44 44 <?php 45 45 46 47 $tid = getgetnumform(tid); 46 $tid = getgetnumform("tid"); 48 47 if ($tid == "") { 49 48 die_exit("番組がありません<BR>"); 50 49 } 51 $sid = getgetnumform(sid);50 $sid = getgetnumform("sid"); 52 51 if ($sid == "") { 53 52 die_exit("局がありません<BR>"); … … 70 69 foltia_tvrecord.stationid 71 70 FROM foltia_tvrecord , foltia_program , foltia_station 72 WHERE foltia_tvrecord.tid = foltia_program.tid AND foltia_tvrecord.stationid = foltia_station .stationid AND foltia_tvrecord.tid = $tid AND foltia_tvrecord.stationid = $sid "; 73 74 $rs = m_query($con, $query, "DBクエリに失敗しました"); 75 $maxrows = pg_num_rows($rs); 76 77 if ($maxrows == 0) { 71 WHERE foltia_tvrecord.tid = foltia_program.tid AND foltia_tvrecord.stationid = foltia_station .stationid AND foltia_tvrecord.tid = ? AND foltia_tvrecord.stationid = ? "; 72 73 // $rs = m_query($con, $query, "DBクエリに失敗しました"); 74 $rs = sql_query($con, $query, "DBクエリに失敗しました",array($tid,$sid)); 75 $rowdata = $rs->fetch(); 76 77 if (! $rowdata ) { 78 78 die_exit("登録番組がありません<BR>"); 79 79 } 80 $rowdata = pg_fetch_row($rs, 0);81 82 80 $tid = htmlspecialchars($rowdata[0]); 83 81 $stationname = htmlspecialchars($rowdata[1]); … … 107 105 DELETE 108 106 FROM foltia_tvrecord 109 WHERE foltia_tvrecord.tid = $tid AND foltia_tvrecord.stationid = $sid "; 110 $rs = m_query($con, $query, "DBクエリに失敗しました"); 107 WHERE foltia_tvrecord.tid = ? AND foltia_tvrecord.stationid = ? "; 108 $rs->closeCursor(); 109 // $rs = m_query($con, $query, "DBクエリに失敗しました"); 110 $rs = sql_query($con, $query, "DBクエリに失敗しました",array($tid,$sid)); 111 111 } 112 112 … … 164 164 FROM foltia_subtitle , foltia_program ,foltia_station 165 165 WHERE foltia_program.tid = foltia_subtitle.tid AND foltia_station.stationid = foltia_subtitle.stationid 166 AND foltia_subtitle.startdatetime >= '$now' AND foltia_program.tid ='$tid'166 AND foltia_subtitle.startdatetime >= ? AND foltia_program.tid = ? 167 167 ORDER BY foltia_subtitle.startdatetime ASC 168 168 "; 169 $rs = m_query($con, $query, "DBクエリに失敗しました");170 $ maxrows = pg_num_rows($rs);171 172 if ($maxrows == 0) {169 // $rs = m_query($con, $query, "DBクエリに失敗しました"); 170 $rs = sql_query($con, $query, "DBクエリに失敗しました",array($now,$tid)); 171 $rowdata = $rs->fetch(); 172 if (! $rowdata) { 173 173 echo("放映予定はありません<BR>"); 174 } 175 else{ 176 $maxcols = pg_num_fields($rs); 174 }else{ 175 $maxcols = $rs->columnCount(); 177 176 ?> 178 177 <table BORDER="0" CELLPADDING="0" CELLSPACING="2" WIDTH="100%" BGCOLOR="#bcf1be"> … … 192 191 <?php 193 192 /* テーブルのデータを出力 */ 194 for ($row = 0; $row < $maxrows; $row++) { /* 行に対応 */193 do { 195 194 echo("<tr>\n"); 196 /* pg_fetch_row で一行取り出す */197 $rowdata = pg_fetch_row($rs, $row);198 199 195 for ($col = 0; $col < $maxcols; $col++) { /* 列に対応 */ 200 196 echo("<td>".htmlspecialchars($rowdata[$col])."<br></td>\n"); 201 197 } 202 198 echo("</tr>\n"); 203 }199 } while ($row = $rs->fetch()); 204 200 }//end if 205 201 ?> trunk/install/php/folcast.php
r70 r94 51 51 $query = " 52 52 SELECT foltia_program.tid,foltia_program.title, 53 foltia_subtitle.countno , foltia_subtitle.subtitle , foltia_subtitle.startdatetime, foltia_subtitle.pspfilename,foltia_subtitle.lengthmin,foltia_subtitle.enddatetime FROM foltia_subtitle , foltia_program WHERE \"pspfilename\" ~~'M%%' AND foltia_program.tid = foltia_subtitle.tid AND foltia_program.tid = $tid53 foltia_subtitle.countno , foltia_subtitle.subtitle , foltia_subtitle.startdatetime, foltia_subtitle.pspfilename,foltia_subtitle.lengthmin,foltia_subtitle.enddatetime FROM foltia_subtitle , foltia_program WHERE \"pspfilename\" LIKE 'M%%' AND foltia_program.tid = foltia_subtitle.tid AND foltia_program.tid = $tid 54 54 ORDER BY \"enddatetime\" DESC 55 55 offset 0 limit $max … … 59 59 SELECT foltia_program.tid,foltia_program.title 60 60 FROM foltia_program 61 WHERE foltia_program.tid = $tid61 WHERE foltia_program.tid = ? 62 62 "; 63 $titlers = m_query($con, $query, "DBクエリに失敗しました"); 64 $rowdata = pg_fetch_row($titlers, 0); 63 // $titlers = m_query($con, $query, "DBクエリに失敗しました"); 64 $titlers = sql_query($con, $query, "DBクエリに失敗しました",array($tid)); 65 $rowdata = $titlers->fetch(); 65 66 $rsstitle = $rowdata[1]; 66 67 }else{ … … 68 69 $query = " 69 70 SELECT foltia_program.tid,foltia_program.title, 70 foltia_subtitle.countno , foltia_subtitle.subtitle , foltia_subtitle.startdatetime, foltia_subtitle.pspfilename,foltia_subtitle.lengthmin,foltia_subtitle.enddatetime FROM foltia_subtitle , foltia_program WHERE \"pspfilename\" ~~'M%%' AND foltia_program.tid = foltia_subtitle.tid ORDER BY \"enddatetime\" DESC71 offset 0 limit $max71 foltia_subtitle.countno , foltia_subtitle.subtitle , foltia_subtitle.startdatetime, foltia_subtitle.pspfilename,foltia_subtitle.lengthmin,foltia_subtitle.enddatetime FROM foltia_subtitle , foltia_program WHERE \"pspfilename\" LIKE 'M%%' AND foltia_program.tid = foltia_subtitle.tid ORDER BY \"enddatetime\" DESC 72 offset 0 limit ? 72 73 "; 73 74 $rsstitle = "新規録画"; … … 96 97 print $header; 97 98 98 $rs = m_query($con, $query, "DBクエリに失敗しました"); 99 $maxrows = pg_num_rows($rs); 99 // $rs = m_query($con, $query, "DBクエリに失敗しました"); 100 $rs = sql_query($con, $query, "DBクエリに失敗しました",array($max)); 101 $rowdata = $rs->fetch(); 100 102 101 if ( $maxrows == 0) {103 if (! $rowdata) { 102 104 //die_exit("No items"); 103 105 }else{ 104 105 for ($row = 0; $row < $maxrows; $row++) { 106 $rowdata = pg_fetch_row($rs, $row); 107 106 do { 108 107 //$title = mb_convert_encoding($rowdata[1],"UTF-8", "EUC-JP"); 109 108 $tid = $rowdata[0]; … … 163 162 print $item ; 164 163 165 }//for 164 } while ($rowdata = $rs->fetch()); //do 166 165 167 166 }//if trunk/install/php/foltia_config2.php.template
r83 r94 27 27 28 28 // データベース接続設定 29 define("DATABASE_NAME", "foltia"); 30 define("DBHOST", "localhost"); 31 define("USER_NAME" , "foltia" ); 32 define("USER_PASSWORD", "passwd" ); 29 // define("DSN", "pgsql:host=localhost dbname=foltia user=foltia password= "); 30 define("DSN", "sqlite:/home/foltia/foltia.sqlite"); 33 31 34 32 // $mylocalip = "192.168.0.177" ; //動いている機械のIPアドレス trunk/install/php/foltialib.php
r89 r94 93 93 } 94 94 } 95 96 /* LIKE 用の文字列のエスケープ */ 97 function escape_like($sql, $quote = TRUE) { 98 return ($quote ? "'" : "") . 99 str_replace(array("\\\\", "%" , "_" ), 100 array("\\\\\\\\", "\\\\%", "\\\\_"), 101 pg_escape_string($sql)) . 102 ($quote ? "'" : ""); 103 } 104 95 105 96 /* SQL 文字列のエスケープ */ 106 97 function escape_string($sql, $quote = FALSE) { … … 108 99 return "null"; 109 100 } 101 if (preg_match("/^pgsql/", DSN)){ 110 102 return ($quote ? "'" : "") . 111 103 pg_escape_string($sql) . 112 104 ($quote ? "'" : ""); 113 } 105 }else if (preg_match("/^sqlite/", DSN)){ 106 /* return ($quote ? "'" : "") . 107 sqlite_escape_string($sql) . 108 ($quote ? "'" : ""); 109 */ 110 return($sql); 111 }else{ 112 return "null"; 113 } 114 } 114 115 115 116 /* SQL 数値のエスケープ */ … … 124 125 } 125 126 126 /* PostgreSQL サーバに接続 */127 /* DBに接続 */ 127 128 function m_connect() { 128 /* $con = @pg_connect("host=".DBHOST ." dbname=".DATABASE_NAME . 129 " user=".USER_NAME . 130 " password=".USER_PASSWORD); 131 */ 132 $con = @pg_pconnect("host=".DBHOST ." dbname=".DATABASE_NAME . 133 " user=".USER_NAME . 134 " password=".USER_PASSWORD); 135 136 137 if (!$con) { 138 die_exit("データベースに接続出来ませんでした。"); 129 try { 130 $dbh = new PDO(DSN); 131 $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 132 return($dbh); 133 } catch (PDOException $e) { 134 die_exit($e->getMessage() . ": データベースに接続出来ませんでした。"); 139 135 } 140 136 /* データベースと、PHP の内部文字コードが違う場合 */ 141 return($con);142 137 } 143 138 144 139 /* データベースとの接続を切り離す */ 145 function m_close($con) { 146 return @pg_close($con); 147 } 148 149 /* SQL 文を実行 */ 150 function m_query($con, $query, $errmessage) { 151 $rtn = @pg_query($con, $query); 152 if (!$rtn) { 140 function m_close($dbh) { 141 return null; 142 } 143 144 //旧関数 sql_queryに置き換え 145 function m_query($dbh, $query, $errmessage) { 146 try { 147 $rtn = $dbh->query($query); 148 return($rtn); 149 } catch (PDOException $e) { 153 150 /* エラーメッセージに SQL 文を出すのはセキュリティ上良くない!! */ 154 151 $msg = $errmessage . "<br>\n" . 155 @pg_last_error($con) . "<br>\n" . 152 $e->getMessage() . "<br>\n" . 153 var_export($e->errorInfo, true) . "<br>\n" . 156 154 "<small><code>" . htmlspecialchars($query) . 157 155 "</code></small>\n"; 158 $rtn = @pg_query($con, "rollback");//04.4.8 159 m_close($con);156 // $dbh->rollBack(); 157 $dbh = null; 160 158 die_exit($msg); 161 159 } 160 } 161 /* SQL 文を実行 */ 162 function sql_query($dbh, $query, $errmessage,$paramarray) { 163 try { 164 $rtn = $dbh->prepare("$query"); 165 $rtn->execute($paramarray); 162 166 return($rtn); 167 } catch (PDOException $e) { 168 /* エラーメッセージに SQL 文を出すのはセキュリティ上良くない!! */ 169 $msg = $errmessage . "<br>\n" . 170 $e->getMessage() . "<br>\n" . 171 var_export($e->errorInfo, true) . "<br>\n" . 172 "<small><code>" . htmlspecialchars($query) . 173 "</code></small>\n"; 174 // $dbh->rollBack(); 175 $dbh = null; 176 die_exit($msg); 177 } 163 178 } 164 179 … … 166 181 function m_showtable($rs) { 167 182 /* 検索件数 */ 168 $maxrows = pg_num_rows($rs);183 $maxrows = 0; 169 184 170 if ($maxrows == 0) { 185 $rowdata = $rs->fetch(); 186 if (! $rowdata) { 171 187 echo("<p class=\"msg\">データが存在しません</p>\n"); 172 188 return 0; … … 174 190 175 191 /* フィールド数 */ 176 $maxcols = pg_num_fields($rs);192 $maxcols = $rs->columnCount(); 177 193 ?> 178 194 <table class="list" summary="データ検索結果を表示" border="1"> … … 183 199 for ($col = 1; $col < $maxcols; $col++) { 184 200 /* pg_field_name() はフィールド名を返す */ 185 $f_name = htmlspecialchars(pg_field_name($rs, $col)); 201 $meta = $rs->getColumnMeta($col); 202 $f_name = htmlspecialchars($meta["name"]); 186 203 echo("<th abbr=\"$f_name\">$f_name</th>\n"); 187 204 } … … 192 209 <?php 193 210 /* テーブルのデータを出力 */ 194 for ($row = 0; $row < $maxrows; $row++) { /* 行に対応 */ 211 do { 212 $maxrows++; 213 195 214 echo("<tr>\n"); 196 /* pg_fetch_row で一行取り出す */197 $rowdata = pg_fetch_row($rs, $row);198 215 /* 1列目にリンクを張る */ 199 216 echo("<td><a href=\"edit.php?q_code=" . … … 204 221 } 205 222 echo("</tr>\n"); 206 }223 } while ($rowdata = $rs->fetch()); 207 224 ?> 208 225 </tbody> … … 212 229 } 213 230 214 /* 指定したコードのデータを表示 */ 215 function m_viewdata($con, $code) { 216 /* コードに該当するデータを検索 */ 217 $query = " 231 232 function m_viewdata($dbh, $code) { 233 234 /*これ使ってないよね? 235 236 $query = " 218 237 select p.code 219 238 ,p.name … … 222 241 ,s.name as job 223 242 ,p.profile 224 , to_char(p.editdate, 'YYYY/MM/DD HH24:MI:SS') as editdate243 ,datetime(p.editdate) as editdate 225 244 from inet_profile p left join inet_job s on p.job = s.code 226 245 where p.code = $code"; 227 $rs = m_query($con, $query, "個人情報の取得に失敗しました。"); 228 if (pg_num_rows($rs) == 0) { 246 $rs = m_query($dbh, $query, "個人情報の取得に失敗しました。"); 247 $rowdata = $rs->fetch(); 248 if (! $rowdata) { 229 249 echo("<p class=\"msg\">データが存在しません</p>\n"); 230 250 return FALSE; 231 251 } 232 252 233 /* フィールド数 */ 234 $maxcols = pg_num_fields($rs); 235 /* 先頭行 */ 236 $rowdata = pg_fetch_row($rs, 0); 253 // フィールド数 254 $maxcols = $rs->columnCount(); 237 255 ?> 238 256 <table class="view" summary="データベース上のデータを表示" border="1"> 239 257 <tr> 240 <td class="name"><?= htmlspecialchars(pg_field_name($rs, 1)) ?></td> 258 <?php $meta = $rs->getColumnMeta(1); ?> 259 <td class="name"><?= htmlspecialchars($meta["name"]) ?></td> 241 260 <td><a href="edit.php?q_code=<?= $rowdata[0] ?>" 242 261 ><?= htmlspecialchars($rowdata[1]) ?></a></td> 243 262 </tr> 244 <?php for ($col = 2; $col < $maxcols; $col++) { ?> 263 <?php for ($col = 2; $col < $maxcols; $col++) { 264 $meta = $rs->getColumnMeta($col); ?> 245 265 <tr> 246 <td class="name"><?= htmlspecialchars(pg_field_name($rs, $col)) ?></td>266 <td class="name"><?= htmlspecialchars($meta["name"]) ?></td> 247 267 <td><?= htmlspecialchars($rowdata[$col]) ?></td> 248 268 </tr> … … 250 270 </table> 251 271 <?php 252 /* クエリーを解放 */ 253 pg_free_result($rs); 254 272 // クエリーを解放 273 $rs = null; 255 274 return TRUE; 275 */ 256 276 } 257 277 … … 294 314 "; 295 315 $rs = m_query($con, $query, "DBクエリに失敗しました"); 296 $ maxrows = pg_num_rows($rs);297 if ($maxrows == 0) {316 $rowdata = $rs->fetch(); 317 if (! $rowdata) { 298 318 print("番組データがありません<BR>"); 299 319 }else{ … … 301 321 //print "<ul><!-- ($maxrows) $query -->\n"; 302 322 303 for ($row = 0; $row < $maxrows; $row++) { 304 305 $rowdata = pg_fetch_row($rs, $row); 306 323 do { 307 324 $printstarttime = substr($rowdata[0],8,2) . ":" . substr($rowdata[0],10,2); 308 325 $tdclass = "t".substr($rowdata[0],8,2) . substr($rowdata[0],10,2); … … 323 340 </li>\n"; 324 341 */ 325 }//for 342 } while ($rowdata = $rs->fetch());//do 326 343 //print "</ul>\n"; 327 344 print "</table>\n"; … … 429 446 global $recfolderpath,$recfolderpath; 430 447 431 exec ( "df -h $recfolderpath | grep $recfolderpath", $hdfreearea); 432 $freearea = preg_split ("/[\s,]+/", $hdfreearea[0]); 448 // exec ( "df -h $recfolderpath | grep $recfolderpath", $hdfreearea); 449 // $freearea = preg_split ("/[\s,]+/", $hdfreearea[0]); 450 exec ( "df -hP $recfolderpath", $hdfreearea); 451 $freearea = preg_split ("/[\s,]+/", $hdfreearea[count($hdfreearea)-1]); 433 452 434 453 return $freearea; … … 557 576 "; 558 577 $useraccount = m_query($con, $query, "DBクエリに失敗しました"); 559 $useraccountrows = pg_num_rows($useraccount); 560 561 if ($useraccountrows == 1 ){ 562 $rowdata = pg_fetch_row($useraccount, 0); 578 $rowdata = $useraccount->fetch(); 579 if (! $rowdata) { 580 header("HTTP/1.0 401 Unauthorized"); 581 redirectlogin(); 582 } 583 563 584 $memberid = $rowdata[0]; 564 585 $userclass = $rowdata[1]; 565 586 $username = $rowdata[2]; 566 587 $dbpasswd = $rowdata[3]; 567 }else{ 588 589 $rowdata = $useraccount->fetch(); 590 if ($rowdata) { 568 591 header("HTTP/1.0 401 Unauthorized"); 569 //print "<!-- DEBUG DB record error ($useraccountrows)-->";570 592 redirectlogin(); 571 }//end if 572 593 } 573 594 574 595 // passwdをdbから取りだし … … 627 648 "; 628 649 $useraccount = m_query($con, $query, "DBクエリに失敗しました"); 629 $useraccountrows = pg_num_rows($useraccount); 630 631 if ($useraccountrows == 1 ){ 632 $rowdata = pg_fetch_row($useraccount, 0); 633 //$userclass = $rowdata[1]; 634 return ($rowdata[1]); 635 }else{ 636 return (99);//エラー 637 }//end if 650 $rowdata = $useraccount->fetch(); 651 if (! $rowdata) { 652 return (99); 653 } 654 655 $userclass = $rowdata[1]; 656 657 $rowdata = $useraccount->fetch(); 658 if ($rowdata) { 659 return (99); 660 } 661 662 return ($userclass); 638 663 639 664 }else{ … … 655 680 "; 656 681 $useraccount = m_query($con, $query, "DBクエリに失敗しました"); 657 $useraccountrows = pg_num_rows($useraccount); 658 659 if ($useraccountrows == 1 ){ 660 $rowdata = pg_fetch_row($useraccount, 0); 661 //$userclass = $rowdata[1]; 662 return ($rowdata[0]); 663 }else{ 682 $rowdata = $useraccount->fetch(); 683 if (! $rowdata) { 664 684 return (-1);//エラー 665 }//end if 685 } 686 687 $memberid = $rowdata[0]; 688 689 $rowdata = $useraccount->fetch(); 690 if ($rowdata) { 691 return (-1); 692 } 693 694 return ($memberid); 666 695 667 696 }else{ … … 682 711 "; 683 712 $useraccount = m_query($con, $query, "DBクエリに失敗しました"); 684 $useraccountrows = pg_num_rows($useraccount); 685 686 if ($useraccountrows == 1 ){ 687 $rowdata = pg_fetch_row($useraccount, 0); 688 return ($rowdata[2]); 713 $rowdata = $useraccount->fetch(); 714 if (! $rowdata) { 715 return ("");//エラー 716 } 717 718 $name = $rowdata[2]; 719 720 $rowdata = $useraccount->fetch(); 721 if ($rowdata) { 722 return (""); 723 } 724 725 return ($name); 726 689 727 }else{ 690 return ("");//エラー728 return (""); 691 729 }//end if 692 693 }else{694 return ("");695 }//end if696 697 698 730 699 731 }//end function getmemberid2name trunk/install/php/graytable.css
r51 r94 1 body * {margin:0px;padding:0px;border:0px;}1 // body * {margin:0px;padding:0px;border:0px;} 2 2 3 3 body { trunk/install/php/index.php
r83 r94 67 67 WHERE foltia_tvrecord.tid = foltia_program.tid 68 68 AND foltia_program.tid = foltia_subtitle.tid 69 AND foltia_subtitle.enddatetime >= '$now'69 AND foltia_subtitle.enddatetime >= ? 70 70 ORDER BY \"startdatetime\" ASC 71 71 LIMIT 1000 72 72 "; 73 $reservedrssametid = m_query($con, $query, "DBクエリに失敗しました"); 74 $reservedmaxrowssameid = pg_num_rows($reservedrssametid); 75 76 if ($reservedmaxrowssameid > 0 ){ 77 for ($rrow = 0; $rrow < $reservedmaxrowssameid ; $rrow++) { 78 $rowdata = pg_fetch_row($reservedrssametid, $rrow); 73 // $reservedrssametid = m_query($con, $query, "DBクエリに失敗しました"); 74 $reservedrssametid = sql_query($con, $query, "DBクエリに失敗しました",array($now)); 75 $rowdata = $reservedrssametid->fetch(); 76 if ($rowdata) { 77 do { 79 78 $reservedpidsametid[] = $rowdata[7]; 80 } 79 } while ($rowdata = $reservedrssametid->fetch()); 80 81 81 $rowdata = ""; 82 $rrow = "";83 82 }else{ 84 $reservedpidsametid = "";83 $reservedpidsametid = array(); 85 84 }//end if 85 $reservedrssametid->closeCursor(); 86 86 87 87 //録画番組検索 88 88 $query = " 89 89 SELECT 90 foltia_program .tid, 91 stationname, 92 foltia_program .title, 93 foltia_subtitle.countno, 94 foltia_subtitle.subtitle, 95 foltia_subtitle.startdatetime , 96 foltia_subtitle.lengthmin , 97 foltia_tvrecord.bitrate , 98 foltia_subtitle.pid 90 foltia_program.tid, stationname, foltia_program.title, 91 foltia_subtitle.countno, foltia_subtitle.subtitle, 92 foltia_subtitle.startdatetime as x, foltia_subtitle.lengthmin, 93 foltia_tvrecord.bitrate, foltia_subtitle.pid 99 94 FROM foltia_subtitle , foltia_program ,foltia_station ,foltia_tvrecord 100 95 WHERE foltia_tvrecord.tid = foltia_program.tid AND foltia_tvrecord.stationid = foltia_station .stationid AND foltia_program.tid = foltia_subtitle.tid AND foltia_station.stationid = foltia_subtitle.stationid … … 102 97 UNION 103 98 SELECT 104 foltia_program .tid, 105 stationname, 106 foltia_program .title, 107 foltia_subtitle.countno, 108 foltia_subtitle.subtitle, 109 foltia_subtitle.startdatetime , 110 foltia_subtitle.lengthmin , 111 foltia_tvrecord.bitrate , 112 foltia_subtitle.pid 99 foltia_program.tid, stationname, foltia_program.title, 100 foltia_subtitle.countno, foltia_subtitle.subtitle, 101 foltia_subtitle.startdatetime, foltia_subtitle.lengthmin, 102 foltia_tvrecord.bitrate, foltia_subtitle.pid 113 103 FROM foltia_tvrecord 114 104 LEFT OUTER JOIN foltia_subtitle on (foltia_tvrecord.tid = foltia_subtitle.tid ) … … 116 106 LEFT OUTER JOIN foltia_station on (foltia_subtitle.stationid = foltia_station.stationid ) 117 107 WHERE foltia_tvrecord.stationid = 0 AND 118 foltia_subtitle.enddatetime >= '$now' ORDER BY \"startdatetime\" ASC 119 LIMIT 1000 120 "; 121 122 $reservedrs = m_query($con, $query, "DBクエリに失敗しました"); 123 $reservedmaxrows = pg_num_rows($reservedrs); 124 125 if ($reservedmaxrows > 0 ){ 126 for ($rrow = 0; $rrow < $reservedmaxrows ; $rrow++) { 127 $rowdata = pg_fetch_row($reservedrs, $rrow); 108 foltia_subtitle.enddatetime >= '$now' ORDER BY x ASC 109 LIMIT 1000 110 "; 111 112 //$reservedrs = m_query($con, $query, "DBクエリに失敗しました"); 113 $query = " 114 SELECT 115 foltia_program.tid, stationname, foltia_program.title, 116 foltia_subtitle.countno, foltia_subtitle.subtitle, 117 foltia_subtitle.startdatetime as x, foltia_subtitle.lengthmin, 118 foltia_tvrecord.bitrate, foltia_subtitle.pid 119 FROM foltia_subtitle , foltia_program ,foltia_station ,foltia_tvrecord 120 WHERE foltia_tvrecord.tid = foltia_program.tid AND foltia_tvrecord.stationid = foltia_station .stationid AND foltia_program.tid = foltia_subtitle.tid AND foltia_station.stationid = foltia_subtitle.stationid 121 AND foltia_subtitle.enddatetime >= ? 122 UNION 123 SELECT 124 foltia_program.tid, stationname, foltia_program.title, 125 foltia_subtitle.countno, foltia_subtitle.subtitle, 126 foltia_subtitle.startdatetime, foltia_subtitle.lengthmin, 127 foltia_tvrecord.bitrate, foltia_subtitle.pid 128 FROM foltia_tvrecord 129 LEFT OUTER JOIN foltia_subtitle on (foltia_tvrecord.tid = foltia_subtitle.tid ) 130 LEFT OUTER JOIN foltia_program on (foltia_tvrecord.tid = foltia_program.tid ) 131 LEFT OUTER JOIN foltia_station on (foltia_subtitle.stationid = foltia_station.stationid ) 132 WHERE foltia_tvrecord.stationid = 0 AND 133 foltia_subtitle.enddatetime >= ? ORDER BY x ASC 134 LIMIT 1000 135 "; 136 $reservedrs = sql_query($con, $query, "DBクエリに失敗しました",array($now,$now)); 137 138 $rowdata = $reservedrs->fetch(); 139 if ($rowdata) { 140 do { 128 141 $reservedpid[] = $rowdata[8]; 129 } 142 } while ($rowdata = $reservedrs->fetch()); 130 143 }else{ 131 $reservedpid = "";144 $reservedpid = array(); 132 145 }//end if 133 146 … … 138 151 $query = " 139 152 SELECT 140 foltia_program .tid, 141 stationname, 142 foltia_program .title, 143 foltia_subtitle.countno, 144 foltia_subtitle.subtitle, 145 foltia_subtitle.startdatetime , 146 foltia_subtitle.lengthmin , 147 foltia_subtitle.pid , 148 foltia_subtitle.startoffset 153 foltia_program.tid, stationname, foltia_program.title, 154 foltia_subtitle.countno, foltia_subtitle.subtitle, 155 foltia_subtitle.startdatetime, foltia_subtitle.lengthmin, 156 foltia_subtitle.pid, foltia_subtitle.startoffset 149 157 FROM foltia_subtitle , foltia_program ,foltia_station 150 158 WHERE foltia_program.tid = foltia_subtitle.tid AND foltia_station.stationid = foltia_subtitle.stationid … … 153 161 LIMIT 1000 154 162 "; 155 $rs = m_query($con, $query, "DBクエリに失敗しました"); 156 $maxrows = pg_num_rows($rs); 157 158 163 $query = " 164 SELECT 165 foltia_program.tid, stationname, foltia_program.title, 166 foltia_subtitle.countno, foltia_subtitle.subtitle, 167 foltia_subtitle.startdatetime, foltia_subtitle.lengthmin, 168 foltia_subtitle.pid, foltia_subtitle.startoffset 169 FROM foltia_subtitle , foltia_program ,foltia_station 170 WHERE foltia_program.tid = foltia_subtitle.tid AND foltia_station.stationid = foltia_subtitle.stationid 171 AND foltia_subtitle.enddatetime >= ? AND foltia_subtitle.countno = '1' 172 ORDER BY foltia_subtitle.startdatetime ASC 173 LIMIT 1000 174 "; 159 175 }else{ 160 176 $query = " 161 177 SELECT 162 foltia_program .tid, 163 stationname, 164 foltia_program .title, 165 foltia_subtitle.countno, 166 foltia_subtitle.subtitle, 167 foltia_subtitle.startdatetime , 168 foltia_subtitle.lengthmin , 169 foltia_subtitle.pid , 170 foltia_subtitle.startoffset 178 foltia_program.tid, stationname, foltia_program.title, 179 foltia_subtitle.countno, foltia_subtitle.subtitle, 180 foltia_subtitle.startdatetime, foltia_subtitle.lengthmin, 181 foltia_subtitle.pid, foltia_subtitle.startoffset 171 182 FROM foltia_subtitle , foltia_program ,foltia_station 172 183 WHERE foltia_program.tid = foltia_subtitle.tid AND foltia_station.stationid = foltia_subtitle.stationid … … 175 186 LIMIT 1000 176 187 "; 177 $rs = m_query($con, $query, "DBクエリに失敗しました"); 178 $maxrows = pg_num_rows($rs); 179 188 $query = " 189 SELECT 190 foltia_program.tid, stationname, foltia_program.title, 191 foltia_subtitle.countno, foltia_subtitle.subtitle, 192 foltia_subtitle.startdatetime, foltia_subtitle.lengthmin, 193 foltia_subtitle.pid, foltia_subtitle.startoffset 194 FROM foltia_subtitle , foltia_program ,foltia_station 195 WHERE foltia_program.tid = foltia_subtitle.tid AND foltia_station.stationid = foltia_subtitle.stationid 196 AND foltia_subtitle.enddatetime >= ? 197 ORDER BY foltia_subtitle.startdatetime ASC 198 LIMIT 1000 199 "; 180 200 }//end if 181 201 182 if ($maxrows == 0) { 202 //$rs = m_query($con, $query, "DBクエリに失敗しました"); 203 $rs = sql_query($con, $query, "DBクエリに失敗しました",array($now)); 204 $rowdata = $rs->fetch(); 205 if (! $rowdata) { 183 206 header("Status: 404 Not Found",TRUE,404); 184 207 printtitle(); … … 211 234 <? 212 235 /* フィールド数 */ 213 $maxcols = pg_num_fields($rs);236 $maxcols = $rs->columnCount(); 214 237 ?> 215 238 <table BORDER="0" CELLPADDING="0" CELLSPACING="2" WIDTH="100%"> … … 230 253 <?php 231 254 /* テーブルのデータを出力 */ 232 for ($row = 0; $row < $maxrows; $row++) { /* 行に対応 */ 233 /* pg_fetch_row で一行取り出す */ 234 $rowdata = pg_fetch_row($rs, $row); 235 255 do { 236 256 //他局で同一番組録画済みなら色変え 237 257 if (in_array($rowdata[7], $reservedpidsametid)) { … … 283 303 284 304 echo("</tr>\n"); 285 } 305 } while ($rowdata = $rs->fetch()); 286 306 ?> 287 307 </tbody> trunk/install/php/listreserve.php
r90 r94 62 62 $query = " 63 63 SELECT 64 foltia_program .tid, 65 stationname, 66 foltia_program .title, 67 foltia_subtitle.countno, 68 foltia_subtitle.subtitle, 69 foltia_subtitle.startdatetime , 70 foltia_subtitle.lengthmin , 71 foltia_tvrecord.bitrate , 72 foltia_subtitle.startoffset , 73 foltia_subtitle.pid , 74 foltia_subtitle.epgaddedby , 64 foltia_program.tid, stationname, foltia_program.title, 65 foltia_subtitle.countno, foltia_subtitle.subtitle, 66 foltia_subtitle.startdatetime as x, foltia_subtitle.lengthmin, 67 foltia_tvrecord.bitrate, foltia_subtitle.startoffset, 68 foltia_subtitle.pid, foltia_subtitle.epgaddedby, 75 69 foltia_tvrecord.digital 76 70 FROM foltia_subtitle , foltia_program ,foltia_station ,foltia_tvrecord 77 71 WHERE foltia_tvrecord.tid = foltia_program.tid AND foltia_tvrecord.stationid = foltia_station .stationid AND foltia_program.tid = foltia_subtitle.tid AND foltia_station.stationid = foltia_subtitle.stationid 78 AND foltia_subtitle.enddatetime >= '$now'72 AND foltia_subtitle.enddatetime >= ? 79 73 UNION 80 74 SELECT 81 foltia_program .tid, 82 stationname, 83 foltia_program .title, 84 foltia_subtitle.countno, 85 foltia_subtitle.subtitle, 86 foltia_subtitle.startdatetime , 87 foltia_subtitle.lengthmin , 88 foltia_tvrecord.bitrate , 89 foltia_subtitle.startoffset , 90 foltia_subtitle.pid , 91 foltia_subtitle.epgaddedby , 75 foltia_program.tid, stationname, foltia_program.title, 76 foltia_subtitle.countno, foltia_subtitle.subtitle, 77 foltia_subtitle.startdatetime, foltia_subtitle.lengthmin, 78 foltia_tvrecord.bitrate, foltia_subtitle.startoffset, 79 foltia_subtitle.pid, foltia_subtitle.epgaddedby, 92 80 foltia_tvrecord.digital 93 81 FROM foltia_tvrecord … … 96 84 LEFT OUTER JOIN foltia_station on (foltia_subtitle.stationid = foltia_station.stationid ) 97 85 WHERE foltia_tvrecord.stationid = 0 AND 98 foltia_subtitle.enddatetime >= '$now' ORDER BY \"startdatetime\"ASC86 foltia_subtitle.enddatetime >= ? ORDER BY x ASC 99 87 "; 100 88 101 $rs = m_query($con, $query, "DBクエリに失敗しました"); 102 $maxrows = pg_num_rows($rs); 103 89 // $rs = m_query($con, $query, "DBクエリに失敗しました"); 90 $rs = sql_query($con, $query, "DBクエリに失敗しました",array($now,$now)); 104 91 105 92 //チューナー数 … … 122 109 123 110 <? 124 if ($maxrows == 0) { 111 $rowdata = $rs->fetch(); 112 if (! $rowdata) { 125 113 print "番組データがありません<BR>\n"; 126 114 }else{ 127 128 129 115 /* フィールド数 */ 130 $maxcols = pg_num_fields($rs);116 $maxcols = $rs->columnCount(); 131 117 ?> 132 118 <table BORDER="0" CELLPADDING="0" CELLSPACING="2" WIDTH="100%"> … … 149 135 <?php 150 136 /* テーブルのデータを出力 */ 151 for ($row = 0; $row < $maxrows; $row++) { /* 行に対応 */137 do { 152 138 echo("<tr>\n"); 153 /* pg_fetch_row で一行取り出す */ 154 $rowdata = pg_fetch_row($rs, $row); 139 155 140 $pid = htmlspecialchars($rowdata[9]); 156 141 … … 168 153 $query = " 169 154 SELECT 170 foltia_program .tid, 171 stationname, 172 foltia_program .title, 173 foltia_subtitle.countno, 174 foltia_subtitle.subtitle, 175 foltia_subtitle.startdatetime , 176 foltia_subtitle.lengthmin , 177 foltia_tvrecord.bitrate , 178 foltia_subtitle.startoffset , 179 foltia_subtitle.pid , 180 foltia_tvrecord.digital 155 foltia_program.tid, stationname, foltia_program.title, 156 foltia_subtitle.countno, foltia_subtitle.subtitle, 157 foltia_subtitle.startdatetime, foltia_subtitle.lengthmin, 158 foltia_tvrecord.bitrate, foltia_subtitle.startoffset, 159 foltia_subtitle.pid, foltia_tvrecord.digital 181 160 FROM foltia_subtitle , foltia_program ,foltia_station ,foltia_tvrecord 182 161 WHERE foltia_tvrecord.tid = foltia_program.tid AND foltia_tvrecord.stationid = foltia_station .stationid AND foltia_program.tid = foltia_subtitle.tid AND foltia_station.stationid = foltia_subtitle.stationid 183 AND foltia_subtitle.enddatetime > '$rowdata[5]'184 AND foltia_subtitle.startdatetime < '$endtime'162 AND foltia_subtitle.enddatetime > ? 163 AND foltia_subtitle.startdatetime < ? 185 164 UNION 186 165 SELECT 187 foltia_program .tid, 188 stationname, 189 foltia_program .title, 190 foltia_subtitle.countno, 191 foltia_subtitle.subtitle, 192 foltia_subtitle.startdatetime , 193 foltia_subtitle.lengthmin , 194 foltia_tvrecord.bitrate , 195 foltia_subtitle.startoffset , 196 foltia_subtitle.pid , 197 foltia_tvrecord.digital 166 foltia_program.tid, stationname, foltia_program.title, 167 foltia_subtitle.countno, foltia_subtitle.subtitle, 168 foltia_subtitle.startdatetime, foltia_subtitle.lengthmin, 169 foltia_tvrecord.bitrate, foltia_subtitle.startoffset, 170 foltia_subtitle.pid, foltia_tvrecord.digital 198 171 FROM foltia_tvrecord 199 172 LEFT OUTER JOIN foltia_subtitle on (foltia_tvrecord.tid = foltia_subtitle.tid ) … … 201 174 LEFT OUTER JOIN foltia_station on (foltia_subtitle.stationid = foltia_station.stationid ) 202 175 WHERE foltia_tvrecord.stationid = 0 AND 203 foltia_subtitle.enddatetime > '$rowdata[5]'204 AND foltia_subtitle.startdatetime < '$endtime'205 176 foltia_subtitle.enddatetime > ? 177 AND foltia_subtitle.startdatetime < ? 178 "; 206 179 $rclass = ""; 207 $overlap = m_query($con, $query, "DBクエリに失敗しました"); 208 $overlapmaxrows = pg_num_rows($overlap); 180 // $overlap = m_query($con, $query, "DBクエリに失敗しました"); 181 $overlap = sql_query($con, $query, "DBクエリに失敗しました",array($rowdata[5],$endtime,$rowdata[5],$endtime)); 182 $owrowall = $overlap->fetchAll(); 183 $overlapmaxrows = count($owrowall); 209 184 if ($overlapmaxrows > ($recunits) ){ 210 185 … … 212 187 213 188 for ($rrow = 0; $rrow < $overlapmaxrows ; $rrow++) { 214 $owrowdata = pg_fetch_array($overlap, $rrow);189 $owrowdata = $owrowall[$rrow]; 215 190 $owtimeline[ $owrowdata['startdatetime'] ] = $owtimeline[ $owrowdata['startdatetime'] ] +1; 216 191 … … 237 212 $query = " 238 213 SELECT 239 foltia_program .tid, 240 stationname, 241 foltia_program .title, 242 foltia_subtitle.countno, 243 foltia_subtitle.subtitle, 244 foltia_subtitle.startdatetime , 245 foltia_subtitle.lengthmin , 246 foltia_tvrecord.bitrate , 247 foltia_subtitle.startoffset , 248 foltia_subtitle.pid , 249 foltia_tvrecord.digital 214 foltia_program.tid, stationname, foltia_program.title, 215 foltia_subtitle.countno, foltia_subtitle.subtitle, 216 foltia_subtitle.startdatetime, foltia_subtitle.lengthmin, 217 foltia_tvrecord.bitrate, foltia_subtitle.startoffset, 218 foltia_subtitle.pid, foltia_tvrecord.digital 250 219 FROM foltia_subtitle , foltia_program ,foltia_station ,foltia_tvrecord 251 220 WHERE foltia_tvrecord.tid = foltia_program.tid AND foltia_tvrecord.stationid = foltia_station .stationid AND foltia_program.tid = foltia_subtitle.tid AND foltia_station.stationid = foltia_subtitle.stationid 252 AND foltia_subtitle.enddatetime > '$rowdata[5]'253 AND foltia_subtitle.startdatetime < '$endtime'221 AND foltia_subtitle.enddatetime > ? 222 AND foltia_subtitle.startdatetime < ? 254 223 AND (foltia_station.stationrecch = '0' OR foltia_station.stationrecch = '-1' ) 255 224 UNION 256 225 SELECT 257 foltia_program .tid, 258 stationname, 259 foltia_program .title, 260 foltia_subtitle.countno, 261 foltia_subtitle.subtitle, 262 foltia_subtitle.startdatetime , 263 foltia_subtitle.lengthmin , 264 foltia_tvrecord.bitrate , 265 foltia_subtitle.startoffset , 266 foltia_subtitle.pid , 267 foltia_tvrecord.digital 226 foltia_program.tid, stationname, foltia_program.title, 227 foltia_subtitle.countno, foltia_subtitle.subtitle, 228 foltia_subtitle.startdatetime, foltia_subtitle.lengthmin, 229 foltia_tvrecord.bitrate, foltia_subtitle.startoffset, 230 foltia_subtitle.pid, foltia_tvrecord.digital 268 231 FROM foltia_tvrecord 269 232 LEFT OUTER JOIN foltia_subtitle on (foltia_tvrecord.tid = foltia_subtitle.tid ) … … 271 234 LEFT OUTER JOIN foltia_station on (foltia_subtitle.stationid = foltia_station.stationid ) 272 235 WHERE foltia_tvrecord.stationid = 0 AND 273 foltia_subtitle.enddatetime > '$rowdata[5]'274 AND foltia_subtitle.startdatetime < '$endtime'236 foltia_subtitle.enddatetime > ? 237 AND foltia_subtitle.startdatetime < ? 275 238 AND (foltia_station.stationrecch = '0' OR foltia_station.stationrecch = '-1' ) 276 277 239 "; 278 $eoverlap = m_query($con, $query, "DBクエリに失敗しました"); 279 $eoverlapmaxrows = pg_num_rows($eoverlap); 240 // $eoverlap = m_query($con, $query, "DBクエリに失敗しました"); 241 $eoverlap = sql_query($con, $query, "DBクエリに失敗しました",array($rowdata[5], $endtime,$rowdata[5], $endtime)); 242 $eowrowall = $eoverlap->fetchAll(); 243 $eoverlapmaxrows = count($eowrowall); 280 244 if ($eoverlapmaxrows > ($externalinputs) ){ 281 245 … … 283 247 284 248 for ($erow = 0; $erow < $eoverlapmaxrows ; $erow++) { 285 $eowrowdata = pg_fetch_array($eoverlap, $erow);249 $eowrowdata = $eowrowall[$erow]; 286 250 $eowtimeline[ $eowrowdata['startdatetime'] ] = $eowtimeline[ $eowrowdata['startdatetime'] ] +1; 287 251 … … 359 323 echo("<br></td>\n"); 360 324 echo("</tr>\n"); 361 }325 } while ($rowdata = $rs->fetch()); 362 326 ?> 363 327 </tbody> … … 374 338 375 339 <?php 376 } //if ($maxrows == 0) { 377 378 340 } //if ($maxrows == 0) 379 341 $query = " 380 342 SELECT 381 foltia_program.tid, 382 stationname, 383 foltia_program .title , 384 foltia_tvrecord.bitrate , 385 foltia_tvrecord.stationid , 343 foltia_program.tid, stationname, foltia_program.title, 344 foltia_tvrecord.bitrate, foltia_tvrecord.stationid, 386 345 foltia_tvrecord.digital 387 346 FROM foltia_tvrecord , foltia_program , foltia_station … … 389 348 ORDER BY foltia_program.tid DESC 390 349 "; 391 $rs = m_query($con, $query, "DBクエリに失敗しました");392 $ maxrows = pg_num_rows($rs);393 394 if ($maxrows == 0) {350 // $rs = m_query($con, $query, "DBクエリに失敗しました"); 351 $rs = sql_query($con, $query, "DBクエリに失敗しました"); 352 $rowdata = $rs->fetch(); 353 if (! $rowdata) { 395 354 //なければなにもしない 396 355 397 356 }else{ 398 $maxcols = pg_num_fields($rs);357 $maxcols = $rs->columnCount(); 399 358 400 359 ?> … … 417 376 <?php 418 377 /* テーブルのデータを出力 */ 419 for ($row = 0; $row < $maxrows; $row++) { /* 行に対応 */ 420 /* pg_fetch_row で一行取り出す */ 421 $rowdata = pg_fetch_row($rs, $row); 422 378 do { 423 379 $tid = htmlspecialchars($rowdata[0]); 424 380 … … 468 424 echo("\n</tr>"); 469 425 }//if tid 0 470 }//for426 } while ($rowdata = $rs->fetch()); 471 427 }//else 472 428 ?> trunk/install/php/m.php
r83 r94 97 97 SELECT stationname 98 98 FROM foltia_station 99 WHERE stationid = $recstid"; 100 $stationvalid = m_query($con, $query, "DBクエリに失敗しました"); 101 $stationcount = pg_num_rows($stationvalid); 102 103 if ($stationcount == 1){ 104 $recstationname = pg_fetch_row($stationvalid, 0); 105 //valid 106 }else{ 99 WHERE stationid = ? "; 100 // $stationvalid = m_query($con, $query, "DBクエリに失敗しました"); 101 $stationvalid = sql_query($con, $query, "DBクエリに失敗しました",array($recstid)); 102 $recstationname = $stationvalid->fetch(); 103 if (! $recstationname) { 107 104 $errflag = 3; 108 105 $errmsg = "放送局設定が異常です。"; … … 128 125 //min pidを探す 129 126 $query = "SELECT min(pid) FROM foltia_subtitle "; 130 $rs = m_query($con, $query, "DBクエリに失敗しました"); 131 $maxrows = pg_num_rows($rs); 132 if ($maxrows == 0){ 133 $insertpid = -1 ; 127 // $rs = m_query($con, $query, "DBクエリに失敗しました"); 128 $rs = sql_query($con, $query, "DBクエリに失敗しました"); 129 $rowdata = $rs->fetch(); 130 if (! $rowdata) { 131 $insertpid = -1 ; 134 132 }else{ 135 $rowdata = pg_fetch_row($rs, 0); 136 $insertpid = $rowdata[0]; 137 $insertpid-- ; 133 if ($rowdata[0] > 0) { 134 $insertpid = -1 ; 135 }else{ 136 $insertpid = $rowdata[0]; 137 $insertpid-- ; 138 } 138 139 } 139 140 // next 話数を探す 140 141 $query = "SELECT max(countno) FROM foltia_subtitle WHERE tid = 0"; 141 $rs = m_query($con, $query, "DBクエリに失敗しました"); 142 $maxrows = pg_num_rows($rs); 143 if ($maxrows == 0){ 142 // $rs = m_query($con, $query, "DBクエリに失敗しました"); 143 $rs = sql_query($con, $query, "DBクエリに失敗しました"); 144 $rowdata = $rs->fetch(); 145 if (! $rowdata) { 144 146 $nextcno = 1 ; 145 147 }else{ 146 $rowdata = pg_fetch_row($rs, 0);147 148 $nextcno = $rowdata[0]; 148 149 $nextcno++ ; … … 159 160 insert into foltia_subtitle (pid ,tid ,stationid , countno ,subtitle , 160 161 startdatetime ,enddatetime ,startoffset , lengthmin , epgaddedby ) 161 values ( '$insertpid','0','$recstid', 162 '$nextcno','$pname','$startdatetime','$enddatetime','0' ,'$lengthmin', '$memberid')"; 162 values ( ?,'0',?,?,?,?,?,'0',?,?)"; 163 163 164 $rs = m_query($con, $query, "DBクエリに失敗しました"); 164 // $rs = m_query($con, $query, "DBクエリに失敗しました"); 165 //print "【DEBUG】$insertpid,$recstid,$nextcno,$pname,$startdatetime,$enddatetime ,$lengthmin,$memberid <br>\n"; 166 $rs = sql_query($con, $query, "DBクエリに失敗しました",array($insertpid,$recstid,$nextcno,$pname,$startdatetime,$enddatetime ,$lengthmin,$memberid)); 165 167 166 168 //addatq.pl … … 168 170 //引数 TID チャンネルID 169 171 //echo("$toolpath/perl/addatq.pl $tid $station"); 170 171 $oserr = system("$toolpath/perl/addatq.pl 0 0"); 172 exec("$toolpath/perl/addatq.pl 0 0"); 173 $oserr = system("$toolpath/perl/addatq.pl 0 0"); 174 //--------------------------------------------------- 175 if ($oserr){ 176 print "[DEBUG]$oserr 「$toolpath/perl/addatq.pl 0 0」<br>\n"; 177 }else{ 178 print "[DEBUG]exec addatq.pl false 「$toolpath/perl/addatq.pl 0 0」<br>\n"; 179 180 $oserr = system("$toolpath/perl/perltestscript.pl"); 181 if ($oserr){ 182 print "[DEBUG]exec perltestscript.pl $oserr<br>\n"; 183 }else{ 184 print "[DEBUG]exec perltestscript.pl false <br>\n"; 185 } 186 187 } 188 //----------------------------------------------------- 172 189 }else{ 173 190 print "EPG予約を行う権限がありません。"; … … 200 217 }// 初回表示かデータ処理か 201 218 ?> 202 <form id="record" name="record" method="get" action="./m.php" >219 <form id="record" name="record" method="get" action="./m.php" autocomplete="off"> 203 220 <p>放送日: 204 221 <input name="startdate" type="text" id="startdate" size="9" value="<?=$startdate?>" /> … … 215 232 <?php 216 233 $query = " 217 SELECT stationid ,stationname,stationrecch ,digitalch234 SELECT stationid as x, stationname, stationrecch, digitalch 218 235 FROM foltia_station 219 236 WHERE stationrecch > 0 … … 221 238 SELECT DISTINCT stationid,stationname,stationrecch ,digitalch 222 239 FROM foltia_station 223 WHERE digitalch > 0 224 ORDER BY \"stationid\" ASC"; 225 226 $stations = m_query($con, $query, "DBクエリに失敗しました"); 227 $stationcount = pg_num_rows($stations); 228 229 if ($stationcount > 0 ){ 230 for ($row = 0; $row < $stationcount ; $row++) { 231 $rowdata = pg_fetch_row($stations, $row); 240 WHERE digitalch > 0 241 ORDER BY x ASC"; 242 243 $stations = sql_query($con, $query, "DBクエリに失敗しました"); 244 $rowdata = $stations->fetch(); 245 246 if ($rowdata) { 247 do { 232 248 if ($recstid == $rowdata[0]){ 233 print " <input name=\"recstid\" type=\"radio\" value=\"$rowdata[0]\" checked /> $rowdata[1] ($rowdata[2]ch ) \n";249 print " <input name=\"recstid\" type=\"radio\" value=\"$rowdata[0]\" checked /> $rowdata[1] ($rowdata[2]ch / $rowdata[3]ch) \n"; 234 250 }else{ 235 print " <input name=\"recstid\" type=\"radio\" value=\"$rowdata[0]\" /> $rowdata[1] ($rowdata[2]ch ) \n";251 print " <input name=\"recstid\" type=\"radio\" value=\"$rowdata[0]\" /> $rowdata[1] ($rowdata[2]ch / $rowdata[3]ch) \n"; 236 252 } 237 }253 } while ($rowdata = $stations->fetch()); 238 254 }else{ 239 255 print "放送局データベースが正しくセットアップされていません。録画可能局がありません"; 240 256 } 241 257 //外部入力チャンネル 242 258 $query = " 243 SELECT stationid ,stationname,stationrecch259 SELECT stationid as x ,stationname,stationrecch 244 260 FROM foltia_station 245 261 WHERE stationrecch > -2 AND stationrecch < 1 246 ORDER BY \"stationid\" ASC"; 247 248 $stations = m_query($con, $query, "DBクエリに失敗しました"); 249 $stationcount = pg_num_rows($stations); 250 251 if ($stationcount > 0 ){ 252 for ($row = 0; $row < $stationcount ; $row++) { 253 $rowdata = pg_fetch_row($stations, $row); 262 ORDER BY x ASC"; 263 264 // $stations = m_query($con, $query, "DBクエリに失敗しました"); 265 $stations = sql_query($con, $query, "DBクエリに失敗しました"); 266 $rowdata = $stations->fetch(); 267 if ($rowdata) { 268 do { 254 269 if ($rowdata[0] != 0){ 255 270 if ($recstid == $rowdata[0]){ … … 260 275 261 276 } 262 } 277 } while ($rowdata = $stations->fetch()); 263 278 } 264 279 /* trunk/install/php/reservecomp.php
r83 r94 67 67 68 68 //タイトル取得 69 $query = "select title from foltia_program where tid ='$tid'";70 $rs = m_query($con, $query, "DBクエリに失敗しました");71 $ maxrows = pg_num_rows($rs);72 73 if ($maxrows == 0) {69 $query = "select title from foltia_program where tid = ? "; 70 // $rs = m_query($con, $query, "DBクエリに失敗しました"); 71 $rs = sql_query($con, $query, "DBクエリに失敗しました",array($tid)); 72 $rowdata = $rs->fetch(); 73 if (! $rowdata) { 74 74 $title = "(未登録)"; 75 75 }else{ 76 $rowdata = pg_fetch_row($rs, 0);77 76 $title = htmlspecialchars($rowdata[0]); 78 77 } … … 130 129 } 131 130 $rs = m_query($con, $query, "DBクエリに失敗しました"); 132 $maxrows = pg_num_rows($rs); 133 134 if ($maxrows == 0) { 131 $rowdata = $rs->fetch(); 132 if (! $rowdata) { 135 133 echo("放映予定はいまのところありません<BR>"); 136 134 } 137 135 else{ 138 $maxcols = pg_num_fields($rs);136 $maxcols = $rs->columnCount(); 139 137 ?> 140 138 <table BORDER="0" CELLPADDING="0" CELLSPACING="2" WIDTH="100%" BGCOLOR="#bcf1be"> … … 155 153 <?php 156 154 /* テーブルのデータを出力 */ 157 for ($row = 0; $row < $maxrows; $row++) { /* 行に対応 */ 155 do { 158 156 echo("<tr>\n"); 159 /* pg_fetch_row で一行取り出す */160 $rowdata = pg_fetch_row($rs, $row);161 162 157 for ($col = 0; $col < $maxcols; $col++) { /* 列に対応 */ 163 158 echo("<td>".htmlspecialchars($rowdata[$col])."<br></td>\n"); 164 159 } 165 160 echo("</tr>\n"); 166 } 161 } while ($rowdata = $rs->fetch()); 167 162 }//end if 168 163 ?> … … 177 172 //既存が予約あって、新着が全局予約だったら 178 173 if ($station ==0){ 179 $query = "180 SELECT181 *182 FROM foltia_tvrecord183 WHERE tid = '$tid'184 ";185 $rs = m_query($con, $query, "DBクエリに失敗しました");186 $maxrows = pg_num_rows($rs);187 if ($maxrows > 0){188 174 //既存局を消す 189 175 $query = "DELETE 190 176 FROM foltia_tvrecord 191 WHERE tid = '$tid'192 "; 193 $rs = m_query($con, $query, "DBクエリに失敗しました");194 }177 WHERE tid = ? 178 "; 179 // $rs = m_query($con, $query, "DBクエリに失敗しました"); 180 $rs = sql_query($con, $query, "DBクエリに失敗しました",array($tid)); 195 181 }//endif 196 182 197 183 $query = " 198 184 SELECT 199 *185 count(*) 200 186 FROM foltia_tvrecord 201 WHERE tid = '$tid' AND stationid = '$station'202 "; 203 $rs = m_query($con, $query, "DBクエリに失敗しました");204 $ maxrows = pg_num_rows($rs);205 187 WHERE tid = ? AND stationid = ? 188 "; 189 // $rs = m_query($con, $query, "DBクエリに失敗しました"); 190 $rs = sql_query($con, $query, "DBクエリに失敗しました",array($tid,$station)); 191 $maxrows = $rs->fetchColumn(0); 206 192 if ($maxrows == 0) { //新規追加 207 $query = "INSERT INTO foltia_tvrecord values ('$tid','$station','$bitrate','$usedigital')"; 208 $rs = m_query($con, $query, "DB書き込みに失敗しました"); 193 $query = "INSERT INTO foltia_tvrecord values (?,?,?,?)"; 194 // $rs = m_query($con, $query, "DB書き込みに失敗しました"); 195 $rs = sql_query($con, $query, "DB書き込みに失敗しました",array($tid,$station,$bitrate,$usedigital)); 209 196 }else{//修正 (ビットレート) 210 197 $query = "UPDATE foltia_tvrecord SET 211 bitrate = '$bitrate' , digital = '$usedigital' WHERE tid = '$tid' AND stationid = '$station' "; 212 $rs = m_query($con, $query, "DB書き込みに失敗しました"); 198 bitrate = ? , digital = ? WHERE tid = ? AND stationid = ? "; 199 // $rs = m_query($con, $query, "DB書き込みに失敗しました"); 200 $rs = sql_query($con, $query, "DB書き込みに失敗しました",array( $bitrate, $usedigital , $tid , $station )); 213 201 } 214 202 trunk/install/php/reserveepg.php
r70 r94 56 56 stationname , stationrecch ,stationid 57 57 FROM foltia_epg , foltia_station 58 WHERE epgid ='$epgid'AND foltia_station.ontvcode = foltia_epg.ontvchannel58 WHERE epgid = ? AND foltia_station.ontvcode = foltia_epg.ontvchannel 59 59 ";//4812 60 $rs = m_query($con, $query, "DBクエリに失敗しました");61 $ maxrows = pg_num_rows($rs);62 63 if ($maxrows == 0) {60 // $rs = m_query($con, $query, "DBクエリに失敗しました"); 61 $rs = sql_query($con, $query, "DBクエリに失敗しました",array($epgid)); 62 $rowdata = $rs->fetch(); 63 if (! $rowdata) { 64 64 die_exit("登録番組がありません<BR>"); 65 65 } 66 $rowdata = pg_fetch_row($rs, 0); 66 67 67 //$title = htmlspecialchars($rowdata[0]); 68 68 ?> … … 136 136 $query = " 137 137 SELECT 138 foltia_program .title, 139 foltia_program .tid, 140 stationname, 141 foltia_station.stationid , 142 foltia_subtitle.countno, 143 foltia_subtitle.subtitle, 144 foltia_subtitle.startdatetime , 145 foltia_subtitle.lengthmin , 146 foltia_tvrecord.bitrate , 147 foltia_subtitle.startoffset , 148 foltia_subtitle.pid 138 foltia_program.title, foltia_program.tid, stationname, 139 foltia_station.stationid, foltia_subtitle.countno, 140 foltia_subtitle.subtitle, foltia_subtitle.startdatetime, 141 foltia_subtitle.lengthmin, foltia_tvrecord.bitrate, 142 foltia_subtitle.startoffset, foltia_subtitle.pid 149 143 FROM foltia_subtitle , foltia_program ,foltia_station ,foltia_tvrecord 150 144 WHERE foltia_tvrecord.tid = foltia_program.tid AND foltia_tvrecord.stationid = foltia_station .stationid AND foltia_program.tid = foltia_subtitle.tid AND foltia_station.stationid = foltia_subtitle.stationid 151 AND foltia_subtitle.startdatetime = '$startfoltime'152 AND foltia_subtitle.enddatetime = '$endfoltime'153 AND foltia_station.stationid = '$stationid'145 AND foltia_subtitle.startdatetime = ? 146 AND foltia_subtitle.enddatetime = ? 147 AND foltia_station.stationid = ? 154 148 UNION 155 149 SELECT 156 foltia_program .title, 157 foltia_program .tid, 158 stationname, 159 foltia_station.stationid , 160 foltia_subtitle.countno, 161 foltia_subtitle.subtitle, 162 foltia_subtitle.startdatetime , 163 foltia_subtitle.lengthmin , 164 foltia_tvrecord.bitrate , 165 foltia_subtitle.startoffset , 166 foltia_subtitle.pid 150 foltia_program.title, foltia_program.tid, stationname, 151 foltia_station.stationid, foltia_subtitle.countno, 152 foltia_subtitle.subtitle, foltia_subtitle.startdatetime, 153 foltia_subtitle.lengthmin, foltia_tvrecord.bitrate, 154 foltia_subtitle.startoffset, foltia_subtitle.pid 167 155 FROM foltia_tvrecord 168 156 LEFT OUTER JOIN foltia_subtitle on (foltia_tvrecord.tid = foltia_subtitle.tid ) … … 170 158 LEFT OUTER JOIN foltia_station on (foltia_subtitle.stationid = foltia_station.stationid ) 171 159 WHERE foltia_tvrecord.stationid = 0 172 AND foltia_subtitle.startdatetime = '$startfoltime'173 AND foltia_subtitle.enddatetime = '$endfoltime'174 AND foltia_station.stationid = '$stationid'160 AND foltia_subtitle.startdatetime = ? 161 AND foltia_subtitle.enddatetime = ? 162 AND foltia_station.stationid = ? 175 163 "; 176 164 177 178 179 $rs = m_query($con, $query, "DBクエリに失敗しました");180 $maxrows = pg_num_rows($rs);181 182 165 //print "<!--$query \n $maxrows\n -->"; 183 166 184 167 print "<form name=\"recordingsetting\" method=\"POST\" action=\"reserveepgcomp.php\">\n"; 185 168 186 if ($maxrows == 0) { 169 //$rs = m_query($con, $query, "DBクエリに失敗しました"); 170 $rs = sql_query($con, $query, "DBクエリに失敗しました",array($startfoltime,$endfoltime,$stationid,$startfoltime,$endfoltime,$stationid)); 171 $chkoverwrap = $rs->fetch(); 172 if (! $chkoverwrap) { 187 173 //重複なし 188 174 print "<input type=\"submit\" value=\"予約\" ><br>\n"; 189 175 }else{ 190 $chkoverwrap = pg_fetch_row($rs, 0);191 176 $prereservedtitle = htmlspecialchars($chkoverwrap[0]); 192 177 $tid = htmlspecialchars($chkoverwrap[1]); trunk/install/php/reserveepgcomp.php
r83 r94 72 72 //min pidを探す 73 73 $query = "SELECT min(pid) FROM foltia_subtitle "; 74 $rs = m_query($con, $query, "DBクエリに失敗しました"); 75 $maxrows = pg_num_rows($rs); 76 if ($maxrows == 0){ 74 // $rs = m_query($con, $query, "DBクエリに失敗しました"); 75 $rs = sql_query($con, $query, "DBクエリに失敗しました"); 76 $rowdata = $rs->fetch(); 77 if (! $rowdata) { 77 78 $insertpid = -1 ; 78 79 }else{ 79 $rowdata = pg_fetch_row($rs, 0);80 81 80 $insertpid = $rowdata[0]; 82 81 if ($insertpid > 0){ … … 88 87 // next 話数を探す 89 88 $query = "SELECT max(countno) FROM foltia_subtitle WHERE tid = 0"; 90 $rs = m_query($con, $query, "DBクエリに失敗しました"); 91 $maxrows = pg_num_rows($rs); 92 if ($maxrows == 0){ 89 // $rs = m_query($con, $query, "DBクエリに失敗しました"); 90 $rs = sql_query($con, $query, "DBクエリに失敗しました"); 91 $rowdata = $rs->fetch(); 92 if (! $rowdata) { 93 93 $nextcno = 1 ; 94 94 }else{ 95 $rowdata = pg_fetch_row($rs, 0);96 95 $nextcno = $rowdata[0]; 97 96 $nextcno++ ; … … 124 123 insert into foltia_subtitle (pid ,tid ,stationid , countno ,subtitle , 125 124 startdatetime ,enddatetime ,startoffset , lengthmin , epgaddedby ) 126 values ( '$insertpid','0','$stationid',127 '$nextcno','$subtitle','$startdatetime','$enddatetime','0' ,'$lengthmin' , '$memberid')";128 $rs = m_query($con, $query, "DBクエリに失敗しました");125 values ( ?,'0',?,?,?,?,?,'0',?,?)"; 126 // $rs = m_query($con, $query, "DBクエリに失敗しました"); 127 $rs = sql_query($con, $query, "DBクエリに失敗しました",array($insertpid,$stationid,$nextcno,$subtitle,$startdatetime,$enddatetime,$lengthmin,$memberid)); 129 128 130 129 //addatq.pl trunk/install/php/reserveprogram.php
r83 r94 53 53 54 54 //タイトル取得 55 $query = "select title from foltia_program where tid ='$tid'";56 $rs = m_query($con, $query, "DBクエリに失敗しました");57 $maxrows = pg_num_rows($rs);58 59 if ($maxrows == 0) {55 $query = "select title from foltia_program where tid = ? "; 56 // $rs = m_query($con, $query, "DBクエリに失敗しました"); 57 $rs = sql_query($con, $query, "DBクエリに失敗しました",array($tid)); 58 $rowdata = $rs->fetch(); 59 if (! $rowdata) { 60 60 die_exit("登録番組がありません<BR>"); 61 61 } 62 $rowdata = pg_fetch_row($rs, 0); 62 63 63 $title = htmlspecialchars($rowdata[0]); 64 64 ?> … … 100 100 FROM foltia_subtitle , foltia_program ,foltia_station 101 101 WHERE foltia_program.tid = foltia_subtitle.tid AND foltia_station.stationid = foltia_subtitle.stationid 102 AND foltia_program.tid = '$tid'102 AND foltia_program.tid = ? 103 103 ORDER BY stationrecch DESC 104 104 "; 105 106 $rs = m_query($con, $query, "DBクエリに失敗しました"); 107 $maxrows = pg_num_rows($rs); 108 109 if ($maxrows == 0) { 105 // $rs = m_query($con, $query, "DBクエリに失敗しました"); 106 $rs = sql_query($con, $query, "DBクエリに失敗しました",array($tid)); 107 $rowdata = $rs->fetch(); 108 if (! $rowdata) { 110 109 echo("放映局情報がまだはいってません<BR>"); 111 110 } 112 111 else{ 113 $maxcols = pg_num_fields($rs);112 $maxcols = $rs->columnCount(); 114 113 115 114 echo("<select name=\"station\">\n"); 116 115 /* テーブルのデータを出力 */ 117 for ($row = 0; $row < $maxrows; $row++) { /* 行に対応 */ 118 /* pg_fetch_row で一行取り出す */ 119 $rowdata = pg_fetch_row($rs, $row); 116 do { 120 117 echo("<option value=\""); 121 118 echo(htmlspecialchars($rowdata[0])); … … 123 120 echo(htmlspecialchars($rowdata[1])); 124 121 echo("</option>\n"); 125 }//for122 } while ($rowdata = $rs->fetch()); 126 123 echo("<option value=\"0\">全局</option>\n</select>\n"); 127 124 }//endif … … 182 179 FROM foltia_subtitle , foltia_program ,foltia_station 183 180 WHERE foltia_program.tid = foltia_subtitle.tid AND foltia_station.stationid = foltia_subtitle.stationid 184 AND foltia_subtitle.startdatetime >= '$now' AND foltia_program.tid ='$tid'181 AND foltia_subtitle.startdatetime >= ? AND foltia_program.tid = ? 185 182 ORDER BY foltia_subtitle.startdatetime ASC 186 183 "; 187 $rs = m_query($con, $query, "DBクエリに失敗しました");188 $maxrows = pg_num_rows($rs);189 190 if ($maxrows == 0) {184 // $rs = m_query($con, $query, "DBクエリに失敗しました"); 185 $rs = sql_query($con, $query, "DBクエリに失敗しました",array($now,$tid)); 186 $rowdata = $rs->fetch(); 187 if (! $rowdata) { 191 188 echo("放映予定はありません<BR>"); 192 189 } 193 190 else{ 194 $maxcols = pg_num_fields($rs);191 $maxcols = $rs->columnCount(); 195 192 ?> 196 193 <table BORDER="0" CELLPADDING="0" CELLSPACING="2" WIDTH="100%" BGCOLOR="#bcf1be"> … … 210 207 <?php 211 208 /* テーブルのデータを出力 */ 212 for ($row = 0; $row < $maxrows; $row++) { /* 行に対応 */ 209 do { 213 210 echo("<tr>\n"); 214 /* pg_fetch_row で一行取り出す */215 $rowdata = pg_fetch_row($rs, $row);216 217 211 for ($col = 0; $col < $maxcols; $col++) { /* 列に対応 */ 218 212 if ($col == 3){ … … 223 217 } 224 218 echo("</tr>\n"); 225 } 219 } while ($rowdata = $rs->fetch()); 226 220 }//end if 227 221 ?> trunk/install/php/selectcaptureimage.php
r85 r94 74 74 FROM foltia_subtitle , foltia_program ,foltia_station 75 75 WHERE foltia_program.tid = foltia_subtitle.tid AND foltia_station.stationid = foltia_subtitle.stationid 76 AND foltia_subtitle.pid = '$pid'76 AND foltia_subtitle.pid = ? 77 77 78 78 "; 79 $rs = m_query($con, $query, "DBクエリに失敗しました"); 80 $rows = pg_num_rows($rs); 81 if ($rows == 0){ 79 // $rs = m_query($con, $query, "DBクエリに失敗しました"); 80 $rs = sql_query($con, $query, "DBクエリに失敗しました",array($pid)); 81 $rowdata = $rs->fetch(); 82 if (! $rowdata) { 82 83 print " <p align=\"left\"><font color=\"#494949\" size=\"6\">キャプチャ画像</font></p> 83 84 <hr size=\"4\"> … … 87 88 88 89 }else{ 89 $rowdata = pg_fetch_row($rs, 0);90 91 90 print " <p align=\"left\"><font color=\"#494949\" size=\"6\">キャプチャ画像</font></p> 92 91 <hr size=\"4\"> trunk/install/php/showlib.php
r83 r94 84 84 "; 85 85 86 $rs = m_query($con, $query, "DBクエリに失敗しました"); 87 88 $maxrows = pg_num_rows($rs); 89 90 if ($maxrows > 0 ){ 86 //$rs = m_query($con, $query, "DBクエリに失敗しました"); 87 $rs = sql_query($con, $query, "DBクエリに失敗しました"); 88 $rowdata = $rs->fetch(); 89 if ($rowdata) { 91 90 if(ereg("iPhone",$useragent)){ 92 91 print "<ul id=\"home\" title=\"録画ライブラリ表示\" selected=\"true\">"; … … 105 104 "; 106 105 } 107 for ($row = 0; $row < $maxrows; $row++) { 108 $rowdata = pg_fetch_row($rs, $row); 106 do { 109 107 $title = $rowdata[1]; 110 108 $counts = $rowdata[2]; … … 125 123 "; 126 124 } 127 }//for 125 } while ($rowdata = $rs->fetch()); 128 126 129 127 if(ereg("iPhone",$useragent)){ … … 160 158 "; 161 159 $rs = m_query($con, $query, "DBクエリに失敗しました"); 162 $rowdata = pg_fetch_row($rs, $row);160 $rowdata = $rs->fetch(); 163 161 //print" $fName./$rowdata[1]/$rowdata[2]/$rowdata[3]<BR>\n"; 164 162 $title = $rowdata[1]; trunk/install/php/showlibc.php
r83 r94 68 68 SELECT foltia_program.title 69 69 FROM foltia_program 70 WHERE foltia_program.tid = $tid 71 "; 72 $rs = m_query($con, $query, "DBクエリに失敗しました"); 73 $maxrows = pg_num_rows($rs); 74 if ($maxrows == 0 ){ 75 $syobocaldb = `curl "http://cal.syoboi.jp/db?Command=TitleLookup&TID=$tid" | head -2 `; 70 WHERE foltia_program.tid = ? 71 "; 72 //$rs = m_query($con, $query, "DBクエリに失敗しました"); 73 $rs = sql_query($con, $query, "DBクエリに失敗しました",array($tid)); 74 $rowdata = $rs->fetch(); 75 if (! $rowdata) { 76 $syobocaldb = `curl "http://cal.syoboi.jp/db?Command=TitleLookup&TID=$tid" | head -2 `; 76 77 $syobocaldb = mb_convert_encoding($syobocaldb, "EUC-JP", "UTF-8"); 77 78 $syobocaldb = preg_match("/<Title>.*<\/Title>/", $syobocaldb,$title); … … 80 81 $title = htmlspecialchars($title) ; 81 82 }else{ 82 $rowdata = pg_fetch_row($rs, 0);83 83 $title = $rowdata[0]; 84 84 $title = htmlspecialchars($title) ; … … 143 143 LEFT JOIN foltia_program 144 144 ON foltia_mp4files.tid = foltia_program.tid 145 WHERE foltia_mp4files.tid = $tid145 WHERE foltia_mp4files.tid = ? 146 146 ORDER BY \"startdatetime\" ASC 147 147 "; 148 148 149 149 $rs = ""; 150 $rs = m_query($con, $query, "DBクエリに失敗しました"); 151 $maxrows = pg_num_rows($rs); 152 if ($maxrows > 0 ){ 150 //$rs = m_query($con, $query, "DBクエリに失敗しました"); 151 $rs = sql_query($con, $query, "DBクエリに失敗しました",array($tid)); 152 $rowdata = $rs->fetch(); 153 if ($rowdata) { 153 154 if(ereg("iPhone",$useragent)){ 154 155 print "<ul id=\"home\" title=\"$title\" selected=\"true\">"; … … 159 160 "; 160 161 } 161 for ($row = 0; $row < $maxrows; $row++) { 162 $rowdata = pg_fetch_row($rs, $row); 163 162 do { 164 163 $title = $rowdata[1]; 165 164 … … 195 194 } 196 195 //Starlight Breaker向け拡張 197 //$debug_pg_num_rows = pg_num_rows ($rs);196 //$debug_pg_num_rows = $rs ->rowCount(); 198 197 $caplink = ""; 199 198 200 if (($sbpluginexist == 1) && (pg_num_rows ($rs ) > 0)){199 if ($sbpluginexist == 1) { 201 200 //$capimgpath = htmlspecialchars(preg_replace("/.m2p/", "", $rowdata[5])); 202 201 $capimgpath = htmlspecialchars(preg_replace("/.m2./", "", $rowdata[5])); … … 244 243 }//endif iPhone 245 244 246 }//for 245 } while ($rowdata = $rs->fetch()); 247 246 }else{ 248 247 print "録画ファイルがありません<br>\n"; trunk/install/php/showplaylist.php
r83 r94 115 115 FROM foltia_subtitle , foltia_program 116 116 WHERE foltia_program.tid = foltia_subtitle.tid 117 AND foltia_subtitle.tid = $filesplit[0] 118 "; 119 $rs = m_query($con, $query, "DBクエリに失敗しました"); 120 $rowdata = pg_fetch_row($rs, $row); 117 AND foltia_subtitle.tid = ? 118 "; 119 //$rs = m_query($con, $query, "DBクエリに失敗しました"); 120 $rs = sql_query($con, $query, "DBクエリに失敗しました",array($filesplit[0])); 121 $rall = $rs->fetchAll(); 122 $rowdata = $rall[$row]; 121 123 //print" $fName./$rowdata[1]//$rowdata[2]<BR>\n"; 122 124 $title = $rowdata[1]; … … 130 132 FROM foltia_subtitle , foltia_program 131 133 WHERE foltia_program.tid = foltia_subtitle.tid 132 AND foltia_subtitle.tid = $filesplit[0] 133 AND foltia_subtitle.countno = $filesplit[1] 134 "; 135 $rs = m_query($con, $query, "DBクエリに失敗しました"); 136 $rowdata = pg_fetch_row($rs, $row); 134 AND foltia_subtitle.tid = ? 135 AND foltia_subtitle.countno = ? 136 "; 137 //$rs = m_query($con, $query, "DBクエリに失敗しました"); 138 $rs = sql_query($con, $query, "DBクエリに失敗しました",array($filesplit[0],$filesplit[1])); 139 $rall = $rs->fetchAll(); 140 $rowdata = $rall[$row]; 137 141 //print" $fName./$rowdata[1]/$rowdata[2]/$rowdata[3]<BR>\n"; 138 142 $title = $rowdata[1]; … … 197 201 } 198 202 199 $rs = m_query($con, $query, "DBクエリに失敗しました"); 200 $maxrows = pg_num_rows($rs); 201 202 if ($maxrows > 0){ 203 for ($row = 0; $row < $maxrows; $row++) { 204 $rowdata = pg_fetch_row($rs, $row); 205 203 //$rs = m_query($con, $query, "DBクエリに失敗しました"); 204 $rs = sql_query($con, $query, "DBクエリに失敗しました"); 205 $rowdata = $rs->fetch(); 206 if ($rowdata) { 207 do { 206 208 $tid = htmlspecialchars($rowdata[0]); 207 209 $title = htmlspecialchars($rowdata[1]); … … 235 237 print "</tr>\n 236 238 "; 237 }//for 239 } while ($rowdata = $rs->fetch()); 238 240 }else{ 239 241 print " … … 262 264 "; 263 265 264 $rs = m_query($con, $query, "DBクエリに失敗しました"); 265 $maxrows = pg_num_rows($rs); 266 267 268 if ($maxrows > 0){ 266 //$rs = m_query($con, $query, "DBクエリに失敗しました"); 267 $rs = sql_query($con, $query, "DBクエリに失敗しました"); 268 $rowdata = $rs->fetch(); 269 if ($rowdata) { 269 270 print "<hr> 270 271 <p align=\"left\">未読タイトルを表示します。<br> … … 279 280 "; 280 281 281 for ($row = 0; $row < $maxrows; $row++) { 282 $rowdata = pg_fetch_row($rs, $row); 283 282 do { 284 283 $tid = htmlspecialchars($rowdata[0]); 285 284 $title = htmlspecialchars($rowdata[1]); 286 285 287 288 286 print "<tr><td>$tid</td><td>$title</td></tr>\n"; 289 287 290 }//for 288 } while ($rowdata = $rs->fetch()); 291 289 print "</tbody></table>\n"; 292 290 }//if maxrows trunk/install/php/titlelist.php
r70 r94 51 51 ORDER BY foltia_program.tid DESC 52 52 "; 53 $rs = m_query($con, $query, "DBクエリに失敗しました");54 $maxrows = pg_num_rows($rs);55 56 if ($maxrows == 0) {53 // $rs = m_query($con, $query, "DBクエリに失敗しました"); 54 $rs = sql_query($con, $query, "DBクエリに失敗しました"); 55 $rowdata = $rs->fetch(); 56 if (! $rowdata) { 57 57 die_exit("番組データがありません<BR>"); 58 59 58 } 60 61 59 ?> 62 60 … … 72 70 <? 73 71 /* フィールド数 */ 74 $maxcols = pg_num_fields($rs);72 $maxcols = $rs->columnCount(); 75 73 ?> 76 74 <table BORDER="0" CELLPADDING="0" CELLSPACING="2" WIDTH="100%"> … … 86 84 <?php 87 85 /* テーブルのデータを出力 */ 88 for ($row = 0; $row < $maxrows; $row++) { /* 行に対応 */ 86 do { 89 87 echo("<tr>\n"); 90 /* pg_fetch_row で一行取り出す */ 91 $rowdata = pg_fetch_row($rs, $row); 88 92 89 //TID 93 90 echo("<td><a href=\"reserveprogram.php?tid=" . … … 100 97 print "<td><A HREF = \"showlibc.php?tid=".htmlspecialchars($rowdata[0])."\">mp4</A></td>\n"; 101 98 echo("</tr>\n"); 102 } 99 } while ($rowdata = $rs->fetch()); 103 100 ?> 104 101 </tbody> trunk/install/php/view_syabas.php
r86 r94 56 56 FROM foltia_subtitle , foltia_program ,foltia_station 57 57 WHERE foltia_program.tid = foltia_subtitle.tid AND foltia_station.stationid = foltia_subtitle.stationid 58 AND foltia_subtitle.pid = '$pid' 59 60 "; 61 $rs = m_query($con, $query, "DBクエリに失敗しました"); 62 63 $rows = pg_num_rows($rs); 64 if ($rows == 0){ 58 AND foltia_subtitle.pid = ? "; 59 // $rs = m_query($con, $query, "DBクエリに失敗しました"); 60 $rs = sql_query($con, $query, "DBクエリに失敗しました",array($pid)); 61 $rowdata = $rs->fetch(); 62 if (! $rowdata) { 65 63 print ""; 66 64 exit; 67 65 }else{ 68 $rowdata = pg_fetch_row($rs, 0);69 70 66 $title = $rowdata[2]; 71 67 $episode = $rowdata[3]; trunk/install/php/viewepg.php
r91 r94 91 91 $maxdisplay = 8; 92 92 93 $query = "SELECT stationid, stationname, stationrecch, ontvcode FROM foltia_station WHERE \"ontvcode\" ~~ '%ontvjapan%' 94 "; 95 $rs = m_query($con, $query, "DBクエリに失敗しました"); 96 $maxrows = pg_num_rows($rs); 97 93 $query = "SELECT count(*) FROM foltia_station WHERE \"ontvcode\" LIKE '%ontvjapan%'"; 94 //$rs = m_query($con, $query, "DBクエリに失敗しました"); 95 $rs = sql_query($con, $query, "DBクエリに失敗しました"); 96 $maxrows = $rs->fetchColumn(0); 98 97 if ($maxrows > $maxdisplay){ 99 98 $pages = ceil($maxrows / $maxdisplay) ; … … 138 137 $query = "SELECT stationid, stationname, stationrecch, ontvcode 139 138 FROM foltia_station 140 WHERE \"ontvcode\" ~~'%ontvjapan%'139 WHERE \"ontvcode\" LIKE '%ontvjapan%' 141 140 ORDER BY stationid ASC , stationrecch 142 OFFSET $offset LIMIT $maxdisplay 141 LIMIT ? OFFSET ? 143 142 "; 144 $slistrs = m_query($con, $query, "DBクエリに失敗しました"); 145 $stations = pg_num_rows($slistrs); 146 for ($i=0 ; $i < $stations ; $i++){ 147 $rowdata = pg_fetch_row($slistrs, $i); 148 $stationhash[$i] = $rowdata[3] ; 143 144 //$slistrs = m_query($con, $query, "DBクエリに失敗しました"); 145 $slistrs = sql_query($con, $query, "DBクエリに失敗しました",array($maxdisplay,$offset)); 146 while ($rowdata = $slistrs->fetch()) { 147 $stationhash[] = $rowdata[3]; 148 $snames[] = $rowdata[1]; // headder 149 149 } 150 150 … … 158 158 SELECT ontvcode 159 159 FROM foltia_station 160 WHERE \"ontvcode\" ~~'%ontvjapan%'160 WHERE \"ontvcode\" LIKE '%ontvjapan%' 161 161 ORDER BY stationid ASC , stationrecch 162 OFFSET $offset LIMIT $maxdisplay162 LIMIT ? OFFSET ? 163 163 ) 164 AND startdatetime >= $start165 AND startdatetime < $epgend164 AND startdatetime >= ? 165 AND startdatetime < ? 166 166 ORDER BY foltia_epg.startdatetime ASC "; 167 167 168 $rs = m_query($con, $query, "DBクエリに失敗しました"); 168 //$rs = m_query($con, $query, "DBクエリに失敗しました"); 169 $rs = sql_query($con, $query, "DBクエリに失敗しました",array($maxdisplay,$offset,$start,$epgend)); 169 170 170 171 //print "$query<br>\n"; 171 172 172 $ colmnums = pg_num_rows($rs);173 if ( $colmnums == 0){173 $rowdata = $rs->fetch(); 174 if (! $rowdata) { 174 175 //番組データがない 175 176 $colmnums = 2; 176 177 }else{ 177 for ($i=0 ; $i < $colmnums ; $i++){ 178 $rowdata = pg_fetch_row($rs, $i); 179 $timetablehash["$rowdata[0]"] = ($i + 1); 178 $colmnums = 0; 179 do { 180 $colmnums++; 181 $timetablehash[$rowdata[0]] = $colmnums; 180 182 // print "$rowdata[0]:$i+1 <br>\n"; 181 } 183 } while ($rowdata = $rs->fetch()); 182 184 } 183 185 //print "colmnums $colmnums <br>\n"; 184 186 185 187 //・局ごとに縦に配列入れていく 186 for ($j=0 ; $j < $stations ; $j++){ 187 $rowdata = pg_fetch_row($slistrs, $j); 188 $stationname = $rowdata[3]; 189 188 foreach ($stationhash as $stationname) { 190 189 $epgstart = $start ; 191 190 $epgend = calcendtime($start , (8*60)); … … 193 192 SELECT startdatetime , enddatetime , lengthmin , epgtitle , epgdesc , epgcategory ,ontvchannel ,epgid , epgcategory 194 193 FROM foltia_epg 195 WHERE foltia_epg.ontvchannel = '$stationname'AND196 enddatetime > $epgstartAND197 startdatetime < $epgend194 WHERE foltia_epg.ontvchannel = ? AND 195 enddatetime > ? AND 196 startdatetime < ? 198 197 ORDER BY foltia_epg.startdatetime ASC 199 198 "; 200 $statiodh = m_query($con, $query, "DBクエリに失敗しました"); 201 $maxrowsstation = pg_num_rows($statiodh); 202 203 //print "maxrowsstation $maxrowsstation stationname $stationname<br>\n"; 204 205 if ($maxrowsstation == 0) { 199 200 // $statiodh = m_query($con, $query, "DBクエリに失敗しました"); 201 $statiodh = sql_query($con, $query, "DBクエリに失敗しました",array($stationname,$epgstart,$epgend)); 202 $stationrowdata = $statiodh->fetch(); 203 if (! $stationrowdata) { 206 204 //print("番組データがありません<BR>"); 207 205 $item[0]["$stationname"] = ">番組データがありません"; 208 206 }else{ 209 210 for ($srow = 0; $srow < $maxrowsstation ; $srow++) { 211 212 $stationrowdata = pg_fetch_row($statiodh, $srow); 213 207 do { 214 208 $printstarttime = substr($stationrowdata[0],8,2) . ":" . substr($stationrowdata[0],10,2); 215 209 $tdclass = "t".substr($stationrowdata[0],8,2) . substr($stationrowdata[0],10,2); … … 235 229 }//if 236 230 237 }//for 231 } while ($stationrowdata = $statiodh->fetch()); 238 232 }//if 239 233 … … 291 285 292 286 //ヘッダ 293 for ($i=0;$i<$stations;$i++){ 294 $rowdata = pg_fetch_row($slistrs, $i); 295 print "<th>".htmlspecialchars($rowdata[1])."</th>" ; 287 foreach ($snames as $s) { 288 print "<th>".htmlspecialchars($s)."</th>" ; 296 289 } 297 290 //本体 298 291 for ($l = 0 ;$l < $colmnums; $l++){ 299 292 print "<tr>"; 300 for ($m = 0 ; $m < $stations ; $m++ ){ 301 $stationname = $stationhash[$m]; 293 foreach ($stationhash as $stationname) { 302 294 print_r($item[$l]["$stationname"]); 303 295 }