]> git.plutz.net Git - rawnet/blob - index.cgi
basic styling
[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   { cat <<-EOF
24         [!DOCTYPE HTML]
25         [html [head
26           [meta name="viewport" content="width=device-width"]
27           [link rel="stylesheet" type="text/css" href="$_BASE/cgilite/common.css"]
28           [link rel="stylesheet" type="text/css" href="$_BASE/rawnet.css"]
29           [title . $(HTML "$title")]
30         ] [body class="$page"
31           [header
32             [form method=POST action="$_BASE/search/"
33               [input name=search placeholder="Search"]
34             ]
35             $( [ ! "$USER_ID" ] \
36                && printf '[div #user_login [a href="%s/login/" Login]]' "$_BASE" \
37                || w_user_login
38             )
39           ][main
40         EOF
41   cat
42   printf ']]]'
43   } |"$_EXEC/cgilite/html-sh.sed" -u
44 }
45
46 case ${PATH_INFO} in
47   /favicon.ico) printf '%s\r\n' 'Content-Length: 0' '';;
48   *.css)
49     . "${_EXEC}/cgilite/file.sh"
50     FILE "${_EXEC}/${PATH_INFO}"
51     ;;
52   /login/)
53     if [ "$USER_ID" ]; then
54       REDIRECT "${_BASE}/"
55     else
56       yield_page 'RAW:NET Login' login <<-EOF
57         $(w_user_login)
58         EOF
59     fi
60     ;;
61   /register/)
62     yield_page 'RAW:NET Register User' register <<-EOF
63         $(w_user_register)
64         EOF
65     ;;
66   /recover/)
67     yield_page 'RAW:NET Recover Account' recover <<-EOF
68         $(w_user_recover)
69         EOF
70     ;;
71   /|/channel/*) . "${_EXEC}/page_channel.sh";;
72   /playlist/*) . "${_EXEC}/page_playlist.sh";;
73   /search/*) . "${_EXEC}/page_search.sh";;
74   *) . "${_EXEC}/page_404.sh";;
75 esac
76
77 exit 0