]> git.plutz.net Git - rawnet/blobdiff - page_channel.sh
styling of channel display
[rawnet] / page_channel.sh
index 159c865e66ad1705128b1b3099bc01418024956b..b1fd4c50d000448ea7b00312c399a8d94ae6fe29 100755 (executable)
@@ -101,22 +101,47 @@ 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
-  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/" . %s]]
+              [figure [img src="%s" alt=""]]
+              [div .description . %s]
+            ]' "$ID" "$(UNSTRING "$NAME" |HTML)" "$thumb" "$(UNSTRING "$DESCR_CACHE")"
   else
     return 1
   fi
@@ -130,10 +155,12 @@ w_channel(){
     [ "$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
@@ -176,11 +203,17 @@ elif [ "$channel" ]; then
        ]
        [h1 .name $(HTML "$CHANNEL_NAME")]
        [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 . $(
+          [ "$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"
+       )]
        EOF
 else
   yield_page "Channels" "channels" <<-EOF