]> git.plutz.net Git - serve0/blob - view.sh
generate advfilter section from cached tag order
[serve0] / view.sh
1 #!/bin/sh
2
3 . "$_EXEC/db_meta.sh"
4 . "$_EXEC/widgets.sh"
5
6 read_meta "${ITEM%.*}"
7
8 printf 'Content-Type: text/html;charset=utf-8\r\n\r\n'
9
10 { cat <<-EOF
11         [!DOCTYPE HTML]
12         [html [head
13           [title . $(HTML "${ITEM##*/}")]
14           [meta name="viewport" content="width=device-width"]
15           [link rel=stylesheet href="/cgilite/common.css" ]
16           [link rel=stylesheet href="/style.css" ]
17         ] [body #view
18           [script type="text/javascript" src="/stereoview.js"\n]
19           [div #navigation
20             [a #t_bookmarks href="#bookmarks" &#x2605;]
21             $(w_search)
22             [a #t_prefs href="#prefs" &#x2699;]
23           ]
24         EOF
25   w_bookmarks
26   w_advsearch
27   w_prefs
28   cat <<-EOF
29           [video #mainvideo controls="controls" preload="auto" [source src="?a=download" type="video/mp4"]]
30           [a "?a=download" Download]
31           [a "javascript:stereoview(180, document.getElementById(&#34;mainvideo&#34;));" View 180° Stereoscopic]
32           [a "javascript:stereoview(360, document.getElementById(&#34;mainvideo&#34;));" View 360° Stereoscopic]
33           [h1 . $(HTML "${ITEM##*/}" |sed -E 's;[^0-9a-zA-Z&#];&[wbr];g')]
34           [span .time $((META_LENGTH / 60)):$(printf %02i $((META_LENGTH % 60)))min] [span .dim ${META_WIDTH}x${META_HEIGHT}]
35         EOF
36   printf %s\\n "$META_TAGS" |tr , \\n |while read tag; do
37     [ "$tag" ] && printf '  [span .tag . %s]\n' "$(HTML "${tag#-}")"
38   done
39
40   if [ "${META_GROUP}" ]; then
41     printf '[div .itemlist'
42     list_meta "$_DATA/${ITEM%/*}/.index/meta" \
43     | grep -F "${CR}    ${META_GROUP}" \
44     | sort -n -k8 -k6,6 \
45     | while read_meta; do
46       file="$(printf %s\\n "$_DATA/${META_NAME}".*)"
47       [ "/${file#${_DATA}/}" = "$ITEM" ] && continue
48       name="$(HTML "/${file#${_DATA}/}")"
49
50       printf '[div .list .file
51                 [a href="%s" [img src="%s?a=thumbnail"]][label . %s]
52                 [span .time %i:%02imin] [span .dim %ix%i] %s
53               ]' \
54         "$name" "$name" "${name##/}" \
55         "$((META_LENGTH / 60))" "$((META_LENGTH % 60))" \
56         "$META_WIDTH" "$META_HEIGHT" \
57         "$(printf %s\\n "${META_TAGS}" \
58            | sed -r 's;^;,;; s;,+;,;g; s;,$;;;
59                      :X s;,-?([^,]+)(,|$); [span .tag\n \1]\2;; tX;'
60         )"
61     done
62     printf ']'
63   fi
64
65   printf '
66   [div #editing
67     [form method=POST action="/?a=multitag"
68     [hidden "select" "%s"]' "$(HTML "${ITEM}")"
69       [ -d "$_DATA/${ITEM%/*}/.index/" ] && w_tagging
70     printf '
71     ]
72   ]
73 ] ]
74 '; } | "$_EXEC/cgilite/html-sh.sed"