X-Git-Url: http://git.jankratochvil.net/?a=blobdiff_plain;f=obsah_init.pl;h=d2ded01a73b2a35aa3b31207b31102c6c715abe9;hb=2f422c6ef946eb94deec0c14e0218951a22a3f0f;hp=2c1c11d03b2a18b629f9956ee6684d9d9824fb55;hpb=59fffe8c46bb14bf3c04330df4e0b7f6fec472f5;p=www.energie.vellum.cz.git diff --git a/obsah_init.pl b/obsah_init.pl index 2c1c11d..d2ded01 100755 --- a/obsah_init.pl +++ b/obsah_init.pl @@ -6,7 +6,7 @@ use strict; use DBI; use vars qw/$db_driver $db_host $db_user $db_pwd $DB_PWD $db_name $db/; -use vars qw/$tb_obsah/; +use vars qw/$tb_obsah $tb_clanek/; $db_driver="mysql"; $db_host=""; @@ -14,6 +14,7 @@ $db_user="short"; $DB_PWD=$ENV{"HOME"}."/priv/mysql.${db_user}.pwd"; $db_name="short"; $tb_obsah="energie_obsah"; +$tb_clanek="energie_clanek"; open DB_PWD or die "Failed open \"$DB_PWD\": $!"; $db_pwd=; @@ -41,8 +42,19 @@ eval { &db_do("drop table $tb_obsah") }; &db_do("alter table $tb_obsah add unique (year,month)"); +eval { &db_do("drop table $tb_clanek") }; -use vars qw/$insert_tb_obsah $year $month $month_last $sequential $contents $first/; +&db_do("create table $tb_clanek (" + ."year year(4) not null," + ."month tinyint not null," + ."id tinyint not null," + ."name text not null," + ."contents text not null" + .")"); + +&db_do("alter table $tb_clanek add unique (year,month,id)"); + +use vars qw/$insert_tb_obsah $insert_tb_clanek $year $month $month_last $sequential $contents $first $article_id/; sub where { @@ -68,10 +80,13 @@ sub flush_month undef $year,$month; undef $contents; undef $first; + undef $article_id; } $insert_tb_obsah=$db->prepare("insert into $tb_obsah (year,month,month_last,sequential,contents) values (?,?,?,?,?)") or die "Prepare fail: $!"; +$insert_tb_clanek=$db->prepare("insert into $tb_clanek (year,month,id,name,contents) values (?,?,?,?,?)") + or die "Prepare fail: $!"; while (<>) { chomp; @@ -84,6 +99,17 @@ while (<>) { $contents=""; next; } + if (/^#(.+)$/) { +my( $clanek )=""; +my( $line ); + while (($line=<>)!~/^#$/) { + die "Article EOF marker not found".&where() if (!$line); + $clanek.=$line; + } + # $article_id probably should not be zero + $insert_tb_clanek->execute($year,$month,++$article_id,$1,$clanek) or die "SQL insert failure: $!"; + next; + } if (/^Pøíloha:$/) { die "Multiple \"Pøíloha\"s".&where() if ($contents=~/\004/); $contents.="\004";