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