]> git.plutz.net Git - rawnet/blob - widgets.sh
f844ba4db31b1032dc4d4aefaf2b0938db1941b3
[rawnet] / widgets.sh
1 #!/bin/sh
2
3 ["$include_widgets" ] && return 0
4 include_widgets="$0"
5
6 . "$_EXEC/db_channel.sh"
7 . "$_EXEC/db_video.sh"
8
9 w_video(){
10   local thumb
11   eval "$LOCAL_VIDEO"
12
13   if read_video; then
14     VIDEO_LENGTH="${VIDEO_LENGTH%.*}"
15     [ "${VIDEO_STATUS}" = public ] || AUTHOR || return 0
16
17     thumb="${_BASE}/video/${CHANNEL_ID}/${VIDEO_ID}.thumb.jpg"
18     [ "$NAME" = \\ ] && NAME="(Unnamed Video)"
19     printf '[div .video .thumb
20               [a href="%s/channel/%s/%s/"
21                 [h3 . %s]
22                 [figure [img src="%s" alt=""]]
23                 [span .duration . %i:%02i]
24                 [div .description . %s]
25               ]
26             ]' "$_BASE" "$CHANNEL_ID" "$VIDEO_ID" \
27                "$(HTML "${VIDEO_NAME:-(Unnamed Video)}")" \
28                "$thumb" \
29                "$((VIDEO_LENGTH / 60))" "$((VIDEO_LENGTH % 60))" \
30                "$(UNSTRING "$DESCR_CACHE")"
31   else
32     return 1
33   fi
34 }
35
36 w_channel(){
37   local vid_db
38   eval "$LOCAL_CHANNEL"
39
40   if read_channel; then
41     vid_db="${_DATA}/${CHANNEL_ID}/videos.db"
42
43     cat <<-EOF
44         [div .channel
45           [div .description
46             [h2 [a href="${_BASE}/channel/${CHANNEL_ID}/" $(HTML "${CHANNEL_NAME:-(Unnamed Channel)}")]]
47             ${CHANNEL_DESCR_CACHE}
48           ]$(
49             [ -f "$vid_db" -a -r "$vid_db" ] \
50             && while w_video; do :; done <"$vid_db"
51           )
52         ]
53         EOF
54   else
55     return 1
56   fi
57 }