Mercurial > hgrepos > hgweb.cgi > 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 wrap: on
line diff
--- a/s4-blog.sh Sun Apr 19 17:59:09 2020 +0900 +++ b/s4-blog.sh Sun Apr 19 18:03:57 2020 +0900 @@ -696,6 +696,8 @@ bd=$tmpd/archive.$$ mkdir $bd case "$mode" in + *quiz*) + copy2csv=true ;; *enquete*) copy2csv=true csvline=`getvalbyid blog heading $1 | grep "..*,." | head -1` @@ -726,6 +728,7 @@ if $copy2csv; then mkdir $bd/$rid outcsv=$bd/$rid/migrate-$rid.csv + fullcsv=$bd/$rid/all-text-full-$rid.csv sq "$db" <<-EOF | tr '|' ',' > $outcsv SELECT author as "USER", replace(val, x'0a', ',') as "${csvline:-ANSWER}" @@ -733,9 +736,19 @@ AND blogid=(SELECT id FROM blog WHERE rowid=$rid) AND s.key='text'; EOF + sq "$db" <<-EOF > $fullcsv + .mode csv + .head 1 + SELECT author as "ユーザ", + (SELECT gecos FROM gecoses g WHERE author=g.name) as "表示名", + val as "テキスト" + FROM article a JOIN article_s s ON a.id=s.id + AND blogid=(SELECT id FROM blog WHERE rowid=$rid) + AND s.key='text'; + EOF fi query <<-EOF | - SELECT a.rowid, a.id artid, a.author, s.val + SELECT a.rowid, a.id artid, a.author, hex(s.val) FROM article a JOIN article_s s ON a.id=s.id WHERE blogid=(SELECT id FROM blog WHERE rowid=$rid); EOF @@ -744,7 +757,7 @@ dir=`printf $bd/%d/%06d "$rid" "$rowid"` mkdir -p $dir echo "$author" > $dir/Author - echo "$text" > $dir/Text + echo "$text" | unhexize > $dir/Text i=0 query "SELECT m.rowid, m.val FROM article_m m \ WHERE id='$artid' AND m.key IN ('image', 'document', 'binary');" \ @@ -754,21 +767,6 @@ | unhexize > $outfile done done - # query "select m.rowid,a.id,author,m.val from article a join article_m m\ - # on a.id=m.id where blogid=(select id from blog where rowid=$rid)\ - # and m.key in ('image', 'document', 'binary');" \ - # | while IFS='|' read rowid artid author filename; do - # err isfilereadable $user article_m $rowid - # isfilereadable $user article_m $rowid || continue - # err ok - # i=$((i+1)) - # dir=`printf $bd/%03d $i` - # mkdir $dir - # echo "$author" > $dir/author - # query "select val from article_s where id=$artid;" > $dir/text - # query "select quote(bin) from article_m where rowid=$rowid;" \ - # | unhexize > $dir/$filename - # done if [ ! -d $bd/$rid ]; then contenttype; echo echo "取得できるファイルがありませんでした。" | html p @@ -776,7 +774,7 @@ fi if $copy2csv; then - query <<-EOF > $bd/$rid/all-text-$rid.csv + query <<-EOF > $bd/$rid/all-text-1stline-$rid.csv .mode csv .head 1 .import $outcsv tmp_q