s4

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 diff
     1.1 --- a/s4-blog.sh	Fri Oct 21 22:57:04 2016 +0859
     1.2 +++ b/s4-blog.sh	Fri Oct 21 23:56:19 2016 +0859
     1.3 @@ -150,6 +150,7 @@
     1.4    # 2016-08-15 Newer flag introduced
     1.5    atime=`query "SELECT time FROM acclog
     1.6  		WHERE tbl='blog' AND tblrowid=$rowid AND user='$user';"`
     1.7 +  iconcleaner=$tmpd/iconcleaner.$$
     1.8    sq $db<<EOF |
     1.9  WITH a_s AS (
    1.10    SELECT id,
    1.11 @@ -197,8 +198,10 @@
    1.12        picon="<p class=\"proficon\"><a href=\"$hlink+$uid\"><img src=\"$icfn\"></a></p>"
    1.13      else
    1.14        picon=""
    1.15 -      query "DELETE FROM user_s WHERE key='$iconcachekey' AND
    1.16 -		val=`sqlquotestr \"$icon\"`;"
    1.17 +      if [ -n "$icon" ]; then
    1.18 +	echo "DELETE FROM user_s WHERE key='$iconcachekey' AND
    1.19 +	      val=`sqlquotestr \"$icon\"`;" >> $iconcleaner
    1.20 +      fi
    1.21      fi
    1.22      
    1.23      cat<<EOF
    1.24 @@ -306,6 +309,8 @@
    1.25  	</form> <!-- End of s4-blog:blog_showentry() main form -->
    1.26  	<p id="bottom"> </p>
    1.27  	EOF
    1.28 +  # Clean up orphaned icon cache
    1.29 +  [ -s $iconcleaner ] && query < $iconcleaner
    1.30    # Record access log
    1.31    acclog blog $rowid
    1.32  }
    1.33 @@ -475,7 +480,7 @@
    1.34  	ctime=`date +%F`
    1.35  	kc=$kc${kc:+" AND "}"s.ctime GLOB '${ctime}*'"
    1.36        else
    1.37 -	kc=$kc${kc:+" AND "}"s.text LIKE '%$k%'"
    1.38 +	kc=$kc${kc:+" AND "}"content LIKE '%$k%'"
    1.39        fi
    1.40      done
    1.41    fi
    1.42 @@ -507,7 +512,7 @@
    1.43         SELECT b.rid||'#'||x.id as '',
    1.44  		  b.title as TITLE,
    1.45  		  substr(x.ctime, 0, 11) as DATE,
    1.46 -		  substr(x.text, 0, 78) as TEXT
    1.47 +		  substr(x.content, 0, 78) as TEXT
    1.48         FROM (SELECT blg.rid,blg.*,bs.val as title
    1.49  	     FROM readableblogs blg JOIN blog_s bs
    1.50  	          ON blg.id=bs.id AND bs.key='title') b
    1.51 @@ -515,16 +520,21 @@
    1.52  	    (SELECT a.id,
    1.53  		    a.blogid,
    1.54  		    s.ctime,
    1.55 -		    s.text
    1.56 +		    s.text || ' ' || m.filenames content
    1.57  	     FROM article a
    1.58  	       JOIN
    1.59 -		  (SELECT id,  /* Create [id, ctime, text] from article_s */
    1.60 -			  max(CASE key WHEN 'ctime' THEN val END) ctime,
    1.61 -			  max(CASE key WHEN 'text' THEN val END) text
    1.62 -		   FROM article_s GROUP BY id) s
    1.63 -	       ON a.id=s.id WHERE $kc$kwdgrp)
    1.64 -	     x ON b.id=x.blogid
    1.65 -	 WHERE b.id IN (SELECT id FROM blog_s $cond)
    1.66 +	          (SELECT id,  /* Create [id, ctime, text] from article_s */
    1.67 +		          max(CASE key WHEN 'ctime' THEN val END) ctime,
    1.68 +		     	  max(CASE key WHEN 'text' THEN val END) text
    1.69 +	      	   FROM article_s GROUP BY id) s
    1.70 +	       JOIN
    1.71 +	          (SELECT id, group_concat(val) filenames
    1.72 +		   FROM article_m
    1.73 +		   WHERE type LIKE 'file:%'
    1.74 +	      	   GROUP BY id) m
    1.75 +	       ON a.id=s.id AND a.id=m.id WHERE $kc$kwdgrp) x
    1.76 +	   ON b.id=x.blogid
    1.77 +       WHERE b.id IN (SELECT id FROM blog_s $cond)
    1.78         ORDER by DATE DESC, TITLE, x.ctime;"
    1.79    sedopt="s,<TR><TD>\([^<]*\)</TD>,<TR><TD><a\
    1.80   href=\"?replyblog+\1\">VIEW</a></TD>,"