aboutsummaryrefslogtreecommitdiff
path: root/src/mixins/post.pug
blob: 43a3eb81b7406a112916d36fa1b884ada31d0af3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
include ../utils
mixin post(p)
  article.post
    div.post-container
      div.post-text
        div.title-container
          a(href=`/comments/${p.id}`)
            != p.title
          span.domain   (#{p.domain})
        div.info-container 
          p
            | #{fmtnum(p.ups)}span.post-author
              |  · 
              by u/#{p.author} 
            |  · 
            | #{timeDifference(Date.now(), p.created * 1000)}
            |  · 
            a(href=`/r/${p.subreddit}`) r/#{p.subreddit}
            |  · 
            a(href=`/comments/${p.id}`) #{fmtnum (p.num_comments)}div.media-preview
        if p.is_gallery && p.is_gallery == true
          if p.gallery_data
            if p.gallery_data.items
              - var item = p.gallery_data.items[0]
              - var url = `https://i.redd.it/${item.media_id}.jpg`
              img(src=url onclick=`toggleDetails('${p.id}')`) 
        else if p.post_hint == "image" && p.thumbnail && p.thumbnail != "self" && p.thumbnail != "default"
          img(src=p.thumbnail onclick=`toggleDetails('${p.id}')`) 
        else if p.post_hint == "hosted:video"
          - var url = p.secure_media.reddit_video.scrubber_media_url
          video(src=url data-dashjs-player width='100px' height='100px' onclick=`toggleDetails('${p.id}')`)
        else if !p.selftext
          a(href=p.url)
            | ↗

    if p.is_gallery && p.is_gallery == true
      if p.gallery_data
        if p.gallery_data.items
          details(id=`${p.id}`)
            summary.expand-post expand gallery
            div.gallery
              - var total = p.gallery_data.items.length
              - var idx = 0
              - var metadata = p.media_metadata
              - 
                var img_ext = (id) => {
                  if (metadata[id].status == 'valid') {
                    return stripPrefix(metadata[id].m, "image/");
                  } else {
                    // dosent matter
                    return 'jpg';
                  }
                }
              each item in p.gallery_data.items
                - var id = item.media_id
                - var ext = img_ext(item.media_id)
                - var url = `https://i.redd.it/${id}.${ext}`
                div.gallery-item
                  a(href=`/media/${url}`)
                    img(src=url loading="lazy")
                  div.gallery-item-idx
                    | #{`${++idx}/${total}`}
            button(onclick=`toggleDetails('${p.id}')`) close
    if p.post_hint == "image" && p.thumbnail && p.thumbnail != "self" && p.thumbnail != "default"
      details(id=`${p.id}`)
        summary.expand-post expand image
        a(href=`/media/${p.url}`)
          img(src=p.url loading="lazy").post-media
        button(onclick=`toggleDetails('${p.id}')`) close
    else if p.post_hint == "hosted:video"
      details(id=`${p.id}`)
        summary.expand-post expand video
        - var url = p.secure_media.reddit_video.dash_url
        video(src=url controls data-dashjs-player loading="lazy").post-media
        button(onclick=`toggleDetails('${p.id}')`) close
    else if !p.selftext
      details(id=`${p.id}`)
        summary.expand-post expand link
        a(href=`${p.url}`)
          | #{p.url}
        br
        button(onclick=`toggleDetails('${p.id}')`) close