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

yatex.org