]> git.plutz.net Git - rawnet/blobdiff - page_channel.sh
video updating, custom login form
[rawnet] / page_channel.sh
index 159c865e66ad1705128b1b3099bc01418024956b..57de476c579b17dbc2db175d222bac7aa72694ea 100755 (executable)
@@ -101,20 +101,46 @@ update_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
@@ -176,7 +202,15 @@ elif [ "$channel" ]; then
        ]
        [h1 .name $(HTML "$CHANNEL_NAME")]
        [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"
          )