チェンジセット 94: trunk/install/perl

差分発生行の前後
無視リスト:
コミット日時:
2010/02/28 22:28:26 (15 年前)
コミッタ:
sorshi
ログメッセージ:

SQLite採用

ファイル:

凡例:

変更無し
追加
削除
更新
コピー
移動
  • trunk/install/perl/addatq.pl

    r1 r94  
    1616use DBI; 
    1717use DBD::Pg; 
     18use DBD::SQLite; 
    1819use Schedule::At; 
    1920use Time::Local; 
     
    2122$path = $0; 
    2223$path =~ s/addatq.pl$//i; 
    23 if ($pwd ne "./"){ 
     24if ($path ne "./"){ 
    2425push( @INC, "$path"); 
    2526} 
     
    3839 
    3940#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;; 
    4342 
    4443if ($station == 0){ 
    45         $DBQuery =  "SELECT count(*) FROM  foltia_tvrecord WHERE tid = '$tid'  "; 
     44    $sth = $dbh->prepare($stmt{'addatq.1'}); 
     45    $sth->execute($tid); 
    4646}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); 
    4849} 
    49          $sth = $dbh->prepare($DBQuery); 
    50         $sth->execute(); 
    5150 @titlecount = $sth->fetchrow_array; 
    5251#件数数える 
     
    5453#2以上だったら 
    5554if ($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); 
    6058        @reservecounts = $kth->fetchrow_array; 
    6159 
     
    6361                if($tid == 0){ 
    6462                #今回の引き数が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'}"); 
    6765                &addcue; 
    6866                }else{ 
    6967                #ほかの全局録画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'}"); 
    7169                exit; 
    7270                }#end if ふくまれていたら 
     
    7573                &addcue; 
    7674}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'}"); 
    7876} 
    7977 
     
    8280#       & addcue; 
    8381# }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'}"); 
    8583#} 
    8684 
     
    8886 
    8987if ($station == 0){ 
    90         $DBQuery =  "SELECT * FROM  foltia_tvrecord WHERE tid = '$tid'  "; 
     88        $sth = $dbh->prepare($stmt{'addatq.addcue.1'}); 
     89        $sth->execute($tid); 
    9190}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); 
    9393} 
    94  $sth = $dbh->prepare($DBQuery); 
    95 $sth->execute(); 
    9694 @titlecount= $sth->fetchrow_array; 
    9795$bitrate = $titlecount[2];#ビットレート取得 
    9896 
    9997#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)); 
    102100#キュー入れは直近2日後まで 
    103101if ($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)
    106104}else{ 
    107         $DBQuery =  " 
    108 SELECT * from foltia_subtitle WHERE tid = '$tid' AND stationid  = '$station'  AND startdatetime >  '$now'  AND startdatetime < '$twodaysafter' "; 
    109105#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); 
    113108@stationl =  $stationh->fetchrow_array; 
    114109$recch = $stationl[1]; 
    115 } 
    116110 
    117  $sth = $dbh->prepare($DBQuery); 
    118         $sth->execute(); 
     111        $sth = $dbh->prepare($stmt{'addatq.addcue.5'}); 
     112        $sth->execute($tid, $station, $now, $twodaysafter); 
     113    } 
    119114  
    120115while (($pid , 
     
    131126if ($station == 0 ){ 
    132127#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); 
    136130@stationl =  $stationh->fetchrow_array; 
    137131$recch = $stationl[1]; 
  • trunk/install/perl/addpidatq.pl

    r83 r94  
    1414use DBI; 
    1515use DBD::Pg; 
     16use DBD::SQLite; 
    1617use Schedule::At; 
    1718use Time::Local; 
     
    1920$path = $0; 
    2021$path =~ s/addpidatq.pl$//i; 
    21 if ($pwd ne "./"){ 
     22if ($path ne "./"){ 
    2223push( @INC, "$path"); 
    2324} 
     
    3637 
    3738#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;; 
    4140 
    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); 
    4543 @titlecount= $sth->fetchrow_array; 
    4644  
    4745 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); 
    5248 @titlecount= $sth->fetchrow_array; 
    5349$bitrate = $titlecount[0];#ビットレート取得 
     
    5955 
    6056#PID抽出 
    61 $now = &epoch2foldate(`date +%s`); 
     57    $now = &epoch2foldate(time()); 
    6258 
    6359#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(); 
    6963$recch = $stationl[0]; 
    7064if ($recch eq ""){ 
    71         &writelog("addpidatq ERROR recch is NULL:$DBQuery."); 
     65        &writelog("addpidatq ERROR recch is NULL:$stmt{'addpidatq.3'}."); 
    7266        exit 1; 
    7367} 
     
    8276        $digitalstationband = 0; 
    8377} 
    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); 
    8780($pid , 
    8881$tid , 
  • trunk/install/perl/captureimagemaker.pl

    r83 r94  
    1414$path = $0; 
    1515$path =~ s/captureimagemaker.pl$//i; 
    16 if ($pwd ne "./"){ 
     16if ($path ne "./"){ 
    1717push( @INC, "$path"); 
    1818} 
     
    5656$date =~ s/[^0-9]//ig; 
    5757if ($date eq "" ){ 
    58         $date =  `date  +%Y%m%d` 
     58    $date = strftime("%Y%m%d", localtime); 
    5959} 
    6060#       print "DATE:$date\n"; 
     
    6565$time =~ s/[^0-9]//ig; 
    6666if ($time eq "" ){ 
    67         $time =  `date  +%H%M` 
     67    $time =  strftime("%H%M", localtime); 
    6868} 
    6969#       print "TIME:$time\n"; 
     
    119119# 10秒ごとに 
    120120if ($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         
    123129}else{ 
    124130        &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        } 
    126136} 
    127137 
  • trunk/install/perl/changestbch.pl

    r1 r94  
    2626use DBI; 
    2727use DBD::Pg; 
     28use DBD::SQLite; 
    2829 
    2930$path = $0; 
    3031$path =~ s/changestbch.pl$//i; 
    31 if ($pwd ne "./"){ 
     32if ($path ne "./"){ 
    3233push( @INC, "$path"); 
    3334} 
     
    5455# pidから局(送出コマンド)調べる 
    5556#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;; 
    5958 
    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); 
    6361 @chstatus = $sth->fetchrow_array; 
    6462        $tunertype = $chstatus[0]; 
  • trunk/install/perl/deletemovie.pl

    r83 r94  
    1717$path = $0; 
    1818$path =~ s/deletemovie.pl$//i; 
    19 if ($pwd ne "./"){ 
     19if ($path ne "./"){ 
    2020push( @INC, "$path"); 
    2121} 
  • trunk/install/perl/digitaltvrecording.pl

    r91 r94  
    2525$path = $0; 
    2626$path =~ s/digitaltvrecording.pl$//i; 
    27 if ($pwd ne "./"){ 
     27if ($path ne "./"){ 
    2828push( @INC, "$path"); 
    2929} 
     
    112112                &writelog("digitaltvrecording: DEBUG FILENAME ne null \$outputfile $outputfile "); 
    113113        }else{ 
    114                $outputfile .= `date  +%Y%m%d-%H%M --date "1 min "`
     114        $outputfile .= strftime("%Y%m%d-%H%M", localtime(time + 60))
    115115                chomp($outputfile); 
    116116                $outputfile .= ".m2t"; 
     
    193193                } 
    194194        }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."); 
    196196        exit 1; 
    197197        } 
     
    387387                        } 
    388388        }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."); 
    390390        $errorflag = 1; 
    391391        } 
     
    409409                        } 
    410410        }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."); 
    412412        exit 1; 
    413413        } 
  • trunk/install/perl/envpolicyupdate.pl

    r70 r94  
    1616use DBI; 
    1717use DBD::Pg; 
     18use DBD::SQLite; 
    1819 
    1920$path = $0; 
    2021$path =~ s/envpolicyupdate.pl$//i; 
    21 if ($pwd ne "./"){ 
     22if ($path ne "./"){ 
    2223push( @INC, "$path"); 
    2324} 
     
    3334eval "$returnparam\n"; 
    3435 
    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;; 
    3837 
    39 $DBQuery =  "SELECT userclass,name,passwd1 FROM foltia_envpolicy "; 
    40  
    41  $envph = $dbh->prepare($DBQuery); 
     38    $envph = $dbh->prepare($stmt{'envpolicyupdate.1'}); 
    4239        $envph->execute(); 
    4340 
  • trunk/install/perl/folprep.pl

    r1 r94  
    2323$path = $0; 
    2424$path =~ s/folprep.pl$//i; 
    25 if ($pwd ne "./"){ 
     25if ($path ne "./"){ 
    2626push( @INC, "$path"); 
    2727} 
  • trunk/install/perl/foltia_conf1.pl.template

    r83 r94  
    2828 
    2929#以下はデフォルトでインストールしてればいじらなくてもいい 
    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"; 
     37require 'db/SQLite.pl'; 
     38 
    3439$main::DBUser="foltia"; 
    3540$main::DBPass=""; 
  • trunk/install/perl/foltialib.pl

    r83 r94  
    44$path = $0; 
    55$path =~ s/foltialib.pl$//i; 
    6 if ($pwd ne "./"){ 
     6if ($path ne "./"){ 
    77push( @INC, "$path"); 
    88} 
     
    1313use DBI; 
    1414use DBD::Pg; 
    15  
    16  
    17          $DBDriv=$main::DBDriv; 
    18          $DBHost=$main::DBHost; 
    19          $DBPort=$main::DBPort; 
    20          $DBName=$main::DBName; 
     15use DBD::SQLite; 
     16use POSIX qw(strftime); 
     17 
     18$DSN=$main::DSN; 
    2119         $DBUser=$main::DBUser; 
    2220         $DBPass=""; 
     
    4745sub writelog{ 
    4846my $messages = $_[0]; 
    49 my $timestump = `date  +%Y/%m/%d_%H:%M:%S`
     47    my $timestump = strftime("%Y/%m/%d_%H:%M:%S", localtime)
    5048chomp($timestump); 
    5149if ($debugmode == 1){ 
     
    146144my $stationname =  $_[0] ; 
    147145my $stationid ; 
    148 my $DBQuery =  "SELECT count(*) FROM foltia_station WHERE stationname = '$item{ChName}'"; 
    149146 
    150147my $sth; 
    151         $sth = $dbh->prepare($DBQuery); 
    152        $sth->execute(); 
     148    $sth = $dbh->prepare($stmt{'foltialib.getstationid.1'}); 
     149    $sth->execute($item{'ChName'}); 
    153150 my  @stationcount; 
    154151 @stationcount= $sth->fetchrow_array; 
     
    156153if ($stationcount[0] == 1){ 
    157154#チャンネル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'}); 
    161157 @stationinfo= $sth->fetchrow_array; 
    162158#局ID 
     
    166162}elsif($stationcount[0] == 0){ 
    167163#新規登録 
    168 $DBQuery =  "SELECT max(stationid) FROM foltia_station"; 
    169          $sth = $dbh->prepare($DBQuery); 
     164        $sth = $dbh->prepare($stmt{'foltialib.getstationid.3'}); 
    170165        $sth->execute(); 
    171166 @stationinfo= $sth->fetchrow_array; 
     
    174169##$DBQuery =  "insert into  foltia_station values ('$stationid'  ,'$item{ChName}','0','','','','','','')"; 
    175170#新規局追加時は非受信局をデフォルトに 
    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); 
    180173#print "Add station;$DBQuery\n"; 
    181 &writelog("foltialib Add station;$DBQuery"); 
     174       &writelog("foltialib Add station;$stmt{'foltialib.getstationid.4'}"); 
    182175}else{ 
    183176 
     
    287280} 
    288281 
    289 my $DBQuery =  "SELECT pid FROM foltia_subtitle WHERE m2pfilename = '$m2pfilename' LIMIT 1 "; 
    290282my $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"; 
    294286my @pidinfo = $sth->fetchrow_array; 
    295287my $pid  = $pidinfo[0]; 
     
    312304 
    313305if ($updatestatus > 0 ){ 
    314 my $DBQuery =  "UPDATE  foltia_subtitle SET filestatus = $updatestatus , lastupdate      = now() WHERE pid = $pid "; 
    315306my $sth; 
    316 $sth = $dbh->prepare($DBQuery); 
    317 $sth->execute(); 
     307       $sth = $dbh->prepare($stmt{'foltialib.changefilestatus.1'}); 
     308       $sth->execute($updatestatus, $pid); 
    318309return 1; 
    319310}else{ 
     
    351342} 
    352343 
    353 my $DBQuery =  "SELECT filestatus FROM foltia_subtitle  WHERE pid = $pid "; 
    354344my $sth; 
    355 $sth = $dbh->prepare($DBQuery); 
    356 $sth->execute(); 
     345    $sth = $dbh->prepare($stmt{'foltialib.getfilestatus.1'}); 
     346    $sth->execute($pid); 
    357347 
    358348my @statusinfo = $sth->fetchrow_array; 
  • trunk/install/perl/getxml2db.pl

    r82 r94  
    1919use DBI; 
    2020use DBD::Pg; 
     21use DBD::SQLite; 
    2122use Digest::MD5 qw(md5_hex); 
    2223 
    2324$path = $0; 
    2425$path =~ s/getxml2db.pl$//i; 
    25 if ($pwd ne "./"){ 
     26if ($path ne "./"){ 
    2627push( @INC, "$path"); 
    2728} 
     
    4849} 
    4950 
     51$dbh = DBI->connect($DSN,$DBUser,$DBPass) ||die $DBI::error;; 
    5052 
    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; 
    5754 
    5855# If-Modified-Since使うように変更#2008/11/14  
     
    105102$programtitlename =~ s/\&gt\;/>/gi; 
    106103$programtitlename =~ s/\&amp\;/\&/gi; 
    107 $programtitle = $dbh->quote($programtitlename); 
     104#       $programtitle = $dbh->quote($programtitlename); 
     105        $programtitle = $programtitlename; 
    108106 
    109107Jcode::convert(\$item{ChName},'euc'); 
     
    115113$programSubTitle =~ s/\&gt\;/>/gi; 
    116114$programSubTitle =~ s/\&amp\;/\&/gi; 
    117 $programSubTitle = $dbh->quote($programSubTitle); 
     115#      $programSubTitle = $dbh->quote($programSubTitle); 
    118116 
    119117$offsetmin = $item{StOffset}/60; 
     
    127125#サブタイトル追加------------------------------------------------- 
    128126#番組があるか確認 
    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}); 
    132129 @titlecount= $sth->fetchrow_array; 
    133130  
     
    137134#200412012359 
    138135$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"); 
    144136 
    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"); 
    146140}else{ 
    147141#2006/2/26  
    148142#あったら、タイトル確認して 
    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}); 
    152145 @titlearray = $sth->fetchrow_array; 
    153146#更新などされてたらupdate 
    154147#print "$titlearray[0] / $programtitle\n"; 
    155148 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}); 
    160151        &writelog("getxml2db  UPDATE TV Progtam:$item{TID}:$programtitle"); 
    161152 }#end if update 
     
    164155 
    165156#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'}); 
    169159 @subticount= $sth->fetchrow_array; 
    170160 if ($subticount[0]  >= 1){ 
     
    174164#UPDATE  foltia_subtitle  SET stationid = '42',countno = '8',subtitle = '京都行きます' ,startdatetime = '200503010035'  ,enddatetime = '200503010050',startoffset  = '0' ,lengthmin = '15' WHERE tid = '550' AND pid =  '26000'  
    175165if ($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'}); 
    187168}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            } 
    203172 }else{ 
    204173        #なければ追加 
     
    207176        #そのままキューに入る形で 
    208177        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); 
    210180        }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); 
    212183        } 
    213 #                $sth = $dbh->prepare($DBQuery); 
    214 #               $sth->execute(); 
    215         $oserr = $dbh->do($DBQuery); 
    216  
    217184} 
    218  
    219185 
    220186#print "$DBQuery\n\n\n"; 
     
    226192}#foreach 
    227193 
    228 #$oserr = $dbh->commit; 
     194$oserr = $dbh->commit; 
    229195##      $dbh->disconnect(); 
    230  
    231  
  • trunk/install/perl/ipodtranscode.pl

    r83 r94  
    1313use DBI; 
    1414use DBD::Pg; 
     15use DBD::SQLite; 
    1516use Jcode; 
    1617 
    1718$path = $0; 
    1819$path =~ s/ipodtranscode.pl$//i; 
    19 if ($pwd ne "./"){ 
     20if ($path ne "./"){ 
    2021push( @INC, "$path"); 
    2122} 
     
    3536 
    3637#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;; 
    4039 
    4140# タイトル取得 
     
    5756 
    5857while ($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, ); 
    6860@dbparam = $sth->fetchrow_array; 
    6961#print "$dbparam[0],$dbparam[1],$dbparam[2],$dbparam[3],$dbparam[4],$dbparam[5]\n"; 
    70 &writelog("ipodtranscode DEBUG $DBQuery"); 
     62#&writelog("ipodtranscode DEBUG $DBQuery"); 
    7163&writelog("ipodtranscode DEBUG $dbparam[0],$dbparam[1],$dbparam[2],$dbparam[3],$dbparam[4],$dbparam[5]"); 
    7264$pid = $dbparam[0]; 
     
    8678# タイトル取得 
    8779if ($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); 
    9582@programtitle = $sth->fetchrow_array; 
    9683$programtitle[0] =~ s/\"/\\"/gi; 
     
    147134} 
    148135 
     136 
    149137$filenamebody = $inputmpeg2 ; 
    150138$filenamebody =~ s/.m2t$|.ts$|.m2p$|.mpg$//gi; 
     139 
    151140#デジタルかアナログか 
    152141if ($inputmpeg2 =~ /m2t$|ts$/i){ 
     
    174163        $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"; 
    175164        }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"; 
    177168        }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"; 
    179172        } 
    180173        &changefilestatus($pid,$FILESTATUSTRANSCODEFFMPEG); 
     
    246239        # MP4ビルド 
    247240        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                } 
    262264        }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        } 
    283292} 
    284293if ($filestatus <= $FILESTATUSTRANSCODECOMPLETE){ 
     294        if (-e "${mp4outdir}MAQ${mp4filenamestring}.MP4"){ 
    285295        # 中間ファイル消す 
    286296        &changefilestatus($pid,$FILESTATUSTRANSCODECOMPLETE); 
     
    293303         
    294304        &updatemp4file(); 
    295  
     305        }else{ 
     306                &writelog("ipodtranscode ERR ; Fail MAQ${mp4filenamestring}.MP4"); 
     307        } 
    296308} 
    297309 
     
    384396&writelog("ipodtranscode DEBUG thmfilename $thmfilename"); 
    385397 
    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"); 
     401if($outputfilename =~ /.m2t$/){ 
     402#ハイビジョンTS 
     403system ("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"); 
    394405}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#アナログ 
     407system ("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"); 
     421system("mv $pspdirname/00000001.jpg $pspdirname/$thmfilename"); 
    401422 
    402423}#endsub makethumbnail 
     
    407428if (-e "${mp4outdir}MAQ${mp4filenamestring}.MP4"){ 
    408429# 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'}"); 
    413433 
    414434# 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'}"); 
    419438 
    420439&changefilestatus($pid,$FILESTATUSALLCOMPLETE); 
     
    427446 
    428447sub 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); 
    433450my @titlecount= $sth->fetchrow_array; 
    434451 
  • trunk/install/perl/mklocalizeddir.pl

    r1 r94  
    1616use DBI; 
    1717use DBD::Pg; 
    18  
     18use DBD::SQLite; 
    1919 
    2020$path = $0; 
    2121$path =~ s/mklocalizeddir.pl$//i; 
    22 if ($pwd ne "./"){ 
     22if ($path ne "./"){ 
    2323push( @INC, "$path"); 
    2424} 
     
    4343 
    4444#接続 
    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;; 
    4846 
    4947#検索 
    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); 
    5350 @subticount= $sth->fetchrow_array; 
    5451$title = $subticount[0] ; 
  • trunk/install/perl/recwrap.pl

    r91 r94  
    1515use DBI; 
    1616use DBD::Pg; 
     17use DBD::SQLite; 
    1718use Schedule::At; 
    1819use Time::Local; 
     
    2122$path = $0; 
    2223$path =~ s/recwrap.pl$//i; 
    23 if ($pwd ne "./"){ 
     24if ($path ne "./"){ 
    2425push( @INC, "$path"); 
    2526} 
     
    4647 
    4748#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;; 
    5150 
    5251 
     
    5756} 
    5857 
    59 $outputfile = `date  +%Y%m%d-%H%M --date "1 min "`
     58$outputfile = strftime("%Y%m%d-%H%M", localtime(time + 60))
    6059chomp($outputfile); 
    6160 
     
    7776&writelog("recwrap RECSTART DIGITAL $digitalstationband $digitalch $reclength $stationid 0 $outputfilename $tid $countno friio"); 
    7877#録画 
    79 $starttime = (`date +%s`); 
     78    $starttime = time(); 
    8079$oserr = system("$toolpath/perl/digitaltvrecording.pl $digitalstationband $digitalch $reclength $stationid 0 $outputfilename $tid $countno friio"); 
    8180$oserr = $oserr / 256; 
     
    119118#録画 
    120119#system("$toolpath/perl/tvrecording.pl $recch $reclength 0 $outputfile $bitrate $tid $countno"); 
    121 $starttime = (`date +%s`); 
     120    $starttime = time(); 
    122121 
    123122$oserr = system("$toolpath/perl/tvrecording.pl $recch $reclength 0 $outputfilename $bitrate $tid $countno"); 
     
    131130 
    132131#デバイスビジーで即死してないか検出 
    133 $now = (`date +%s`); 
     132$now = time(); 
    134133        if ($now < $starttime + 100){ #録画プロセス起動してから100秒以内に戻ってきてたら 
    135        $retrycounter == 0; 
     134    $retrycounter = 0; 
    136135                while($now < $starttime + 100){ 
    137136                        if($retrycounter >= 5){ 
     
    141140                &writelog("recwrap retry recording $now $starttime"); 
    142141                #アナログ録画 
    143 $starttime = (`date +%s`); 
     142       $starttime = time(); 
    144143if($outputfilename =~ /.m2t$/){ 
    145144        $outputfilename =~ s/.m2t$/.m2p/; 
    146145} 
    147146$oserr = system("$toolpath/perl/tvrecording.pl $recch $reclength N $outputfilename $bitrate $tid $countno"); 
    148 $now = (`date +%s`); 
     147       $now = time(); 
    149148$oserr = $oserr / 256; 
    150149                        if ($oserr == 1){ 
     
    160159 
    161160# 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'}"); 
    166164&changefilestatus($pid,$FILESTATUSRECEND); 
    167165 
    168166# 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'}"); 
    173170 
    174171# Starlight breaker向けキャプチャ画像作成 
     
    181178 
    182179 
    183  
    184180# MPEG4 ------------------------------------------------------ 
    185181#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); 
    189184 @psptrcn= $sth->fetchrow_array; 
    190185if ($psptrcn[0]  == 1 ){#トラコン番組 
     
    192187exec ("$toolpath/perl/ipodtranscode.pl"); 
    193188exit; 
    194 # 
    195 # ここから下は旧エンコード#2008/12/23  
    196 # 新エンコードは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/ 3 
    328  
    329  
    330 # トラコンキューイング #2007/7/10  
    331 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.m2p 
    392 #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 3 
    393 &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.jpg       
    406 # convert -resize 160x120\! 00000002.jpg M4V44307.THM 
    407 # rm -rf 00000002.jpg   
    408 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); 
    426189}#PSPトラコンあり 
    427190 
    428191sub continuousrecordingcheck(){ 
    429 my $now = `date  +%s --date "2 min "`
     192    my $now = time() + 60 * 2
    430193&writelog("recwrap DEBUG continuousrecordingcheck() now $now"); 
    431194my @processes =`ps ax | grep recfriio`; 
     
    474237                $startdatetime = $startdate.$filenameparts[0]; 
    475238                #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'}); 
    486241        &writelog("recwrap DEBUG continuousrecordingcheck() prepare"); 
    487         $sth->execute(); 
     242                   $sth->execute($tid, $startdatetime); 
    488243        &writelog("recwrap DEBUG continuousrecordingcheck() execute"); 
    489244        @recfile = $sth->fetchrow_array; 
  • trunk/install/perl/schedulecheck.pl

    r1 r94  
    1414use DBI; 
    1515use DBD::Pg; 
     16use DBD::SQLite; 
    1617use Schedule::At; 
    1718use Time::Local; 
     
    1920$path = $0; 
    2021$path =~ s/schedulecheck.pl$//i; 
    21 if ($pwd ne "./"){ 
     22if ($path ne "./"){ 
    2223push( @INC, "$path"); 
    2324} 
     
    2930 
    3031#予約番組探し 
    31 $now = &epoch2foldate(`date +%s`); 
     32$now = &epoch2foldate(time()); 
    3233$now = &epoch2foldate($now); 
    3334$checkrangetime = $now   + 15*60;#15分後まで 
    3435$checkrangetime =  &epoch2foldate($checkrangetime); 
    3536 
    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;; 
    3938 
    40 $DBQuery =  "SELECT count(*)  FROM foltia_tvrecord "; 
    41  
    42  
    43          $sth = $dbh->prepare($DBQuery); 
     39$sth = $dbh->prepare($stmt{'schedulecheck.1'}); 
    4440        $sth->execute(); 
    4541 @titlecount= $sth->fetchrow_array; 
     
    4844exit; 
    4945}else{ 
    50  
    51 $DBQuery =  "SELECT  tid ,stationid  FROM foltia_tvrecord "; 
    52          $sth = $dbh->prepare($DBQuery); 
     46    $sth = $dbh->prepare($stmt{'schedulecheck.2'}); 
    5347        $sth->execute(); 
    5448while (($tid,$stationid  ) = $sth->fetchrow_array()) { 
  • trunk/install/perl/singletranscode.pl

    r1 r94  
    2828use DBI; 
    2929use DBD::Pg; 
     30use DBD::SQLite; 
    3031use Schedule::At; 
    3132use Time::Local; 
     
    3435$path = $0; 
    3536$path =~ s/singletranscode.pl$//i; 
    36 if ($pwd ne "./"){ 
     37if ($path ne "./"){ 
    3738push( @INC, "$path"); 
    3839} 
     
    6364 
    6465#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;; 
    6967 
    7068if ($ARGV[1] != ""){ 
    7169        $pid = $ARGV[1] ; 
    7270}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]); 
    7673 @pidarray = $sth->fetchrow_array; 
    7774        unless ($pidarray[0]  == "" ){ 
     
    8683# 追加部分 
    8784 
    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); 
    9187 @subticount= $sth->fetchrow_array; 
    9288 unless ($subticount[0]  >= 1){ 
    9389 
    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); 
    9792 @subticount= $sth->fetchrow_array; 
    9893 
     
    120115# PSP ------------------------------------------------------ 
    121116#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); 
    125119 @psptrcn= $sth->fetchrow_array; 
    126120 if ($psptrcn[0]  == 1 ){#トラコン番組 
     
    227221my $newestmp4filename = `cd $pspdirname ; ls -t *.MP4 | head -1`; 
    228222 if ($newestmp4filename =~ /M4V$tid/){ 
    229         $nowcountno = $' ; 
     223               $nowcountno = $' ;#' 
    230224                $nowcountno++; 
    231225                $pspfilnameft = sprintf("%02d",$nowcountno); 
     
    261255#最適化 
    262256 
    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); 
    266259 @programtitle = $sth->fetchrow_array; 
    267260 
     
    285278 
    286279if (-e "$pspdirname/M4V".$pspfilname.".THM"){ 
    287 $timestamp =`date "+%Y%m%d-%H%M%S"`
     280       $timestamp = strftime("%Y%m%d-%H%M%S", localtime)
    288281chomp $timestamp; 
    289282        system("convert -crop 160x120+1+3 -resize 165x126\! $pspdirname/00000002.jpg $pspdirname/M4V".$pspfilname.".THM.".$timestamp.".THM"); 
     
    297290system("rm -rf $pspdirname/0000000*.jpg "); 
    298291 
    299  
    300  
    301  
    302292# MP4ファイル名をPIDレコードに書き込み 
    303293unless ($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'}"); 
    311297}else{ 
    312298&writelog("singletranscode PID not found"); 
    313299} 
    314300# 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'}"); 
    319304 
    320305}#PSPトラコンあり 
    321  
    322  
  • trunk/install/perl/tvrecording.pl

    r83 r94  
    2929$path = $0; 
    3030$path =~ s/tvrecording.pl$//i; 
    31 if ($pwd ne "./"){ 
     31if ($path ne "./"){ 
    3232push( @INC, "$path"); 
    3333} 
     
    301301#               $outputfile .= "$ARGV[3]"; 
    302302#               }else{ 
    303 #               $outputfile .= `date  +%Y%m%d-%H%M --date "1 min "`
     303#               $outputfile .= strftime("%Y%m%d-%H%M", localtime(time + 60))
    304304#               } 
    305305                $outputfile = $ARGV[3]; 
     
    308308                $outputfile = $outputpath.$outputfile ; 
    309309#               $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))
    311311                &writelog("tvrecording:  DEBUG ARGV[2] ne null  \$outputfile $outputfile "); 
    312312        }else{ 
    313                $outputfile .= `date  +%Y%m%d-%H%M --date "1 min "`
     313        $outputfile .= strftime("%Y%m%d-%H%M", localtime(time + 60))
    314314                chomp($outputfile); 
    315315                $outputfile .= ".m2p"; 
  • trunk/install/perl/updatem2pfiletable.pl

    r83 r94  
    1616use DBI; 
    1717use DBD::Pg; 
     18use DBD::SQLite; 
    1819 
    1920$path = $0; 
    2021$path =~ s/updatem2pfiletable.pl$//i; 
    21 if ($pwd ne "./"){ 
     22if ($path ne "./"){ 
    2223push( @INC, "$path"); 
    2324} 
    2425 
    2526require "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;; 
    2928 
    3029$dbh->{AutoCommit} = 0; 
    3130# ひとまず消す 
    32 $query =  "DELETE  FROM  foltia_m2pfiles  "; 
    33          $sth = $dbh->prepare($query); 
     31$sth = $dbh->prepare($stmt{'updatem2pfiletable.1'}); 
    3432        $sth->execute(); 
    3533 
    3634while ($file = glob("$recfolderpath/*.m2?")) { 
    3735$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); 
    4038# print "$file\n"; 
    4139}#while 
     
    4644 
    4745# ひとまず消す 
    48 $query =  "DELETE  FROM  foltia_mp4files  "; 
    49          $sth = $dbh->prepare($query); 
     46$sth = $dbh->prepare($stmt{'updatem2pfiletable.3'}); 
    5047        $sth->execute(); 
    5148 
     
    5855$filetid =~ s/[^0-9]//g; 
    5956if (($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]); 
    6259#print "$filetid;$fileline[2];$query\n" 
    6360# http://www.atmarkit.co.jp/fnetwork/rensai/sql03/sql1.html 
  • trunk/install/perl/xmltv2foltia.pl

    r38 r94  
    3030use DBI; 
    3131use DBD::Pg; 
     32use DBD::SQLite; 
    3233 
    3334$path = $0; 
    3435$path =~ s/xmltv2foltia.pl$//i; 
    35 if ($pwd ne "./"){ 
     36if ($path ne "./"){ 
    3637push( @INC, "$path"); 
    3738} 
     
    4041$currentworkdate = "" ; 
    4142$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)
    4445 
    4546# 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; 
    4949 
    5050while(<>){ 
     
    187187}elsif(/<\/programme>/){ 
    188188#登録処理はココで 
    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'}; 
    194194}else{ 
    195         $registdesc = $item{desc}; 
     195            $registdesc = $item{'desc'}; 
    196196} 
    197 &registdb($item{start},$item{stop},$item{channel},$item{title},$registdesc ,$item{category}); 
     197       &registdb($item{'start'},$item{'stop'},$item{'channel'},$item{'title'},$registdesc ,$item{'category'}); 
    198198 
    199199#       print "$item{start} 
     
    216216}# while 
    217217 
     218$dbh->commit; 
     219 
     220#end 
     221################ 
     222 
    218223sub chkerase{ 
    219224# xmltvからきた日付とチャンネルをfoltia epgと比較 
     
    232237# 新規に入る予定の未来の番組表、全部いったん消す 
    233238# $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'}"); 
    238242#$currentworkdate = "$today"; 
    239243$currentworkch = $ontvepgchannel ; 
     
    261265if($foltiastarttime > $todaytime){ 
    262266         
    263         my $DBQuery =  "SELECT max(epgid) FROM foltia_epg "; 
    264                  $sth = $dbh->prepare($DBQuery); 
     267        $sth = $dbh->prepare($stmt{'xmltv2foltia.registdb.1'}); 
    265268                $sth->execute(); 
    266269         @currentepgid = $sth->fetchrow_array; 
     
    274277#&writelog("xmltv2foltia DEBUG $currentepgid[0] /  $newepgid"); 
    275278my $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"; 
    290291 
    291292# &writelog("xmltv2foltia DEBUG $DBQuery"); 
track feed