s4

changeset 1033:23e57a7f2bd8

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 diff
     1.1 --- a/s4-blog.sh	Thu Dec 28 11:27:06 2023 +0900
     1.2 +++ b/s4-blog.sh	Sat Jan 20 07:44:26 2024 +0900
     1.3 @@ -939,36 +939,47 @@
     1.4  	EOF
     1.5    fi
     1.6    query <<-EOF > $midfile		# Using tempfile for quick db-unlock
     1.7 -	SELECT a.rowid, a.id artid, a.author, hex(s.val)
     1.8 +	SELECT a.rowid, a.id artid, a.author,
     1.9 +	       max(CASE key WHEN 'ctime' THEN hex(s.val) END) ctime,
    1.10 +       	       max(CASE key WHEN 'text' THEN hex(s.val) END) text
    1.11  	FROM article a JOIN article_s s ON a.id=s.id
    1.12 -	WHERE blogid=(SELECT id FROM blog WHERE rowid=$rid)
    1.13 +	WHERE blogid=(SELECT id FROM blog WHERE rowid=$rowid)
    1.14 +	GROUP BY artid
    1.15  	ORDER BY a.rowid;
    1.16  	EOF
    1.17 -  cat $midfile | while IFS='|' read rowid artid author text; do
    1.18 +  cat $midfile | while IFS='|' read rowid artid author ctime text; do
    1.19      $isgrpowner || $isopenblogauthor \
    1.20        || isfilereadable $user article_s $rowid || continue
    1.21      if [ "$by_uname" ]; then
    1.22 -      dir=`printf $bd/%d/%s "$rid" "$author"`
    1.23 +      dir=`printf $bd/%d/%s/%s "$rid" "$author" "$rowid"`
    1.24      else
    1.25        dir=`printf $bd/%d/%06d "$rid" "$rowid"`
    1.26      fi
    1.27 -    txt=`printf %06d $rowid`.txt
    1.28      test -d "$dir" || mkdir -p "$dir"
    1.29 -    echo "$author" > "$dir"/Author.txt
    1.30 -    echo "$text" | unhexize > "$dir/$txt"
    1.31      i=0
    1.32      query "SELECT m.rowid, m.val FROM article_m m \
    1.33  	   WHERE id='$artid' AND m.key IN ('image', 'document', 'binary');" \
    1.34        | while IFS='|' read mrowid filename; do
    1.35            i=$((i+1))
    1.36      	  if [ "$by_uname" ]; then
    1.37 -            outfile=`printf "%s/%06d-%s" "$dir" $rowid "$filename"`
    1.38 +            outfile=`printf "%s/%s" "$dir" "$filename"`
    1.39  	  else
    1.40 -            outfile=`printf "%s/%02d-%s" "$dir" $i "$filename"`
    1.41 +            outfile=`printf "%s/%s" "$dir" "$filename"`
    1.42  	  fi
    1.43            query "SELECT quote(bin) FROM article_m WHERE rowid=$mrowid;" \
    1.44  		| unhexize > "$outfile"
    1.45      done
    1.46 +    art=00-Article.txt
    1.47 +    while [ -s "$dir"/$art ]; do
    1.48 +      art=0$art
    1.49 +    done
    1.50 +    cat<<-EOF > "$dir/$art"
    1.51 +	-----------------------------------------
    1.52 +	Author:	$author
    1.53 +	Date:	`echo "$ctime" | unhexize`
    1.54 +	-----------------------------------------
    1.55 +	`echo "$text" | unhexize`
    1.56 +	EOF
    1.57    done
    1.58    if [ ! -d $bd/$rid ]; then
    1.59      contenttype; echo