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