changeset 333:002cc900200a

Nonexistent Icon cleaning is too heavy, put it after loop
author HIROSE Yuuji <yuuji@gentei.org>
date Fri, 21 Oct 2016 23:56:19 +0859
parents 9dc6f9e60f6a
children 64eabfa2e69f
files s4-blog.sh
diffstat 1 files changed, 22 insertions(+), 12 deletions(-) [+]
line wrap: on
line diff
--- a/s4-blog.sh	Fri Oct 21 22:57:04 2016 +0859
+++ b/s4-blog.sh	Fri Oct 21 23:56:19 2016 +0859
@@ -150,6 +150,7 @@
   # 2016-08-15 Newer flag introduced
   atime=`query "SELECT time FROM acclog
 		WHERE tbl='blog' AND tblrowid=$rowid AND user='$user';"`
+  iconcleaner=$tmpd/iconcleaner.$$
   sq $db<<EOF |
 WITH a_s AS (
   SELECT id,
@@ -197,8 +198,10 @@
       picon="<p class=\"proficon\"><a href=\"$hlink+$uid\"><img src=\"$icfn\"></a></p>"
     else
       picon=""
-      query "DELETE FROM user_s WHERE key='$iconcachekey' AND
-		val=`sqlquotestr \"$icon\"`;"
+      if [ -n "$icon" ]; then
+	echo "DELETE FROM user_s WHERE key='$iconcachekey' AND
+	      val=`sqlquotestr \"$icon\"`;" >> $iconcleaner
+      fi
     fi
     
     cat<<EOF
@@ -306,6 +309,8 @@
 	</form> <!-- End of s4-blog:blog_showentry() main form -->
 	<p id="bottom"> </p>
 	EOF
+  # Clean up orphaned icon cache
+  [ -s $iconcleaner ] && query < $iconcleaner
   # Record access log
   acclog blog $rowid
 }
@@ -475,7 +480,7 @@
 	ctime=`date +%F`
 	kc=$kc${kc:+" AND "}"s.ctime GLOB '${ctime}*'"
       else
-	kc=$kc${kc:+" AND "}"s.text LIKE '%$k%'"
+	kc=$kc${kc:+" AND "}"content LIKE '%$k%'"
       fi
     done
   fi
@@ -507,7 +512,7 @@
        SELECT b.rid||'#'||x.id as '',
 		  b.title as TITLE,
 		  substr(x.ctime, 0, 11) as DATE,
-		  substr(x.text, 0, 78) as TEXT
+		  substr(x.content, 0, 78) as TEXT
        FROM (SELECT blg.rid,blg.*,bs.val as title
 	     FROM readableblogs blg JOIN blog_s bs
 	          ON blg.id=bs.id AND bs.key='title') b
@@ -515,16 +520,21 @@
 	    (SELECT a.id,
 		    a.blogid,
 		    s.ctime,
-		    s.text
+		    s.text || ' ' || m.filenames content
 	     FROM article a
 	       JOIN
-		  (SELECT id,  /* Create [id, ctime, text] from article_s */
-			  max(CASE key WHEN 'ctime' THEN val END) ctime,
-			  max(CASE key WHEN 'text' THEN val END) text
-		   FROM article_s GROUP BY id) s
-	       ON a.id=s.id WHERE $kc$kwdgrp)
-	     x ON b.id=x.blogid
-	 WHERE b.id IN (SELECT id FROM blog_s $cond)
+	          (SELECT id,  /* Create [id, ctime, text] from article_s */
+		          max(CASE key WHEN 'ctime' THEN val END) ctime,
+		     	  max(CASE key WHEN 'text' THEN val END) text
+	      	   FROM article_s GROUP BY id) s
+	       JOIN
+	          (SELECT id, group_concat(val) filenames
+		   FROM article_m
+		   WHERE type LIKE 'file:%'
+	      	   GROUP BY id) m
+	       ON a.id=s.id AND a.id=m.id WHERE $kc$kwdgrp) x
+	   ON b.id=x.blogid
+       WHERE b.id IN (SELECT id FROM blog_s $cond)
        ORDER by DATE DESC, TITLE, x.ctime;"
   sedopt="s,<TR><TD>\([^<]*\)</TD>,<TR><TD><a\
  href=\"?replyblog+\1\">VIEW</a></TD>,"

yatex.org