]> git.plutz.net Git - serve0/commitdiff
improved tag caching, removed obsolete HTML unescaping
authorPaul Hänsch <paul@plutz.net>
Tue, 7 Jul 2020 17:24:16 +0000 (19:24 +0200)
committerPaul Hänsch <paul@plutz.net>
Tue, 7 Jul 2020 17:24:16 +0000 (19:24 +0200)
widgets.sh

index f6ab6074bb1ceb5e8facbe9515d6baaa3740f894..fc6818e206748cb2c933e409e35afc52b0c14bbe 100644 (file)
@@ -10,28 +10,11 @@ w_refuri="$(URL "$PATH_INFO")?$(HTML "$QUERY_STRING")"
 w_str_s="$(STRING "$SEARCH")"
 w_str_f="$(STRING "$FILTER")"
 
-w_ascii='
-  s-&#48;-0-g; s-&#49;-1-g; s-&#50;-2-g; s-&#51;-3-g; s-&#52;-4-g; s-&#53;-5-g;
-  s-&#54;-6-g; s-&#55;-7-g; s-&#56;-8-g; s-&#57;-9-g;
-  s-&#65;-A-g; s-&#66;-B-g; s-&#67;-C-g; s-&#68;-D-g; s-&#69;-E-g; s-&#70;-F-g;
-  s-&#71;-G-g; s-&#72;-H-g; s-&#73;-I-g; s-&#74;-J-g; s-&#75;-K-g; s-&#76;-L-g;
-  s-&#77;-M-g; s-&#78;-N-g; s-&#79;-O-g; s-&#80;-P-g; s-&#81;-Q-g; s-&#82;-R-g;
-  s-&#83;-S-g; s-&#84;-T-g; s-&#85;-U-g; s-&#86;-V-g; s-&#87;-W-g; s-&#88;-X-g;
-  s-&#89;-Y-g; s-&#90;-Z-g;
-  s-&#97;-a-g; s-&#98;-b-g; s-&#99;-c-g; s-&#100;-d-g; s-&#101;-e-g; s-&#102;-f-g;
-  s-&#103;-g-g; s-&#104;-h-g; s-&#105;-i-g; s-&#106;-j-g; s-&#107;-k-g; s-&#108;-l-g;
-  s-&#109;-m-g; s-&#110;-n-g; s-&#111;-o-g; s-&#112;-p-g; s-&#113;-q-g; s-&#114;-r-g;
-  s-&#115;-s-g; s-&#116;-t-g; s-&#117;-u-g; s-&#118;-v-g; s-&#119;-w-g; s-&#120;-x-g;
-  s-&#121;-y-g; s-&#122;-z-g;
-  s-&#45;-\--g; s-&#47;-/-g; s-&#47;-/-g; s-&#58;-:-g; s-&#61;-=-g; s-&#64;-@-g;
-  s-&#95;-_-g; s-&#126;-~-g;              s-&#32;- -g; s-&#94;-^-g; s-&#124;-|-g;
-'
-
-w_tags="$_DATA/.index/tags.cache"; w_tagcategories="$_DATA/.index/tagcategories.cache"
-if [ ! -f "$w_tags" -o ! -f "$w_tagcategories" ] \
-   || [ "$(find "$_DATA/" -path '*/.index/meta' -newer "$w_tags")" ]
+c_tags="$_DATA/.index/tags.cache"; c_tagcategories="$_DATA/.index/tagcategories.cache"
+if [ ! -s "$c_tags" -o ! -s "$c_tagcategories" ] \
+   || [ "$(find "$_DATA/" -path '*/.index/meta' -newer "$c_tags")" ]
   then
-  w_tags="$( local cn=1
+  w_tags="$( local cn=1
     find "$_DATA/" -path '*/.index/meta' -print0 \
     | xargs -r0 sed -r '
       s;^.*\t.*\t.*\ttags=(.*)\tcomment=.*\t.*\r$;\1;;
@@ -45,14 +28,16 @@ if [ ! -f "$w_tags" -o ! -f "$w_tagcategories" ] \
         cn=1
       }
       otag="$tag"
-    done
-  } |sort -rn |cut -f2- |HTML |sed "$w_ascii s-&#x0A;-\n-g; s;\n\n;\n;g;" |tee "$w_tags" )"
-  w_tagcategories="$(printf %s "$w_tags" \
-                     | sed -rn '/:/s;^-?([^:]+):.*$;\1;p' |sort -u \
-                     | tee "$w_tagcategories" )"
+    done \
+    |sort -rn |cut -f2- |HTML \
+    |sed "s-&#x0A;-\n-g; s;\n\n;\n;g;"
+  )"
+  w_tagcategories="$(printf %s "$w_tags" | sed -rn '/:/s;^-?([^:]+):.*$;\1;p' |sort -u )"
+  printf %s "$w_tags" >"$c_tags"
+  printf %s "$w_tagcategories" >"$c_tagcategories"
 else
-  w_tags="$(cat "$w_tags")"
-  w_tagcategories="$(cat "$w_tagcategories")"
+  w_tags="$(cat "$c_tags")"
+  w_tagcategories="$(cat "$c_tagcategories")"
 fi
 
 
@@ -179,7 +164,7 @@ w_index(){
 
 w_advsearch(){
   local n lbid tag category filter f t d
-  filter="$(HTML "${FILTER}^" |sed "$w_ascii")"
+  filter="$(HTML "${FILTER}^")"
 
   printf '[form #advsearch action=./?a=advsearch method=POST
             [a href="#" Hide]