3 chan_db="$_DATA/channels.db"
5 channel='' video='' action=''
7 path_info="${path_info#/channel/}"
8 if [ "$(checkid "${path_info%%/*}")" ]; then
9 channel="${path_info%%/*}"
10 path_info="${path_info#*/}"
12 if [ "$(checkid "${path_info%%/*}")" ]; then
13 video="${path_info%%/*}"
14 path_info="${path_info#*/}"
20 # ID NAME DESCRIPTION LOGO THEME AUTHORS DESCR_CACHE FUTUREUSE
22 if [ "$channel" -a -f "$chan_db" -a -r "$chan_db" ]; then
23 read -r CHANNEL_ID CHANNEL_NAME CHANNEL_DESCRIPTION CHANNEL_LOGO \
24 CHANNEL_THEME CHANNEL_AUTHORS CHANNEL_DESCR_CACHE \
25 CHANNEL_FUTUREUSE <<-EOF
26 $(grep "^${channel} " "${chan_db}")
28 if [ "$CHANNEL_ID" ]; then
29 CHANNEL_NAME="$(UNSTRING "${CHANNEL_NAME}")"
30 CHANNEL_DESCRIPTION="$(UNSTRING "$CHANNEL_DESCRIPTION")"
31 CHANNEL_AUTHORS="$(UNSTRING "$CHANNEL_AUTHORS")"
32 CHANNEL_DESCR_CACHE="$(UNSTRING "$CHANNEL_DESCR_CACHE")"
33 vid_db="${_DATA}/${CHANNEL_ID}/videos.db"
40 local id="${1}" name="${2}" description="${3}" logo="${4}" theme="${5}" \
41 authors="${6}" descr_cache="${7}" futureuse="${8}"
43 if LOCK "$chan_db"; then
44 while read -r ID INFO; do
45 if [ "$id" = "$ID" ]; then
46 printf '%s %s %s %s %s %s %s %s\n' \
47 "$id" "$(STRING "$name")" "$(STRING "$description")" \
48 "${logo:-\\}" "${theme:-\\}" "$(STRING "$authors")" \
49 "$(printf %s "$description" |markdown |STRING)" \
52 printf '%s %s\n' "$ID" "$INFO"
54 done <"$chan_db" >"${chan_db}.$$"
55 mv -- "${chan_db}.$$" "${chan_db}"
63 # ID NAME DESCRIPTION RESX RESY LENGTH COVER STATUS UPLOADER HITS
65 [ "$REQUEST_METHOD" = POST ] && case "$(POST action)" in
67 channel="$(POST channel |checkid)"
68 if [ ! "$USER_ID" ]; then
69 REDIRECT "${_BASE}/channel/#ERROR_NEWCHANNEL_NOTALLOWED"
70 elif LOCK "$chan_db"; then
71 if grep -q '^${channel} ' "$chan_db"; then
73 REDIRECT "${_BASE}/channel/#ERROR_NEWCHANNEL_EXISTS"
75 printf '%s \\ \\ \\ \\ %s \\ \\\n' \
76 "$channel" "$(STRING "$USER_ID")" \
79 REDIRECT "${_BASE}/channel/${channel}/edit"
82 REDIRECT "${_BASE}/channel/#ERROR_NEWCHANNEL_NOLOCK"
86 if [ ! "$channel" ]; then
87 REDIRECT "${_BASE}/channel/#ERROR_NOCHANNEL"
88 elif [ ! "$USER_ID" ]; then
89 REDIRECT "${_BASE}/channel/${channel}/#ERROR_NOTLOGGEDIN"
90 elif [ "${CHANNEL_AUTHORS##*${USER_ID}*}" ]; then
91 REDIRECT "${_BASE}/channel/${channel}/#ERROR_UPDATE_NOTALLOWED"
92 elif update_channel "$channel" "$(POST name)" "$(POST description)" \
93 "" "" "$USER_ID" "" ""; then
94 REDIRECT "${_BASE}/channel/${channel}/"
96 REDIRECT "${_BASE}/channel/${channel}/#ERROR_UPDATE_NOLOCK"
100 video="$(POST video |checkid)"
101 # database video create
102 REDIRECT "${_BASE}/channel/${channel}/${video}/"
108 local ID NAME DESCRIPTION RESX RESY LENGTH COVER STATUS UPLOADER HITS FUTUREUSE
109 if read -r ID NAME DESCRIPTION RESX RESY LENGTH COVER STATUS UPLOADER HITS FUTUREUSE; then
110 thumb="${_BASE}/${CID}/thumb_${ID}.jpg"
113 [h3 . $(UNSTRING "$NAME" |HTML)]
114 [img href="${thumb}" alt="$(UNSTRING "$DESCRIPTION" |HTML)"]
124 local ID NAME DESCRIPTION LOGO THEME AUTHORS DESCR_CACHE FUTUREUSE
125 if read -r ID NAME DESCRIPTION LOGO THEME AUTHORS DESCR_CACHE FUTUREUSE; then
126 vid_db="${_DATA}/${ID}/videos.db"
127 [ "$NAME" = \\ ] && NAME="(UNNAMED CHANNEL)"
130 [h2 [a href="${_BASE}/channel/${ID}/" $(UNSTRING "${NAME}" |HTML)]]
131 [div .description . $(UNSTRING "$DESCR_CACHE")]
132 $( [ -f "$vid_db" -a -r "$vid_db" ] \
133 && while w_video "$ID"; do :; done <"$vid_db"
143 if [ $USER_ID ]; then
145 [form .channel .newchannel method=POST
146 [hidden "channel" "%s"]
147 [submit "action" "newchannel" New Channel]
150 [ -f "$chan_db" -a -r "$chan_db" ] \
151 && while w_channel; do :; done <"$chan_db"
154 if [ "$channel" -a "$video" ]; then
155 . ${_EXEC}/page_video.sh
156 elif [ "$channel" -a "$action" = edit ]; then
157 [ "$USER_ID" -a ! "${CHANNEL_AUTHORS##*${USER_ID}*}" ] \
158 || REDIRECT "${_BASE}/${channel}/#ERROR_EDIT_NOTALLOWED"
159 yield_page "$CHANNEL_NAME - Edit" "channel edit" <<-EOF
160 [form .channel .edit method=POST
161 [input name="name" value="$(HTML "$CHANNEL_NAME")" placeholder="Channel Name"]
162 [textarea name="description" placeholder="Description" . $(HTML "$CHANNEL_DESCRIPTION")]
163 [submit "action" "update_channel" . Update]
166 elif [ "$channel" ]; then
167 yield_page "$CHANNEL_NAME" "channel" <<-EOF
168 [h1 .name $(HTML "$CHANNEL_NAME")]
169 $( [ "$USER_ID" -a ! "${CHANNEL_AUTHORS##*${USER_ID}*}" ] \
170 && printf '[a href="edit" edit]'
172 [div .description . ${CHANNEL_DESCR_CACHE}]
174 $( [ -f "$vid_db" -a -r "$vid_db" ] \
175 && while w_video "$ID"; do :; done <"$vid_db"
180 yield_page "Channels" "channels" <<-EOF