aboutsummaryrefslogtreecommitdiff
path: root/src/mixins/post.pug
blob: 9021f933bf04b461215ccd2a9e878de748656c24 (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
include ../utils
include postUtils
mixin post(p, currentUrl)
  - var from = encodeURIComponent(currentUrl)
  - var viewQuery = query && query.view ? query.view : 'compact'
  - var sortQuery = query && query.sort ? query.sort + (query.t ? '&t=' + query.t : '') : 'hot'
  article(class=`post`)
    div.post-container(class=`${query.view} ${p.stickied?"sticky":""}`)
      div.post-info
        div.post-text(class=`${query.view}`)
          div.title-container(class=`${query.view}`)
            a(class=`${query.view}`, href=`/comments/${p.id}?from=${from}&sort=${sortQuery}&view=${viewQuery}`)
              != p.title
            span.domain   (#{p.domain})
          div.info-container 
            p
              | #{fmtnum(p.ups)}if p.gilded > 0
                |  · 
                span.gilded
                  | #{p.gilded}span.post-author
                |  · 
                | u/#{p.author} 
              |  · 
              | #{timeDifference(Date.now(), p.created * 1000)}
              |  · 
              a(href=`/r/${p.subreddit}?sort=${sortQuery}&view=${viewQuery}`) r/#{p.subreddit}
              |  · 
              a(href=`/comments/${p.id}?from=${from}&sort=${sortQuery}&view=${viewQuery}`) #{fmtnum (p.num_comments)}if (query.view == "card" && !isPostMedia(p) && p.selftext_html)
            div.self-text-overflow.card
              if p.spoiler || p.over_18
                div.spoiler(id=`spoiler_${p.id}`, onclick=`javascript:document.getElementById('spoiler_${p.id}').style.display = 'none';`)
                  h2
                    != p.over_18 ? 'nsfw' : 'spoiler'
              div.self-text.card
                != convertInlineImageLinks(p.selftext_html)
        if query.view != "card"
          div.media-preview
            - var onclick = `toggleDetails('${p.id}')`
            if isPostGallery(p)
              - var item = (p.over_18 ? `/nsfw.svg` : p.spoiler ? `/spoiler.svg` : postGalleryItems(p)[0].url)
              img(src=item onclick=onclick) 
            else if isPostImage(p)
              - var url = postThumbnail(p)
              img(src=url onclick=onclick)
            else if isPostVideo(p)
              - var decodedVideos = decodePostVideoUrls(p)
              video(data-dashjs-player="" playsinline="" autoplay="" muted="" onclick=`toggleDetails('${p.id}')` src=decodedVideos[3] poster=decodedVideos[4] width="100px" height="100px")
            else if isPostLink(p)
              a(href=p.url)
                | ↗

      details(id=`${p.id}` open=(query.view == "card" && (isPostMedia(p) || isPostLink(p))) class=`${query.view}`)
        summary.expand-post expand media
        div.image-viewer
          if query.view == "card" && (p.spoiler || p.over_18) && isPostMedia(p)
            div.spoiler(id=`spoiler_${p.id}`, onclick=`javascript:document.getElementById('spoiler_${p.id}').style.display = 'none';`) 
              h2
                != p.over_18 ? 'nsfw' : 'spoiler'
          if isPostGallery(p)
            div.gallery
              each item in postGalleryItems(p)
                div.gallery-item
                  a(href=`/media/${item.url}`)
                    img(src=item.url loading="lazy")
                  div.gallery-item-idx
                    | #{`${item.idx}/${item.total}`}
          else if isPostImage(p)
            a(href=`/media/${p.url}`)
              img(src=p.url loading="lazy")
          else if isPostVideo(p)
            - var decodedVideos = decodePostVideoUrls(p)
            video(data-dashjs-player="" playsinline="" controls="" muted="" preload="metadata" src=decodedVideos[1] poster=decodedVideos[4])
          else if isPostLink(p)
            a(href=p.url)
              | #{p.domain}if (query.view == "compact")
          button(onclick=`toggleDetails('${p.id}')`)
              | close