]> git.plutz.net Git - serve0/blob - view.sh
Merge commit 'b931bbd0c30907b9cc956d3707b26b449bf41f76'
[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           [input type=hidden id=StereoFOV  name=StereoFOV  value="$(COOKIE StereoFOV  |grep -xE '[0-9]+' || printf 90)"]
30           [input type=hidden id=StereoDist name=StereoDist value="$(COOKIE StereoDist |grep -xE '[0-9]+' || printf 32)"]
31           [video #mainvideo controls="controls" preload="auto" [source src="?a=download" type="video/mp4"]]
32           [a "?a=download" Download]
33           [label Stereoscopic View:]
34           [a "javascript:stereoview('sbs180', document.getElementById(&#34;mainvideo&#34;));" SBS 180°]
35           [a "javascript:stereoview( 'tb360', document.getElementById(&#34;mainvideo&#34;));" Top/Bottom 360°]
36           [a "javascript:stereoview( 'cu360', document.getElementById(&#34;mainvideo&#34;));" Cubic 360°]
37           [h1 . $(HTML "${ITEM##*/}" |sed -E 's;[^0-9a-zA-Z&#];&[wbr];g')]
38           [span .time $((META_LENGTH / 60)):$(printf %02i $((META_LENGTH % 60)))min] [span .dim ${META_WIDTH}x${META_HEIGHT}]
39         EOF
40   printf %s\\n "$META_TAGS" |tr , \\n |while read tag; do
41     [ "$tag" ] && printf '  [span .tag . %s]\n' "$(HTML "${tag#-}")"
42   done
43
44   if [ "${META_GROUP}" ]; then
45     printf '[div .itemlist'
46     list_meta "$_DATA/${ITEM%/*}/.index/meta" \
47     | grep -F "${CR}    ${META_GROUP}" \
48     | sort -n -k8 -k6,6 \
49     | while read_meta; do for file in "$_DATA/${META_NAME}".*; do
50       [ "/${file#${_DATA}/}" = "$ITEM" ] && continue
51       name="$(HTML "/${file#${_DATA}/}")"
52
53       printf '[div .list .file
54                 [a href="%s" [img src="%s?a=thumbnail"]][label . %s]
55                 [span .time %i:%02imin] [span .dim %ix%i] %s
56               ]' \
57         "$name" "$name" "${name##/}" \
58         "$((META_LENGTH / 60))" "$((META_LENGTH % 60))" \
59         "$META_WIDTH" "$META_HEIGHT" \
60         "$(printf %s\\n "${META_TAGS}" \
61            | sed -r 's;^;,;; s;,+;,;g; s;,$;;;
62                      :X s;,-?([^,]+)(,|$); [span .tag\n \1]\2;; tX;'
63         )"
64     done; done
65     printf ']'
66   fi
67
68   printf '
69   [div #editing
70     [form method=POST action="/?a=multitag"
71     [hidden "select" "%s"]' "$(HTML "${ITEM}")"
72       [ -d "$_DATA/${ITEM%/*}/.index/" ] && w_tagging
73     printf '
74     ]
75   ]
76 ] ]
77 '; } | "$_EXEC/cgilite/html-sh.sed"