aboutsummaryrefslogtreecommitdiff
path: root/src/mixins/post.pug
diff options
context:
space:
mode:
Diffstat (limited to 'src/mixins/post.pug')
-rw-r--r--src/mixins/post.pug105
1 files changed, 65 insertions, 40 deletions
diff --git a/src/mixins/post.pug b/src/mixins/post.pug
index 74a2b78..4022424 100644
--- a/src/mixins/post.pug
+++ b/src/mixins/post.pug
@@ -2,11 +2,13 @@ include ../utils
2include postUtils 2include postUtils
3mixin post(p, currentUrl) 3mixin post(p, currentUrl)
4 - var from = encodeURIComponent(currentUrl) 4 - var from = encodeURIComponent(currentUrl)
5 - var viewQuery = query && query.view ? query.view : 'compact'
6 - var sortQuery = query && query.sort ? query.sort + (query.t ? '&t=' + query.t : '') : 'hot'
5 article.post 7 article.post
6 div.post-container 8 div.post-container(class=`${query.view}`)
7 div.post-text 9 div.post-text(class=`${query.view}`)
8 div.title-container 10 div.title-container(class=`${query.view}`)
9 a(href=`/comments/${p.id}?from=${from}`) 11 a(class=`${query.view}`, href=`/comments/${p.id}?from=${from}&sort=${sortQuery}&view=${viewQuery}`)
10 != p.title 12 != p.title
11 span.domain (#{p.domain}) 13 span.domain (#{p.domain})
12 div.info-container 14 div.info-container
@@ -18,50 +20,73 @@ mixin post(p, currentUrl)
18 |  ·  20 |  · 
19 | #{timeDifference(Date.now(), p.created * 1000)} 21 | #{timeDifference(Date.now(), p.created * 1000)}
20 |  ·  22 |  · 
21 a(href=`/r/${p.subreddit}`) r/#{p.subreddit} 23 a(href=`/r/${p.subreddit}?sort=${sortQuery}&view=${viewQuery}`) r/#{p.subreddit}
22 |  ·  24 |  · 
23 a(href=`/comments/${p.id}?from=${from}`) #{fmtnum (p.num_comments)} ↩ 25 a(href=`/comments/${p.id}?from=${from}&sort=${sortQuery}&view=${viewQuery}`) #{fmtnum (p.num_comments)} ↩
24 div.media-preview 26 if (query.view == "card" && !isPostGallery(p) && !isPostImage(p) && !isPostVideo(p) && p.selftext_html)
27 div.self-text-overflow(class='card')
28 if query.view == "card" && (p.spoiler || p.over_18)
29 div.spoiler(id=`spoiler_${p.id}`, onclick=`javascript:document.getElementById('spoiler_${p.id}').style.display = 'none';`)
30 h2
31 != p.over_18 ? 'nsfw' : 'spoiler'
32 div.self-text(class='card')
33 != convertInlineImageLinks(p.selftext_html)
34 div.media-preview(class=`${query.view}`)
35 if query.view == "card" && (p.spoiler || p.over_18) && (isPostGallery(p) || isPostImage(p) || isPostVideo(p))
36 div.spoiler(id=`spoiler_${p.id}`, onclick=`javascript:document.getElementById('spoiler_${p.id}').style.display = 'none';`)
37 h2
38 != p.over_18 ? 'nsfw' : 'spoiler'
25 if isPostGallery(p) 39 if isPostGallery(p)
26 - var item = postGalleryItems(p)[0] 40 - var item = postGalleryItems(p)[0]
27 img(src=item.url onclick=`toggleDetails('${p.id}')`) 41 img(src=item.url onclick=`toggleDetails('${p.id}')`)
28 else if isPostImage(p) 42 else if isPostImage(p)
29 - var url = postThumbnail(p) 43 - var url = query.view == "card" ? p.url : postThumbnail(p)
30 img(src=url onclick=`toggleDetails('${p.id}')`) 44 img(src=url onclick=`toggleDetails('${p.id}')`)
31 else if isPostVideo(p) 45 else if isPostVideo(p)
32 - var url = p.secure_media.reddit_video.scrubber_media_url 46 - var decodedVideos = decodePostVideoUrls(p)
33 video(src=url data-dashjs-player width='100px' height='100px' onclick=`toggleDetails('${p.id}')`) 47 if query.view == "card"
48 video(controls="" muted="" data-dashjs-player="" preload="metadata" poster=decodedVideos[4])
49 // HLS
50 source(src=decodedVideos[0])
51 // Dash
52 source(src=decodedVideos[1])
53 // Fallback
54 source(src=decodedVideos[2])
55 else
56 video(autoplay="" muted="" data-dashjs-player="" onclick=`toggleDetails('${p.id}')` width="100px" height="100px")
57 // Scrubber
58 source(src=decodedVideos[3])
34 else if isPostLink(p) 59 else if isPostLink(p)
35 a(href=p.url) 60 a(href=p.url)
61 if (query.view == 'card')
62 | #{p.domain}
36 | ↗ 63 | ↗
37 64
38 if isPostGallery(p) 65 if (isPostGallery(p) || isPostImage(p) || isPostVideo(p))
39 details(id=`${p.id}`) 66 details(id=`${p.id}`,class=`${query.view}`)
40 summary.expand-post expand gallery 67 summary.expand-post expand media
41 div.gallery 68 div.image-viewer(class=`${query.view}`)
42 each item in postGalleryItems(p) 69 if isPostGallery(p)
43 div.gallery-item 70 div.gallery(class=`${query.view}`)
44 div.gallery-item-idx 71 each item in postGalleryItems(p)
45 | #{`${item.idx}/${item.total}`} 72 div.gallery-item(class=`${query.view}`)
46 a(href=`/media/${item.url}`) 73 div.gallery-item-idx(class=`${query.view}`)
47 img(src=item.url loading="lazy") 74 | #{`${item.idx}/${item.total}`}
48 button(onclick=`toggleDetails('${p.id}')`) close 75 a(href=`/media/${item.url}`)
49 else if isPostImage(p) 76 img(src=item.url loading="lazy")
50 details(id=`${p.id}`) 77 else if isPostImage(p)
51 summary.expand-post expand image 78 a(href=`/media/${p.url}`)
52 a(href=`/media/${p.url}`) 79 img(src=p.url loading="lazy").post-media
53 img(src=p.url loading="lazy").post-media 80 else if isPostVideo(p)
54 button(onclick=`toggleDetails('${p.id}')`) close 81 video(controls="" muted="" data-dashjs-player="" preload="metadata" playsinline="" poster=decodedVideos[4] objectfit="contain" loading="lazy").post-media
55 else if isPostVideo(p) 82 //HLS
56 details(id=`${p.id}`) 83 source(src=decodedVideos[0])
57 summary.expand-post expand video 84 // Dash
58 - var url = p.secure_media.reddit_video.dash_url 85 source(src=decodedVideos[1])
59 video(src=url controls data-dashjs-player loading="lazy").post-media 86 // Fallback
60 button(onclick=`toggleDetails('${p.id}')`) close 87 source(src=decodedVideos[2])
61 else if isPostLink(p) 88 button(onclick=`toggleDetails('${p.id}')`,class=`${query.view}`)
62 details(id=`${p.id}`) 89 if (query.view == 'card')
63 summary.expand-post expand link 90 | ╳
64 a(href=`${p.url}`) 91 else
65 | #{p.url} 92 | close
66 br
67 button(onclick=`toggleDetails('${p.id}')`) close