X-Git-Url: https://git.plutz.net/?p=rawnet;a=blobdiff_plain;f=widgets.sh;fp=widgets.sh;h=1aa6272a2e9fb29cafe4713c3e7d94f30ffe799a;hp=0000000000000000000000000000000000000000;hb=eaa8b25194f1c98e481cf999d6926fe2c249d29f;hpb=7e92b09827ccefdea68ab594f02c7a614b0113df diff --git a/widgets.sh b/widgets.sh new file mode 100755 index 0000000..1aa6272 --- /dev/null +++ b/widgets.sh @@ -0,0 +1,65 @@ +#!/bin/sh + +["$include_widgets" ] && return 0 +include_widgets="$0" + +. "$_EXEC/db_channel.sh" +. "$_EXEC/db_video.sh" + +AUTHOR(){ + if [ "$CHANNEL_ID" -a "$USER_ID" -a ! "${CHANNEL_AUTHORS##*${USER_ID}*}" ]; then + return 0 + else + return 1 + fi +} + +w_video(){ + local thumb + eval "$LOCAL_VIDEO" + + 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(){ + local vid_db + eval "$LOCAL_CHANNEL" + + if read_channel; then + 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 + else + return 1 + fi +}