diff --git a/README.md b/README.md index 28657d5..a1b427c 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ This is a done by comparing the comments found from Reddit API and comments from # The "I just want to get this shit running" guide Using [Ubuntu 16.04](http://releases.ubuntu.com/16.04/) and [nginx](https://www.nginx.com/resources/wiki/) ``` -sudo git clone git@github.com:JubbeArt/removeddit.git /var/www/ +sudo git clone https://github.com/JubbeArt/removeddit.git /var/www/removeddit sudo apt install -y nginx sudo cp /var/www/removeddit/config/basic /etc/nginx/sites-available/default ``` @@ -55,7 +55,7 @@ Change both the "server_name" in the config to your domain name. ## SSL with Let's encrypt Read the full guide [here](https://certbot.eff.org/#ubuntutyakkety-nginx). Start of by installing the Let's Encrypt client [certbot](https://certbot.eff.org/) ``` -sudo apt install software-properties-common +sudo apt install -y software-properties-common sudo add-apt-repository ppa:certbot/certbot sudo apt update sudo apt install -y python-certbot-nginx @@ -64,18 +64,18 @@ sudo apt install -y python-certbot-nginx Copy the Let's Encrypt config file for our site ``` sudo mkdir /etc/letsencrypt/configs -cp /var/www/removeddit/config/letsencrypt /etc/letsencrypt/configs/removeddit.com.conf +cp /var/www/removeddit/config/letsencrypt.conf /etc/letsencrypt/configs/removeddit.com.conf ``` -In this config file change the domains and the email for your own. The email is tells when the certificates are close to expiring. +In this config file change the domains and the email address for your own. The emails tells you when the certificates are close to expiring. -This is when the webmasters start praying to God Almighty, for only He can deside the fate of the certbot. +This is when the webmasters start praying to God, for only He can deside the fate of the certbot. Forgive me, Father, for I have sinned. Just don't fuck up certs you asshole. ``` sudo certbot --config /etc/letsencrypt/configs/removeddit.com.conf certonly ``` -You'll now have a valid SSL certificate (hopefully)! You might have to edit the path for `ssl_certificate` and `ssl_certificate_key` in `/etc/nginx/sites-available/removeddit.com` depending on where the certs are located. (Should be in `/etc/letsencrypt/live/`) +You'll now have a valid SSL certificate (hopefully)! You now have to uncomment the `ssl_certificate` and `ssl_certificate_key` in `/etc/nginx/sites-available/removeddit.com` and maybe change the path depending on where the certs are located (check in `/etc/letsencrypt/live/`). ## Automated renewal of certs The certificate expires after 90 days so we want a way to atomatically update the certs. diff --git a/config/ssl b/config/ssl index 0d4add3..aef4e04 100644 --- a/config/ssl +++ b/config/ssl @@ -9,8 +9,9 @@ server { access_log /var/log/nginx/removeddit/access.log; error_log /var/log/nginx/removeddit/error.log; - ssl_certificate /etc/letsencrypt/live/removeddit.com/fullchain.pem; - ssl_certificate_key /etc/letsencrypt/live/removeddit.com/privkey.pem; + # Uncomment these after you've received the certificates + #ssl_certificate /etc/letsencrypt/live/removeddit.com/fullchain.pem; + #ssl_certificate_key /etc/letsencrypt/live/removeddit.com/privkey.pem; location / { try_files /index.html /index.html =404; diff --git a/index.html b/index.html index f9b414d..bccbdbf 100644 --- a/index.html +++ b/index.html @@ -15,7 +15,7 @@

About

This is a site for viewing removed comments from Reddit. - It was created by Jesper Wrang and uses Jason Baumgartner service for getting removed comments.

+ It was created by Jesper Wrang and uses Jason Baumgartner service for getting removed comments.

