]> git.plutz.net Git - serve0/blobdiff - advsearch.sh
application of tag filters
[serve0] / advsearch.sh
diff --git a/advsearch.sh b/advsearch.sh
new file mode 100644 (file)
index 0000000..6f85ed2
--- /dev/null
@@ -0,0 +1,20 @@
+#!/bin/sh
+
+f=''
+ref="$(POST ref)"
+order="$(POST order |grep -m1 -xE 'Name|Date|Length' || printf Name)"
+
+for n in 1 2 3 4 5 6 7 8 9; do
+  [ "$(POST pol_$n)" = neg ] \
+  && f="$f~"
+  cat="$(POST cat_$n)"
+  for m in $(seq 1 $(POST_COUNT tag_$n)); do
+    tag="$(POST tag_$n $m)"
+    [ ! "${tag##${cat}:*}" ] || [ "$cat" = '*' -a "${tag##*:*}" ] \
+    && f="${f}${tag}|"
+  done
+  f="${f%[|^]}^"
+done
+f="${f%^}"
+
+REDIRECT "${ref%%\?*}?o=${order}&f=${f}"