This commit is contained in:
teddit 2020-12-23 19:42:53 +01:00
parent 74b6e76619
commit 0ce28e6d05
3 changed files with 19 additions and 10 deletions

View File

@ -1,9 +1,8 @@
module.exports = function() { module.exports = function() {
this.compilePostCommentsHtml = (comments, next_comment, post_id, post_url, morechildren_ids, post_author) => { this.compilePostCommentsHtml = (comments, next_comment, post_id, post_url, morechildren_ids, post_author, viewing_comment) => {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
(async () => { (async () => {
let comments_html let comments_html
function commentAuthor(comment, classlist, submitter, moderator) { function commentAuthor(comment, classlist, submitter, moderator) {
let classes = classlist.join(' ') let classes = classlist.join(' ')
if (comment.author === '[deleted]') if (comment.author === '[deleted]')
@ -71,9 +70,14 @@ module.exports = function() {
` `
} else { } else {
if(!morechildren_ids) { if(!morechildren_ids) {
let load_comms_href = parent_id
if(viewing_comment)
load_comms_href = '../' + parent_id
comments_html = ` comments_html = `
<div class="load-more-comments"> <div class="load-more-comments">
<a href="${parent_id}">load more comments (${comments.count})</a> <a href="${load_comms_href}">load more comments (${comments.count})</a>
</div> </div>
` `
} else { } else {
@ -152,7 +156,7 @@ module.exports = function() {
if(comment.replies[j+1]) { if(comment.replies[j+1]) {
next_reply = comment.replies[j+1] next_reply = comment.replies[j+1]
} }
replies_html += await compilePostCommentsHtml(comment.replies[j], next_reply, post_id, post_url, null, post_author) replies_html += await compilePostCommentsHtml(comment.replies[j], next_reply, post_id, post_url, null, post_author, viewing_comment)
} }
} }
} }
@ -160,9 +164,14 @@ module.exports = function() {
} else { } else {
if(comment.children.length > 0) { if(comment.children.length > 0) {
let parent_id = comment.parent_id.split('_')[1] let parent_id = comment.parent_id.split('_')[1]
let load_comms_href = parent_id
if(viewing_comment)
load_comms_href = '../' + parent_id
comments_html += ` comments_html += `
<div class="load-more-comments"> <div class="load-more-comments">
<a href="${parent_id}">load more comments (${comment.count})</a> <a href="${load_comms_href}">load more comments (${comment.count})</a>
</div> </div>
` `
} else { } else {

View File

@ -186,7 +186,7 @@ module.exports = function(fetch) {
}) })
} }
this.finalizeJsonPost = async (processed_json, post_id, post_url, morechildren_ids) => { this.finalizeJsonPost = async (processed_json, post_id, post_url, morechildren_ids, viewing_comment) => {
let comments_html = `<div class="comments">` let comments_html = `<div class="comments">`
let comments = processed_json.comments let comments = processed_json.comments
for(var i = 0; i < comments.length; i++) { for(var i = 0; i < comments.length; i++) {
@ -194,7 +194,7 @@ module.exports = function(fetch) {
if(comments[i+1]) { if(comments[i+1]) {
next_comment = comments[i+1] next_comment = comments[i+1]
} }
comments_html += await compilePostCommentsHtml(comments[i], next_comment, post_id, post_url, morechildren_ids, processed_json.author) comments_html += await compilePostCommentsHtml(comments[i], next_comment, post_id, post_url, morechildren_ids, processed_json.author, viewing_comment)
} }
comments_html += `</div>` comments_html += `</div>`

View File

@ -493,7 +493,7 @@ module.exports = (app, redis, fetch, RedditAPI) => {
(async () => { (async () => {
if(!more_comments_cursor) { if(!more_comments_cursor) {
let processed_json = await processJsonPost(json, false) let processed_json = await processJsonPost(json, false)
let finalized_json = await finalizeJsonPost(processed_json, id, post_url) let finalized_json = await finalizeJsonPost(processed_json, id, post_url, null, viewing_comment)
return res.render('post', { return res.render('post', {
post: finalized_json.post_data, post: finalized_json.post_data,
comments: finalized_json.comments, comments: finalized_json.comments,
@ -558,7 +558,7 @@ module.exports = (app, redis, fetch, RedditAPI) => {
console.log(`Fetched the JSON from reddit.com${comments_url}.`); console.log(`Fetched the JSON from reddit.com${comments_url}.`);
(async () => { (async () => {
let processed_json = await processJsonPost(json, true) let processed_json = await processJsonPost(json, true)
let finalized_json = await finalizeJsonPost(processed_json, id, post_url) let finalized_json = await finalizeJsonPost(processed_json, id, post_url, null, viewing_comment)
return res.render('post', { return res.render('post', {
post: finalized_json.post_data, post: finalized_json.post_data,
comments: finalized_json.comments, comments: finalized_json.comments,