diff options
Diffstat (limited to 'src/mixins/post.pug')
-rw-r--r-- | src/mixins/post.pug | 105 |
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 | |||
2 | include postUtils | 2 | include postUtils |
3 | mixin post(p, currentUrl) | 3 | mixin 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 | ||