fi
}
+AUTHOR(){
+ if [ "$channel" -a "$USER_ID" -a ! "${CHANNEL_AUTHORS##*${USER_ID}*}" ]; then
+ return 0
+ else
+ return 1
+ fi
+}
+
# Video
# ID NAME DESCRIPTION RESX RESY LENGTH COVER STATUS UPLOADER HITS
REDIRECT "${_BASE}/channel/#ERROR_NOCHANNEL"
elif [ ! "$USER_ID" ]; then
REDIRECT "${_BASE}/channel/${channel}/#ERROR_NOTLOGGEDIN"
- elif [ "${CHANNEL_AUTHORS##*${USER_ID}*}" ]; then
+ elif ! AUTHOR; then
REDIRECT "${_BASE}/channel/${channel}/#ERROR_UPDATE_NOTALLOWED"
elif update_channel "$channel" "$(POST name)" "$(POST description)" \
"" "" "$USER_ID" "" ""; then
REDIRECT "${_BASE}/channel/${channel}/#ERROR_UPDATE_NOLOCK"
fi
;;
+ update_channel_cancel)
+ REDIRECT "${_BASE}/channel/${channel}/"
+ ;;
newvideo)
video="$(POST video |checkid)"
- # database video create
- REDIRECT "${_BASE}/channel/${channel}/${video}/"
+
+ AUTHOR \
+ && mkdir -p -- "${_DATA}/${channel}/"
+
+ if [ ! "$video" ]; then
+ REDIRECT "${_BASE}/channel/${channel}/#ERROR_INVALID_ID"
+ elif [ ! "$channel" ]; then
+ REDIRECT "${_BASE}/channel/#ERROR_NOCHANNEL"
+ elif [ ! "$USER_ID" ]; then
+ REDIRECT "${_BASE}/channel/${channel}/#ERROR_NOTLOGGEDIN"
+ elif ! AUTHOR; then
+ REDIRECT "${_BASE}/channel/${channel}/#ERROR_UPDATE_NOTALLOWED"
+ elif LOCK "$vid_db"; then
+ if grep -q '^${video} ' "$vid_db"; then
+ RELEASE "$vid_db"
+ REDIRECT "${_BASE}/channel/${channel}/#ERROR_NEWVIDEO_EXISTS"
+ else
+ # ID NAME DESC RESX RESY LENGTH COVER STATUS UPLOADER HITS FUTUREUSE
+ printf '%s \\ \\ \\ \\ \\ \\ private %s \\ \\\n' \
+ "$video" "$(STRING "$USER_ID")" \
+ >>"$vid_db"
+ RELEASE "$vid_db"
+ REDIRECT "${_BASE}/channel/${channel}/${video}/edit"
+ fi
+ else
+ REDIRECT "${_BASE}/channel/${channel}/#ERROR_NEWVIDEO_NOLOCK"
+ fi
;;
esac
w_video(){
local CID="$1" thumb
- local ID NAME DESCRIPTION RESX RESY LENGTH COVER STATUS UPLOADER HITS FUTUREUSE
- if read -r ID NAME DESCRIPTION RESX RESY LENGTH COVER STATUS UPLOADER HITS FUTUREUSE; then
+ local ID NAME DESCRIPTION RESX RESY LENGTH COVER STATUS UPLOADER HITS DESCR_CACHE FUTUREUSE
+ if read -r ID NAME DESCRIPTION RESX RESY LENGTH COVER STATUS UPLOADER HITS DESCR_CACHE FUTUREUSE; then
thumb="${_BASE}/${CID}/thumb_${ID}.jpg"
- cat <<-EOF
- [div .video
- [h3 . $(UNSTRING "$NAME" |HTML)]
- [img href="${thumb}" alt="$(UNSTRING "$DESCRIPTION" |HTML)"]
- ]
- EOF
+ [ "$NAME" = \\ ] && NAME="(Unnamed Video)"
+ printf '[div .video .thumb
+ [h3 [a href="%s/channel/%s/%s/" . %s]]
+ [figure [img src="%s" alt=""]]
+ [div .description . %s]
+ ]' "$_BASE" "$CID" "$ID" "$(UNSTRING "$NAME" |HTML)" "$thumb" "$(UNSTRING "$DESCR_CACHE")"
else
return 1
fi
[ "$NAME" = \\ ] && NAME="(UNNAMED CHANNEL)"
cat <<-EOF
[div .channel
- [h2 [a href="${_BASE}/channel/${ID}/" $(UNSTRING "${NAME}" |HTML)]]
- [div .description . $(UNSTRING "$DESCR_CACHE")]
- $( [ -f "$vid_db" -a -r "$vid_db" ] \
- && while w_video "$ID"; do :; done <"$vid_db"
+ [div .description
+ [h2 [a href="${_BASE}/channel/${ID}/" $(UNSTRING "${NAME}" |HTML)]]
+ $(UNSTRING "$DESCR_CACHE")
+ ]$(
+ [ -f "$vid_db" -a -r "$vid_db" ] \
+ && while w_video "$ID"; do :; done <"$vid_db"
)
]
EOF
if [ "$channel" -a "$video" ]; then
. ${_EXEC}/page_video.sh
elif [ "$channel" -a "$action" = edit ]; then
- [ "$USER_ID" -a ! "${CHANNEL_AUTHORS##*${USER_ID}*}" ] \
- || REDIRECT "${_BASE}/${channel}/#ERROR_EDIT_NOTALLOWED"
+ AUTHOR || REDIRECT "${_BASE}/${channel}/#ERROR_EDIT_NOTALLOWED"
yield_page "$CHANNEL_NAME - Edit" "channel edit" <<-EOF
[form .channel .edit method=POST
[input name="name" value="$(HTML "$CHANNEL_NAME")" placeholder="Channel Name"]
[textarea name="description" placeholder="Description" . $(HTML "$CHANNEL_DESCRIPTION")]
[submit "action" "update_channel" . Update]
+ [submit "action" "update_channel_cancel" . Cancel]
]
EOF
elif [ "$channel" ]; then
yield_page "$CHANNEL_NAME" "channel" <<-EOF
+ [nav [a href="../" Channels] - [span $(HTML "${CHANNEL_NAME:-(Unnamed Channel)}")]
+ $(AUTHOR && printf ' - [a href="edit" edit]')
+ ]
[h1 .name $(HTML "$CHANNEL_NAME")]
- $( [ "$USER_ID" -a ! "${CHANNEL_AUTHORS##*${USER_ID}*}" ] \
- && printf '[a href="edit" edit]'
- )
[div .description . ${CHANNEL_DESCR_CACHE}]
- [div .videos
- $( [ -f "$vid_db" -a -r "$vid_db" ] \
- && while w_video "$ID"; do :; done <"$vid_db"
- )
- ]
+ [h1 .videos Videos]
+ [div .videos . $(
+ AUTHOR && printf '
+ [form .video .newvideo method=POST
+ [hidden "video" "%s"]
+ [submit "action" "newvideo" New Video]
+ ]' "$(timeid)"
+ [ -f "$vid_db" -a -r "$vid_db" ] \
+ && while w_video "$ID"; do :; done <"$vid_db"
+ )]
EOF
else
yield_page "Channels" "channels" <<-EOF