X-Git-Url: https://git.plutz.net/?p=rawnet;a=blobdiff_plain;f=page_channel.sh;fp=page_channel.sh;h=1720276c3df252e7a1eb3423a63036e5fffc4ece;hp=89720d2acb9faa74a84ca9bc12c6fb760d193416;hb=eaa8b25194f1c98e481cf999d6926fe2c249d29f;hpb=7e92b09827ccefdea68ab594f02c7a614b0113df diff --git a/page_channel.sh b/page_channel.sh index 89720d2..1720276 100755 --- a/page_channel.sh +++ b/page_channel.sh @@ -1,35 +1,12 @@ #!/bin/sh -. "$_EXEC/db_channel.sh" -. "$_EXEC/db_video.sh" - -channel='' video='' action='' -path_info="$PATH_INFO" -path_info="${path_info#/channel/}" -if [ "$(checkid "${path_info%%/*}")" ]; then - channel="${path_info%%/*}" - path_info="${path_info#*/}" -fi -if [ "$(checkid "${path_info%%/*}")" ]; then - video="${path_info%%/*}" - path_info="${path_info#*/}" -fi -action="${path_info}" -unset path_info - -read_channel "$channel" \ -&& vid_db="${_DATA}/${CHANNEL_ID}/videos.db" +["$includepage_channel" ] && return 0 +includepage_channel="$0" -AUTHOR(){ - if [ "$CHANNEL_ID" -a "$USER_ID" -a ! "${CHANNEL_AUTHORS##*${USER_ID}*}" ]; then - return 0 - else - return 1 - fi -} +. "$_EXEC/db_channel.sh" +. "$_EXEC/widgets.sh" -# Video -# ID NAME DESCRIPTION RESX RESY LENGTH COVER STATUS UPLOADER HITS +read_channel "$channel" [ "$REQUEST_METHOD" = POST ] && case "$(POST action)" in newchannel) @@ -43,13 +20,13 @@ AUTHOR(){ fi ;; update_channel) - if [ ! "$channel" ]; then + if [ ! "$CHANNEL_ID" ]; then REDIRECT "${_BASE}/channel/#ERROR_NOCHANNEL" elif [ ! "$USER_ID" ]; then REDIRECT "${_BASE}/channel/$CHANNEL_ID/#ERROR_NOTLOGGEDIN" elif ! AUTHOR; then REDIRECT "${_BASE}/channel/$CHANNEL_ID/#ERROR_UPDATE_NOTALLOWED" - elif update_channel "$channel" "name=$(POST name)" \ + elif update_channel "$CHANNEL_ID" "name=$(POST name)" \ "description=$(POST description)" \ "authors=$USER_ID"; then REDIRECT "${_BASE}/channel/$CHANNEL_ID/" @@ -61,6 +38,7 @@ AUTHOR(){ REDIRECT "${_BASE}/channel/$CHANNEL_ID/" ;; newvideo) + . "$_EXEC/db_video.sh" video="$(POST video |checkid)" AUTHOR \ @@ -68,82 +46,21 @@ AUTHOR(){ if [ ! "$video" ]; then REDIRECT "${_BASE}/channel/$CHANNEL_ID/#ERROR_INVALID_ID" - elif [ ! "$channel" ]; then + elif [ ! "$CHANNEL_ID" ]; then REDIRECT "${_BASE}/channel/#ERROR_NOCHANNEL" elif [ ! "$USER_ID" ]; then REDIRECT "${_BASE}/channel/$CHANNEL_ID/#ERROR_NOTLOGGEDIN" elif ! AUTHOR; then REDIRECT "${_BASE}/channel/$CHANNEL_ID/#ERROR_UPDATE_NOTALLOWED" elif new_video "$video"; then - REDIRECT "${_BASE}/channel/$CHANNEL_ID/${video}/" + REDIRECT "${_BASE}/channel/$CHANNEL_ID/$video/" else REDIRECT "${_BASE}/channel/$CHANNEL_ID/#ERROR_NEWVIDEO_NOLOCK" fi ;; esac -w_video(){ - local thumb - local VIDEO_ID VIDEO_NAME VIDEO_DESCRIPTION VIDEO_RESX VIDEO_RESY \ - VIDEO_LENGTH VIDEO_COVER VIDEO_STATUS VIDEO_UPLOADER VIDEO_HITS \ - VIDEO_DESCR_CACHE VIDEO_FUTUREUSE - - if read_video; then - VIDEO_LENGTH="${VIDEO_LENGTH%.*}" - [ "${VIDEO_STATUS}" = public ] || AUTHOR || return 0 - - thumb="${_BASE}/video/${CHANNEL_ID}/${VIDEO_ID}.thumb.jpg" - [ "$NAME" = \\ ] && NAME="(Unnamed Video)" - printf '[div .video .thumb - [a href="%s/channel/%s/%s/" - [h3 . %s] - [figure [img src="%s" alt=""]] - [span .duration . %i:%02i] - [div .description . %s] - ] - ]' "$_BASE" "$CHANNEL_ID" "$VIDEO_ID" \ - "$(HTML "${VIDEO_NAME:-(Unnamed Video)}")" \ - "$thumb" \ - "$((VIDEO_LENGTH / 60))" "$((VIDEO_LENGTH % 60))" \ - "$(UNSTRING "$DESCR_CACHE")" - else - return 1 - fi -} - -w_channel_list(){ - local vid_db - local CHANNEL_ID CHANNEL_NAME CHANNEL_DESCRIPTION CHANNEL_LOGO \ - CHANNEL_THEME CHANNEL_AUTHORS CHANNEL_DESCR_CACHE CHANNEL_FUTUREUSE - - [ "$USER_ID" ] && cat <<-EOF - [form .channel .newchannel method=POST - [hidden "channel" "$(timeid)"] - [submit "action" "newchannel" New Channel] - ] - EOF - - [ -f "$chan_db" -a -r "$chan_db" ] \ - && while read_channel; do - vid_db="${_DATA}/${CHANNEL_ID}/videos.db" - - cat <<-EOF - [div .channel - [div .description - [h2 [a href="${_BASE}/channel/${CHANNEL_ID}/" $(HTML "${CHANNEL_NAME:-(Unnamed Channel)}")]] - ${CHANNEL_DESCR_CACHE} - ]$( - [ -f "$vid_db" -a -r "$vid_db" ] \ - && while w_video; do :; done <"$vid_db" - ) - ] - EOF - done <"$chan_db" -} - -if [ "$channel" -a "$video" ]; then - . ${_EXEC}/page_video.sh -elif [ "$channel" -a "$action" = edit ]; then +if [ "$CHANNEL_ID" -a "$action" = edit ]; then AUTHOR || REDIRECT "${_BASE}/$CHANNEL_ID/#ERROR_EDIT_NOTALLOWED" yield_page "$CHANNEL_NAME - Edit" "channel edit" <<-EOF [form .channel .edit method=POST @@ -153,7 +70,8 @@ elif [ "$channel" -a "$action" = edit ]; then [submit "action" "update_channel_cancel" . Cancel] ] EOF -elif [ "$channel" ]; then +elif [ "$CHANNEL_ID" ]; then + vid_db="$_DATA/$CHANNEL_ID/videos.db" yield_page "$CHANNEL_NAME" "channel" <<-EOF [nav [a href="../" Channels] - [span $(HTML "${CHANNEL_NAME:-(Unnamed Channel)}")] $(AUTHOR && printf ' - [a href="edit" edit]') @@ -163,16 +81,24 @@ elif [ "$channel" ]; then [h1 .videos Videos] [div .videos . $( AUTHOR && printf ' - [form .video .newvideo method=POST - [hidden "video" "%s"] - [submit "action" "newvideo" New Video] - ]' "$(timeid)" + [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" + && while w_video; do :; done <"$vid_db" )] EOF else yield_page "Channels" "channels" <<-EOF - $(w_channel_list) + $([ "$USER_ID" ] && printf ' + [form .channel .newchannel method=POST + [hidden "channel" "%s"] + [submit "action" "newchannel" New Channel] + ]' "$(timeid)" + ) + $([ -f "$chan_db" -a -r "$chan_db" ] \ + && while w_channel; do :; done <"$chan_db" + ) EOF fi