]> git.plutz.net Git - rawnet/blobdiff - page_channel.sh
Merge commit 'c4c012d9542c4b266fa701c3aced3b97f11a4797'
[rawnet] / page_channel.sh
index d12f41719f3a70cd262ed532c4ccecadcf128494..57de476c579b17dbc2db175d222bac7aa72694ea 100755 (executable)
@@ -96,22 +96,51 @@ update_channel(){
       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}/"
+
+    [ "$channel" -a "$USER_ID" -a ! "${CHANNEL_AUTHORS##*${USER_ID}*}" ] \
+    && 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 [ "${CHANNEL_AUTHORS##*${USER_ID}*}" ]; 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
+  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 FUTUREUSE; then
     thumb="${_BASE}/${CID}/thumb_${ID}.jpg"
+    [ "$NAME" = \\ ] && NAME="(Unnamed Video)"
     cat <<-EOF
        [div .video
-         [h3 . $(UNSTRING "$NAME" |HTML)]
-         [img href="${thumb}" alt="$(UNSTRING "$DESCRIPTION" |HTML)"]
+         [h3 [a href="${ID}/" . $(UNSTRING "$NAME" |HTML)]]
+         [img href="${thumb}" alt="$(UNSTRING "$DESCR_CACHE")"]
        ]
        EOF
   else
@@ -161,16 +190,27 @@ elif [ "$channel" -a "$action" = edit ]; then
          [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)}")]
+         $( [ "$USER_ID" -a ! "${CHANNEL_AUTHORS##*${USER_ID}*}" ] \
+             && 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}]
+       [h1 .videos Videos]
        [div .videos
+         $( [ "$USER_ID" -a ! "${CHANNEL_AUTHORS##*${USER_ID}*}" ] \
+            && 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"
          )