aboutsummaryrefslogtreecommitdiff
path: root/src/mixins
diff options
context:
space:
mode:
Diffstat (limited to 'src/mixins')
-rw-r--r--src/mixins/post.pug93
1 files changed, 37 insertions, 56 deletions
diff --git a/src/mixins/post.pug b/src/mixins/post.pug
index c4f3bc5..30310a8 100644
--- a/src/mixins/post.pug
+++ b/src/mixins/post.pug
@@ -28,77 +28,58 @@ mixin post(p, currentUrl)
28 |  ·  28 |  · 
29 a(href=`/comments/${p.id}?from=${from}&sort=${sortQuery}&view=${viewQuery}`) #{fmtnum (p.num_comments)} ↩ 29 a(href=`/comments/${p.id}?from=${from}&sort=${sortQuery}&view=${viewQuery}`) #{fmtnum (p.num_comments)} ↩
30 if (query.view == "card" && !isPostGallery(p) && !isPostImage(p) && !isPostVideo(p) && p.selftext_html) 30 if (query.view == "card" && !isPostGallery(p) && !isPostImage(p) && !isPostVideo(p) && p.selftext_html)
31 div.self-text-overflow(class='card') 31 div.self-text-overflow.card
32 if query.view == "card" && (p.spoiler || p.over_18) 32 if p.spoiler || p.over_18
33 div.spoiler(id=`spoiler_${p.id}`, onclick=`javascript:document.getElementById('spoiler_${p.id}').style.display = 'none';`) 33 div.spoiler(id=`spoiler_${p.id}`, onclick=`javascript:document.getElementById('spoiler_${p.id}').style.display = 'none';`)
34 h2 34 h2
35 != p.over_18 ? 'nsfw' : 'spoiler' 35 != p.over_18 ? 'nsfw' : 'spoiler'
36 div.self-text(class='card') 36 div.self-text.card
37 != convertInlineImageLinks(p.selftext_html) 37 != convertInlineImageLinks(p.selftext_html)
38 div.media-preview(class=`${query.view}`) 38 if query.view != "card"
39 - var onclick = query.view != "card" ? `toggleDetails('${p.id}')` : `` 39 div.media-preview
40 - var onclick = `toggleDetails('${p.id}')`
41 if isPostGallery(p)
42 - var item = (p.over_18 ? `/nsfw.svg` : p.spoiler ? `/spoiler.svg` : postGalleryItems(p)[0].url)
43 img(src=item onclick=onclick)
44 else if isPostImage(p)
45 - var url = postThumbnail(p)
46 img(src=url onclick=onclick)
47 else if isPostVideo(p)
48 - var decodedVideos = decodePostVideoUrls(p)
49 video(autoplay="" muted="" data-dashjs-player="" onclick=`toggleDetails('${p.id}')` poster=decodedVideos[4] width="100px" height="100px")
50 // Scrubber
51 source(src=decodedVideos[3])
52 else if isPostLink(p)
53 a(href=p.url)
54 | ↗
55
56 details(id=`${p.id}` open=(query.view == "card" && (isPostGallery(p) || isPostImage(p) || isPostVideo(p))))
57 summary.expand-post expand media
58 div.image-viewer
40 if query.view == "card" && (p.spoiler || p.over_18) && (isPostGallery(p) || isPostImage(p) || isPostVideo(p)) 59 if query.view == "card" && (p.spoiler || p.over_18) && (isPostGallery(p) || isPostImage(p) || isPostVideo(p))
41 div.spoiler(id=`spoiler_${p.id}`, onclick=`javascript:document.getElementById('spoiler_${p.id}').style.display = 'none';`) 60 div.spoiler(id=`spoiler_${p.id}`, onclick=`javascript:document.getElementById('spoiler_${p.id}').style.display = 'none';`)
42 h2 61 h2
43 != p.over_18 ? 'nsfw' : 'spoiler' 62 != p.over_18 ? 'nsfw' : 'spoiler'
44 if isPostGallery(p) 63 if isPostGallery(p)
45 - var item = postGalleryItems(p)[0] 64 div.gallery
46 if query.view == "card" 65 each item in postGalleryItems(p)
47 div.gallery(class=`${query.view}`) 66 div.gallery-item
48 each item in postGalleryItems(p) 67 a(href=`/media/${item.url}`)
49 div.gallery-item(class=`${query.view}`) 68 img(src=item.url loading="lazy")
50 a(href=`/media/${item.url}`) 69 div.gallery-item-idx
51 img(src=item.url loading="lazy") 70 | #{`${item.idx}/${item.total}`}
52 div.gallery-item-idx(class=`${query.view}`)
53 | #{`${item.idx}/${item.total}`}
54 else
55 img(src=item.url onclick=onclick)
56 else if isPostImage(p) 71 else if isPostImage(p)
57 - var url = query.view == "card" ? p.url : postThumbnail(p) 72 a(href=`/media/${p.url}`)
58 #{query.view == "card" ? "a href=/media/" + url : span} 73 img(src=p.url loading="lazy")
59 img(src=url onclick=onclick)
60 else if isPostVideo(p) 74 else if isPostVideo(p)
61 - var decodedVideos = decodePostVideoUrls(p) 75 - var decodedVideos = decodePostVideoUrls(p)
62 if query.view == "card" 76 video(controls="" muted="" data-dashjs-player="" preload="metadata" playsinline="" poster=decodedVideos[4] objectfit="contain" loading="lazy")
63 video(controls="" muted="" data-dashjs-player="" preload="metadata" poster=decodedVideos[4])
64 // HLS 77 // HLS
65 source(src=decodedVideos[0]) 78 source(src=decodedVideos[0])
66 // Dash 79 // Dash
67 source(src=decodedVideos[1]) 80 source(src=decodedVideos[1])
68 // Fallback 81 // Fallback
69 source(src=decodedVideos[2]) 82 source(src=decodedVideos[2])
70 else 83 if (query.view == "compact")
71 video(autoplay="" muted="" data-dashjs-player="" onclick=`toggleDetails('${p.id}')` width="100px" height="100px") 84 button(onclick=`toggleDetails('${p.id}')`)
72 // Scrubber 85 | close
73 source(src=decodedVideos[3])
74 else if isPostLink(p)
75 a(href=p.url)
76 if (query.view == 'card')
77 | #{p.domain}
78 | ↗
79
80 if query.view == "compact" && (isPostGallery(p) || isPostImage(p) || isPostVideo(p))
81 details(id=`${p.id}`)
82 summary.expand-post expand media
83 div.image-viewer
84 if isPostGallery(p)
85 div.gallery
86 each item in postGalleryItems(p)
87 div.gallery-item
88 div.gallery-item-idx
89 | #{`${item.idx}/${item.total}`}
90 a(href=`/media/${item.url}`)
91 img(src=item.url loading="lazy")
92 else if isPostImage(p)
93 a(href=`/media/${p.url}`)
94 img(src=p.url loading="lazy").post-media
95 else if isPostVideo(p)
96 video(controls="" muted="" data-dashjs-player="" preload="metadata" playsinline="" poster=decodedVideos[4] objectfit="contain" loading="lazy").post-media
97 //HLS
98 source(src=decodedVideos[0])
99 // Dash
100 source(src=decodedVideos[1])
101 // Fallback
102 source(src=decodedVideos[2])
103 button(onclick=`toggleDetails('${p.id}')`)
104 | close