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="";
$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=<DB_PWD>;
&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
{
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;
$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";
next;
}
- if (/^[^[:space:]]/ || (/^\s/ && $contents=~/\004/)) {
+ if (/^[^ \t]/ || (/^\s/ && $contents=~/\004/)) {
$contents.="\001$_\002";
$first=$_;
next;