changeset 1033:23e57a7f2bd8 draft

Preserve file name in article
author HIROSE Yuuji <yuuji@gentei.org>
date Sat, 20 Jan 2024 07:44:26 +0900
parents ae88ca565d08
children 17e21e7dcfaa
files s4-blog.sh
diffstat 1 files changed, 20 insertions(+), 9 deletions(-) [+]
line wrap: on
line diff
--- a/s4-blog.sh	Thu Dec 28 11:27:06 2023 +0900
+++ b/s4-blog.sh	Sat Jan 20 07:44:26 2024 +0900
@@ -939,36 +939,47 @@
 	EOF
   fi
   query <<-EOF > $midfile		# Using tempfile for quick db-unlock
-	SELECT a.rowid, a.id artid, a.author, hex(s.val)
+	SELECT a.rowid, a.id artid, a.author,
+	       max(CASE key WHEN 'ctime' THEN hex(s.val) END) ctime,
+       	       max(CASE key WHEN 'text' THEN hex(s.val) END) text
 	FROM article a JOIN article_s s ON a.id=s.id
-	WHERE blogid=(SELECT id FROM blog WHERE rowid=$rid)
+	WHERE blogid=(SELECT id FROM blog WHERE rowid=$rowid)
+	GROUP BY artid
 	ORDER BY a.rowid;
 	EOF
-  cat $midfile | while IFS='|' read rowid artid author text; do
+  cat $midfile | while IFS='|' read rowid artid author ctime text; do
     $isgrpowner || $isopenblogauthor \
       || isfilereadable $user article_s $rowid || continue
     if [ "$by_uname" ]; then
-      dir=`printf $bd/%d/%s "$rid" "$author"`
+      dir=`printf $bd/%d/%s/%s "$rid" "$author" "$rowid"`
     else
       dir=`printf $bd/%d/%06d "$rid" "$rowid"`
     fi
-    txt=`printf %06d $rowid`.txt
     test -d "$dir" || mkdir -p "$dir"
-    echo "$author" > "$dir"/Author.txt
-    echo "$text" | unhexize > "$dir/$txt"
     i=0
     query "SELECT m.rowid, m.val FROM article_m m \
 	   WHERE id='$artid' AND m.key IN ('image', 'document', 'binary');" \
       | while IFS='|' read mrowid filename; do
           i=$((i+1))
     	  if [ "$by_uname" ]; then
-            outfile=`printf "%s/%06d-%s" "$dir" $rowid "$filename"`
+            outfile=`printf "%s/%s" "$dir" "$filename"`
 	  else
-            outfile=`printf "%s/%02d-%s" "$dir" $i "$filename"`
+            outfile=`printf "%s/%s" "$dir" "$filename"`
 	  fi
           query "SELECT quote(bin) FROM article_m WHERE rowid=$mrowid;" \
 		| unhexize > "$outfile"
     done
+    art=00-Article.txt
+    while [ -s "$dir"/$art ]; do
+      art=0$art
+    done
+    cat<<-EOF > "$dir/$art"
+	-----------------------------------------
+	Author:	$author
+	Date:	`echo "$ctime" | unhexize`
+	-----------------------------------------
+	`echo "$text" | unhexize`
+	EOF
   done
   if [ ! -d $bd/$rid ]; then
     contenttype; echo

yatex.org