s4
changeset 616:56b4430125da
Produce multi-line text into csv in quiz/enquete mode
author | HIROSE Yuuji <yuuji@gentei.org> |
---|---|
date | Sun, 19 Apr 2020 18:03:57 +0900 |
parents | a2d595d5605b |
children | a820c4d1435d |
files | s4-blog.sh |
diffstat | 1 files changed, 16 insertions(+), 18 deletions(-) [+] |
line diff
1.1 --- a/s4-blog.sh Sun Apr 19 17:59:09 2020 +0900 1.2 +++ b/s4-blog.sh Sun Apr 19 18:03:57 2020 +0900 1.3 @@ -696,6 +696,8 @@ 1.4 bd=$tmpd/archive.$$ 1.5 mkdir $bd 1.6 case "$mode" in 1.7 + *quiz*) 1.8 + copy2csv=true ;; 1.9 *enquete*) 1.10 copy2csv=true 1.11 csvline=`getvalbyid blog heading $1 | grep "..*,." | head -1` 1.12 @@ -726,6 +728,7 @@ 1.13 if $copy2csv; then 1.14 mkdir $bd/$rid 1.15 outcsv=$bd/$rid/migrate-$rid.csv 1.16 + fullcsv=$bd/$rid/all-text-full-$rid.csv 1.17 sq "$db" <<-EOF | tr '|' ',' > $outcsv 1.18 SELECT author as "USER", 1.19 replace(val, x'0a', ',') as "${csvline:-ANSWER}" 1.20 @@ -733,9 +736,19 @@ 1.21 AND blogid=(SELECT id FROM blog WHERE rowid=$rid) 1.22 AND s.key='text'; 1.23 EOF 1.24 + sq "$db" <<-EOF > $fullcsv 1.25 + .mode csv 1.26 + .head 1 1.27 + SELECT author as "ユーザ", 1.28 + (SELECT gecos FROM gecoses g WHERE author=g.name) as "表示名", 1.29 + val as "テキスト" 1.30 + FROM article a JOIN article_s s ON a.id=s.id 1.31 + AND blogid=(SELECT id FROM blog WHERE rowid=$rid) 1.32 + AND s.key='text'; 1.33 + EOF 1.34 fi 1.35 query <<-EOF | 1.36 - SELECT a.rowid, a.id artid, a.author, s.val 1.37 + SELECT a.rowid, a.id artid, a.author, hex(s.val) 1.38 FROM article a JOIN article_s s ON a.id=s.id 1.39 WHERE blogid=(SELECT id FROM blog WHERE rowid=$rid); 1.40 EOF 1.41 @@ -744,7 +757,7 @@ 1.42 dir=`printf $bd/%d/%06d "$rid" "$rowid"` 1.43 mkdir -p $dir 1.44 echo "$author" > $dir/Author 1.45 - echo "$text" > $dir/Text 1.46 + echo "$text" | unhexize > $dir/Text 1.47 i=0 1.48 query "SELECT m.rowid, m.val FROM article_m m \ 1.49 WHERE id='$artid' AND m.key IN ('image', 'document', 'binary');" \ 1.50 @@ -754,21 +767,6 @@ 1.51 | unhexize > $outfile 1.52 done 1.53 done 1.54 - # query "select m.rowid,a.id,author,m.val from article a join article_m m\ 1.55 - # on a.id=m.id where blogid=(select id from blog where rowid=$rid)\ 1.56 - # and m.key in ('image', 'document', 'binary');" \ 1.57 - # | while IFS='|' read rowid artid author filename; do 1.58 - # err isfilereadable $user article_m $rowid 1.59 - # isfilereadable $user article_m $rowid || continue 1.60 - # err ok 1.61 - # i=$((i+1)) 1.62 - # dir=`printf $bd/%03d $i` 1.63 - # mkdir $dir 1.64 - # echo "$author" > $dir/author 1.65 - # query "select val from article_s where id=$artid;" > $dir/text 1.66 - # query "select quote(bin) from article_m where rowid=$rowid;" \ 1.67 - # | unhexize > $dir/$filename 1.68 - # done 1.69 if [ ! -d $bd/$rid ]; then 1.70 contenttype; echo 1.71 echo "取得できるファイルがありませんでした。" | html p 1.72 @@ -776,7 +774,7 @@ 1.73 fi 1.74 1.75 if $copy2csv; then 1.76 - query <<-EOF > $bd/$rid/all-text-$rid.csv 1.77 + query <<-EOF > $bd/$rid/all-text-1stline-$rid.csv 1.78 .mode csv 1.79 .head 1 1.80 .import $outcsv tmp_q