How to use: go to any Reddit thread and replace the reddit in the URL with removeddit
E.g. diff --git a/static/script.js b/static/script.js index 1d96eb7..4735c34 100644 --- a/static/script.js +++ b/static/script.js @@ -19,6 +19,8 @@ if(pathname.length <= 4) { const subreddit = pathname[2] const threadID = pathname[4] +const root = getCommentContext() === "" ? threadID : getCommentContext() + const redditTokenURL = "https://www.reddit.com/api/v1/access_token" const redditThreadURL = `https://oauth.reddit.com/r/${subreddit}/comments/${threadID}` const redditMorechildrenURL = `https://oauth.reddit.com/api/morechildren?link_id=t3_${threadID}&children=` @@ -149,7 +151,7 @@ function extractMorechildrenIDs(comments) { comments.jquery[14][3][0].forEach(comment => { if(comment.kind == "more") { if(comment.data.id === "_") { - console.log("From more, continue: " + comment.data.parent_id) + //console.log("From more, continue: " + comment.data.parent_id) continuethisthreadIDs.push(comment.data.parent_id) } else { const children = comment.data.children @@ -184,11 +186,11 @@ async function getRemovedComments(allCommentIDs) { idsDiff = [...new Set(idsDiff)] generateCommentInfo(idsDiff.length) - console.log("All ids :", allCommentIDs) - console.log("Comments ids (dup): ", commentIDs) - console.log("With/without dups: ", commentIDs.length, new Set(commentIDs).size) - console.log("Difference: ", idsDiff) - console.log("Lookup size:", commentLookup.size) + //console.log("All ids :", allCommentIDs) + //console.log("Comments ids (dup): ", commentIDs) + //console.log("With/without dups: ", commentIDs.length, new Set(commentIDs).size) + //console.log("Difference: ", idsDiff) + //console.log("Lookup size:", commentLookup.size) return fetchMultiple(pushshiftCommentsURL, idsDiff, null, ["data"], true) } @@ -198,7 +200,7 @@ async function getRemovedComments(allCommentIDs) { // ------------------------------------------------------------------------------ async function generateComments(removedComments) { - const commentSection = generateHTML(`

`) + const commentSection = generateHTML(`
`) mainDiv.appendChild(commentSection) removedComments.forEach(comment => { @@ -232,7 +234,7 @@ async function getCommentsToGenerate(commentsToLookup) { else if(commentLookup.has(parentID)) { newCommentsToLookup.push(parentID) } else{ - console.error("Comment doesn't exists, but lets try it anyway :D") + //console.error("Comment doesn't exists, but lets try it anyway :D") commentsToFetch.push(parentID) } @@ -241,10 +243,10 @@ async function getCommentsToGenerate(commentsToLookup) { if(commentsToFetch.length !== 0) { const newComments = await fetch(redditSingleCommentURL + commentsToFetch.map(x => "t1_" + x).join(), redditInit).then(json) - console.log(newComments) + //console.log(newComments) newComments.data.children.forEach(x => { - console.log(x.data.id) + //console.log(x.data.id) commentLookup.set(x.data.id, x.data) newCommentsToLookup.push(x.data.id) }) @@ -256,7 +258,12 @@ async function getCommentsToGenerate(commentsToLookup) { } function createComments() { - const createdCommentIDs = [threadID] + const createdCommentIDs = [threadID === root ? threadID : "0000000"] + + if(root !== threadID) { + commentLookup.get(root).parent_id = "t1_0000000" + } + let id, parentID let didSomething @@ -266,8 +273,10 @@ function createComments() { for(let i = commentsToCreate.length -1; i >= 0; i--) { id = commentsToCreate[i] parentID = commentLookup.get(id).parent_id.split("_")[1] + //console.log(parentID) if(createdCommentIDs.includes(parentID)) { + //console.error("True :" + parentID) document.getElementById(parentID).appendChild(createComment(commentLookup.get(id))) createdCommentIDs.push(id) commentsToCreate.splice(i, 1) @@ -333,7 +342,7 @@ function createComment(comment) {
${comment.body === "[removed]" && isRemoved ? "

[likely removed by automoderator]

" : markdown.render(comment.body)}
`) @@ -413,6 +422,20 @@ function displayError(errorMsg) { console.error(errorMsg) } +function getCommentContext() { + let commentToot = "" + + if(window.location.pathname.split("/").length >= 7) { + commentToot = window.location.pathname.split("/")[6] + } + + if(window.location.hash.length === 8) { + commentToot = window.location.hash.substring(1) + } + + return commentToot +} + // UTC -> "Reddit time format" (5 hours ago, just now, etc...) function prettyDate(createdUTC) { const currentUTC = Math.floor((new Date()).getTime() / 1000)