]> git.plutz.net Git - rawnet/blob - index.cgi
channel view and overview pages
[rawnet] / index.cgi
1 #!/bin/sh
2
3 USER_REQUIREEMAIL=false
4
5 . "${_EXEC:-${0%/*}}"/cgilite/cgilite.sh
6 . "$_EXEC"/cgilite/session.sh nocookie
7 . "$_EXEC"/cgilite/users.sh
8
9 PATH_INFO="$(PATH "/${PATH_INFO#${_BASE}}")"
10
11 export MD_HTML="false"
12 if [ "$(which awk)" ]; then
13   markdown() { awk -f "$_EXEC/cgilite/markdown.awk"; }
14 else
15   markdown() { busybox awk -f "$_EXEC/cgilite/markdown.awk"; }
16 fi
17
18 yield_page(){
19   title="${1:-RAW:NET}" page="$2"
20   printf '%s\r\n' 'Content-Type: text/html; charset=utf-8' \
21                   "Content-Security-Policy: script-src 'none'" \
22                   ''
23   { printf '[html
24     [head
25       [meta name="viewport" content="width=device-width"]
26       [link rel="stylesheet" type="text/css" href="%s/cgilite/common.css"]
27       [link rel="stylesheet" type="text/css" href="%s/rawnet.css"]
28       [title %s]
29     ] [body class="%s"
30   ' "$_BASE" "$_BASE" "$(HTML "$title")" "$page"
31   printf '
32       [header
33         [form method=POST action="%s/search/"
34           [input name=search placeholder="Search"]
35         ]
36       ]' "$_BASE"
37   cat
38   printf '] ]'
39   } |"$_EXEC/cgilite/html-sh.sed" -u
40 }
41
42 case ${PATH_INFO} in
43   /favicon.ico) printf '%s\r\n' 'Content-Length: 0' '';;
44   *.css)
45     . "${_EXEC}/cgilite/file.sh"
46     FILE "${_EXEC}/${PATH_INFO}"
47     ;;
48   /login/)
49     if [ "$USER_ID" ]; then
50       REDIRECT "${_BASE}/"
51     else
52       yield_page 'RAW:NET Login' login <<-EOF
53         $(w_user_login)
54         EOF
55     fi
56     ;;
57   /register/)
58     yield_page 'RAW:NET Register User' register <<-EOF
59         $(w_user_register)
60         EOF
61     ;;
62   /recover/)
63     yield_page 'RAW:NET Recover Account' recover <<-EOF
64         $(w_user_recover)
65         EOF
66     ;;
67   /|/channel/*) . "${_EXEC}/page_channel.sh";;
68   /playlist/*) . "${_EXEC}/page_playlist.sh";;
69   /search/*) . "${_EXEC}/page_search.sh";;
70   *) . "${_EXEC}/page_404.sh";;
71 esac
72
73 exit 0