From: Paul Hänsch Date: Tue, 16 Nov 2021 00:30:03 +0000 (+0100) Subject: quicker tag collection X-Git-Url: https://git.plutz.net/?a=commitdiff_plain;h=0d5b6c1d0cbe814a4c3819353d5aba8a1c6facaf;p=serve0 quicker tag collection --- diff --git a/widgets.sh b/widgets.sh old mode 100644 new mode 100755 index 6af562e..35b485a --- a/widgets.sh +++ b/widgets.sh @@ -14,23 +14,14 @@ c_tags="$_DATA/.index/tags.cache"; c_tagcategories="$_DATA/.index/tagcategories. if [ ! -s "$c_tags" -o ! -s "$c_tagcategories" ] \ || [ "$(find "$_DATA/" -path '*/.index/meta' -newer "$c_tags")" ] then - w_tags="$( cn=1 - find "$_DATA/" -path '*/.index/meta' -print0 \ - | xargs -0 -r sed -E ' - s;^.*\t.*\t.*\ttags=(.*)\tcomment=.*\t.*\r$;\1;; - s;,;\n;g;' \ - | { sort; printf '\n'; } \ - | while read -r tag; do - if [ "$tag" = "$otag" ]; then - cn=$((cn + 1)) - else - printf "%i %s\n" "$cn" "$(UNSTRING "$otag")" - cn=1 - fi - otag="$tag" - done \ - |sort -rn |cut -f2- |HTML \ - |sed "s- -\n-g; s;\n\n;\n;g;" + w_tags="$( + list_meta |sed -E ' + s;^.*\ttags=([^\t]*)\t.*$;\1;; + s;,;\n;g; + ' \ + | sort |uniq -c |sed -E 's;^ *[0-9]+ ;;;' |sort -rn \ + | UNSTRING | HTML \ + | sed -E 's; \;;\n;g; s;\n+;\n;g;' )" w_tagcategories="$(printf %s "$w_tags" | sed -rn '/:/s;^-?([^:]+):.*$;\1;p' |sort -u )" printf %s "$w_tags" >"$c_tags"