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

SQLite採用

ファイル:

凡例:

変更無し
追加
削除
更新
コピー
移動
  • 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