#!/usr/local/bin/perl -w use Pg; $db="linuxman"; # Current date and time ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time); $gendate=sprintf "%04d-%02d-%02d, %02dh%02d",1900+$year,$mon+1,$mday,$hour,$min; # Months'names @mois=("","janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"); # Connect to db $conn = Pg::connectdb("dbname=$db"); die $conn->errorMessage unless PGRES_CONNECTION_OK eq $conn->status; print "connected to $db\n"; # Sort the entries $result = $conn->exec("SELECT year,month FROM articles GROUP BY year,month ORDER BY year"); die $conn->errorMessage unless PGRES_TUPLES_OK eq $result->resultStatus; $num = $result->ntuples; print "$num months\n"; for ($i=0;$i<$num;$i++){ $tab[$i][0]=$result->getvalue($i,0); $tab[$i][1]=$result->getvalue($i,1); print "$tab[$i][0], $tab[$i][1]\n"; } # Create the files for ($i=0;$i<$num;$i++){ create($i); } # Create index.html $filename="index.html"; open(FD, ">$filename") or die "can not open $filename"; print FD "
|
Warly's Linux Story |
Chronologie
\n";
for ($i=0;$i<$num;$i++){
$an=$tab[$i][0];
$mois=$tab[$i][1];
my($str)= sprintf "%04d%02d",$an,$mois;
print FD "
$mois[$mois] $an\n";
}
print FD "
Index des mots clés
Divers 0-9 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
\n"; $result = $conn->exec("SELECT year,month,day,num,keyword FROM articles ORDER BY keyword"); die $conn->errorMessage unless PGRES_TUPLES_OK eq $result->resultStatus; $num_mots_cles = $result->ntuples; print "$num_mots_cles mots clés\n"; print FD "|
\n";
if ($j < $num_mots_cles){
$mot = $result->getvalue($j,4);
while ($mot =~ /^[\/]*[$alphabet[$i-1]].*/i){
$file = sprintf "%04d%02d/%04d%02d.html#%04d%02d%02d-%d",$result->getvalue($j,0),$result->getvalue($j,1),$result->getvalue($j,0),$result->getvalue($j,1),$result->getvalue($j,0),$result->getvalue($j,1),$result->getvalue($j,2),$result->getvalue($j,3);
encode($mot);
print FD " |
\n";
if ($j < $num_mots_cles){
$mot = $result->getvalue($j,4);
while ($mot =~ /^[\/]*[$alphabet[$i]].*/i){
$file = sprintf "%04d%02d/%04d%02d.html#%04d%02d%02d-%d",$result->getvalue($j,0),$result->getvalue($j,1),$result->getvalue($j,0),$result->getvalue($j,1),$result->getvalue($j,0),$result->getvalue($j,1),$result->getvalue($j,2),$result->getvalue($j,3);
encode($mot);
print FD " |
Un grand merci à Fabrice qui corrige et normalise mes pages web et me donne de nombreuses bonnes idées.
Generated $gendate Mail
"; exit(0); sub create { my($i)= @_; $an=$tab[$i][0]; $mois=$tab[$i][1]; $pref = sprintf "%04d%02d",$an,$mois; print "create $pref/$pref.html\n"; mkdir("$pref", 0755); $filename="$pref/$pref.html"; open(FD, ">$filename") or die "can not open $filename"; print FD "| Linuxman - $mois[$mois] $an |
\n";
for ($j=0;$j<$n_day;$j++){
$jour[$j]=$result->getvalue($j,0);
$tag = sprintf "%04d%02d%02d",$an,$mois,$jour[$j];
print FD "
$jour[$j] $mois $an\n";
}
print FD "
| $jour[$j] $mois $an |
Mots Clés : "; $r_data = $conn->exec("SELECT keyword,article FROM articles WHERE year = $an AND month = $mois AND day = $jour[$j] AND num = $numero"); die $conn->errorMessage unless PGRES_TUPLES_OK eq $r_data->resultStatus; $l=0; for ($l=0;$l<($r_data->ntuples-1);$l++){ $str = $r_data->getvalue($l,0); print FD "$str, "; } $str = $r_data->getvalue($l,0); print FD "$str."; print FD "
\n"; $r_com = $conn->exec("BEGIN"); die $conn->errorMessage unless PGRES_COMMAND_OK eq $r_com->resultStatus; $str = $r_data->getvalue(0,1); $ofd = $conn->lo_open($str,0644); die $conn->errorMessage unless $ofd != -1; while ($conn->lo_read($ofd,$str,1024)){ print FD "$str"; } $r_com = $result = $conn->exec("END"); die $conn->errorMessage unless PGRES_COMMAND_OK eq $r_com->resultStatus; print FD "\n