#!/bin/sh
+for n in "$@"; do case ${n%%=*} in
+ data) _DATA="${n#data=}";;
+ exec) _exec="${n#exec=}";;
+ noerr) exec 2>&-;;
+esac; done
+
[ -z "${_EXEC%/}" ] && _EXEC="$(realpath "${0%/*}")" || _EXEC="${_EXEC%/}"
[ -z "${_DATA%/}" ] && _DATA=. || _DATA="${_DATA%/}"
ORDER="$(GET o |grep -m1 -axE 'Date|Name|Length' || printf Name)"
LISTSIZE="$(COOKIE pagesize |grep -m1 -axE '[1-9][0-9]*' || printf 50)"
ITEM="$(PATH "${PATH_INFO#/}")"
+ACTION="$(GET a)"
-case $(GET a) in
+case $ACTION in
setprefs)
- SET_COOKIE +$((86400 * 90)) pagesize="$(POST pagesize |grep -m1 -axE '[1-9][0-9]*' || printf 50)"
- SET_COOKIE +$((86400 * 90)) mode="$(POST mode |grep -m1 -axE 'browse|index' || printf browse)"
- SET_COOKIE +$((86400 * 90)) fakemp4="$(POST fakemp4 |grep -m1 -axE 'yes' || printf no)"
+ SET_COOKIE +$((86400 * 90)) pagesize="$(POST pagesize |grep -m1 -axE '[1-9][0-9]*' || printf 50)"
+ SET_COOKIE +$((86400 * 90)) mode="$(POST mode |grep -m1 -axE 'browse|index' || printf browse)"
+ SET_COOKIE +$((86400 * 90)) fakemp4="$(POST fakemp4 |grep -m1 -axE 'yes' || printf no)"
+ SET_COOKIE +$((86400 * 90)) downscale="$(POST downscale |grep -m1 -axE 'yes' || printf no)"
+ [ "$(POST index)" = "update" ] && touch -cd @0 "${_DATA}/.index/meta"
REDIRECT "$(POST ref)"
;;
bookmark)
fi
REDIRECT "$(POST ref)"
;;
+ multitag)
+ . "$_EXEC/multitag.sh"
+ REDIRECT "$(POST ref)"
+ ;;
esac
if [ "$ITEM" = "/style.css" ]; then
. "$_EXEC/cgilite/file.sh"
[ -r "$_DATA/$ITEM" ] && FILE "$_DATA/$ITEM" \
|| FILE "$_EXEC/style.css"
+elif [ "$ITEM" = "/stereoview.js" ]; then
+ . "$_EXEC/cgilite/file.sh"
+ FILE "$_EXEC/stereoview.js"
elif [ -f "$_DATA/$ITEM" ]; then
- case $(GET a) in
- tag)
- ;;
+ case $ACTION in
thumbnail)
. "$_EXEC/cgilite/file.sh"
+ . "$_EXEC/thumbnail.sh"
index="$_DATA/${ITEM%/*}/.index"
thumb="$index/${ITEM##*/}"; thumb="${thumb%.*}.jpg"
- [ -d "$index" -a \! -f "$thumb" ] \
- && file="$_DATA/$ITEM" . "$_EXEC/thumbnail.sh"
+ [ -d "$index" -a ! -f "$thumb" ] \
+ && { printf %s "$ITEM" |grep -qE -e "${file_pattern}" ;} \
+ && gen_thumb "$_DATA/$ITEM" "$thumb"
FILE "$thumb"
;;
delete)
;;
- *) . "$_EXEC/cgilite/file.sh"
- FILE "$_DATA/$ITEM"
+ download)
+ . "$_EXEC/cgilite/file.sh"
+ fakemp4="$(COOKIE fakemp4)"
+ downscale="$(COOKIE downscale)"
+ downfile="$_DATA/${ITEM%/*}/.transcode/${ITEM%.*}.480p.webm"
+ if [ "$downscale" = yes -a -f "$downfile" ]; then
+ FILE "$downfile" "$([ "$fakemp4" = yes ] && printf 'video/mp4')"
+ else
+ FILE "$_DATA/$ITEM" "$([ "$fakemp4" = yes ] && printf 'video/mp4')"
+ fi
;;
+ *) . "$_EXEC/view.sh"
esac
elif [ -d "$_DATA/$ITEM" ]; then
- case $(GET a) in
+ case $ACTION in
advsearch)
. "$_EXEC/advsearch.sh"
;;
fi
REDIRECT "$(POST ref)"
;;
- multitag)
- . "$_EXEC/multitag.sh"
- REDIRECT "$(POST ref)"
- ;;
*) . "$_EXEC/list.sh"
;;
esac