X-Git-Url: http://git.plutz.net/?a=blobdiff_plain;f=pages%2Flist.sh;h=39a6ccbea7e64855400e61ca81833aedfd8fa3f2;hb=30ac844acd16c48c632232285259a2fc449a58ce;hp=0870961fa124b7b498214dd66d2cef358a441406;hpb=6b08e359a06ed38d25c1756e5600096c77417a9c;p=serve0 diff --git a/pages/list.sh b/pages/list.sh index 0870961..39a6ccb 100755 --- a/pages/list.sh +++ b/pages/list.sh @@ -24,14 +24,27 @@ LF=' filters="${_GET[f]}" debug "FILTERS: $filters" +present_filter(){ printf %s "$*" |sed -r 's;(^|!|\^|\|)([^!\^\|:]+:);\1;g;s;\^; \&\; ;g' } + +if [ -n "$search" ]; then + TITLE="$search by $order" +elif [ -n $filter ]; then + TITLE="$(present_filter "$filter") by $order" +else + TITLE="List by $order" +fi + quicklinks(){ output='' tac ${_DATA}/meta/recent \ | while [ "$(printf %s "$output" |wc -l)" -lt 10 ] && read line; do - line="$line" printf %s "$output" |grep -qF "$line" || output="$output$line$LF" done - printf %s\\n "$output" + printf %s "$output" |while read line; do + linef=$(printf %s "$line" |sed -r 's;^.*(\?|&)f=([^&]+)&?.*$;\2;g') + lineo=$(printf %s "$line" |sed -r 's;^.*(\?|&)o=([^&]+)&?.*$;\2;g') + printf %s "by ${lineo}: $(present_filter "$linef")" + done } category_selected(){ @@ -97,12 +110,14 @@ genlist(){ } thumblist() { - cache="${_DATA}/cache/${pagesize}?o=${order}&s=${search}&f=${filter}&pn=${page}" + cachebase="${pagesize}?o=${order}&s=${search//\//}&f=${filter//\//}&pn=${page}" + cache="${_DATA}/cache/${cachebase}" if [ "$cache" -nt ${_DATA}/videos -a "$cache" -nt ${_DATA}/meta ]; then cat "$cache" else filterex="s;^([0-9]+\t){3}(.+)\n.*$;\2;p" printf '%s\n' "$filter" |tr '^' '\n' \ + | sed -r 's;[]\/\(\)\\\^\$\?\.\+\*\;\[\{\}];\\\\&;g' \ | while read each; do [ "${each:0:1}" = '!' ] && filterex="/^[^\n]+\n(.*\|)?(${each#?})(\|.*)?$/d;{${filterex}}" \ || filterex="/^[^\n]+\n(.*\|)?(${each})(\|.*)?$/{${filterex}}"