チェンジセット 94: trunk/install/perl/xmltv2foltia.pl
- コミット日時:
- 2010/02/28 22:28:26 (14 年前)
- ファイル:
凡例:
- 変更無し
- 追加
- 削除
- 更新
- コピー
- 移動
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");