Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ==UserScript==
- // @name Spaz's Reddit Delete (Tedpilled Edition)
- // @namespace Reddit
- // @include http*://*.reddit.com/user/*
- // @version 1
- // @description Replaces all VISIBLE comments with garbage text, then deletes the comment. Works with RES!
- // ==/UserScript==
- RD = unsafeWindow.RedditDelete = {};
- RD.DELAY_SAVE = 2 * 1000;
- RD.DELAY_DELETE = 3 * 1000;
- RD.chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz><.-,+!@#$%^&*;:[]~';
- RD.started = false;
- function __getRNGString(maxLength) {
- var rnum, repl_str = '';
- for (var x = 0; x < maxLength; x++){
- rnum = Math.floor(Math.random() * RD.chars.length);
- repl_str += RD.chars.charAt(rnum, 1);
- }
- return repl_str;
- }
- function _setupEnv() {
- if (RD.started) return;
- RD.numDel = 0;
- RD.contentCtnr = document.querySelector('div.content');
- RD.infoBar = document.createElement('span');
- RD.userName = document.querySelector('span.user > a:not(.login-required)').innerHTML;
- RD.infoBar.setAttribute('class', 'nextprev');
- RD.started = true;
- }
- function _setupUI() {
- //Build DELETE-ALL Link
- var delAllLink = document.createElement('a');
- delAllLink.innerHTML = 'SECURE DELETE ALL COMMENTS';
- delAllLink.onclick = _promptDeleteAll;
- delAllLink.style.cssText = "color: rgb(200, 0, 0); text-shadow: -1px 0px 6px rgba(0,0,0, 0.7);";
- //Add to infoBar!
- RD.infoBar.appendChild(delAllLink);
- RD.contentCtnr.insertBefore(RD.infoBar, RD.contentCtnr.firstChild);
- }
- function _promptDeleteAll() {
- var doDelete = confirm("Are you sure you want to delete all comments on the screen?\n\n"
- + "ProTip: If you want to delete ALL, use RES and use 'Never Ending Reddit' feature to show ALL comments.");
- if (!doDelete) return;
- _deleteAll();
- }
- function _deleteAll() {
- var modalCntr = RD.modalCntr = document.createElement('div');
- var modalMsg = RD.modalMsg = document.createElement('div');
- var cancelBtn = document.createElement('button');
- modalCntr.style.cssText = ''
- + 'position: fixed; top: 0; left: 0; right: 0; bottom: 0;'
- + 'height: 100%; width: 100%; background: rgba(0,0,0,0.8);'
- modalMsg.style.cssText = ''
- + 'position: absolute; font-size: 32px; transform: translateX(-50%); top: 50%; left: 50%;'
- cancelBtn.style.cssText = ''
- + 'position: absolute; font-size: 22px;'
- + 'transform: translateX(-50%); top: 63%; left: 50%;'
- cancelBtn.innerHTML = "Cancel";
- cancelBtn.onclick = function() {
- RD.modalMsg.innerHTML = "Cancelling..."
- RD.numDel = RD.comments.length;
- }
- RD.comments = __getVisibleComments();
- RD.numDel = 0;
- modalCntr.appendChild(modalMsg);
- modalCntr.appendChild(cancelBtn);
- document.body.appendChild(modalCntr);
- __deleteCommentIndex(0);
- }
- function __getVisibleComments() {
- var foundComments = [];
- var entries = RD.contentCtnr.querySelectorAll('.entry.likes');
- var entry = null;
- var entryAuthor = '';
- for (var idx = 0; idx < entries.length; idx++) {
- entry = entries[idx];
- entryAuthor = entry.querySelector('.author');
- if (!entryAuthor || entryAuthor.innerHTML !== RD.userName) continue;
- foundComments.push(entry);
- };
- return foundComments;
- }
- function __deleteCommentIndex(idx) {
- var comment = RD.comments[idx];
- __overwriteComment(comment, function(comment) {
- __deleteComment(comment, function() {
- var complete = RD.numDel >= RD.comments.length;
- if (false === complete) {
- RD.numDel++;
- __deleteCommentIndex(RD.numDel);
- } else {
- window.location.reload();
- }
- });
- });
- }
- function __overwriteComment(comment, callback) {
- var editLink = comment.querySelector('.edit-usertext');
- var editText, newText, saveLink;
- RD.modalMsg.innerHTML = 'Overwriting ' + (RD.numDel + 1) + ' of ' + RD.comments.length + '...';
- if (!editLink) { if (callback) callback(comment); return; }
- //Enable editing...
- editLink.click();
- editText = comment.querySelector('textarea');
- saveBtn = comment.querySelector('.usertext-buttons .save');
- //Replace Text with RNG string
- newText = __getRNGString(25);
- editText.value = "[The Industrial Revolution and it's consequences have been a disaster for the human race.](https://theanarchistlibrary.org/library/fc-industrial-society-and-its-future.pdf)" + "\n\n[Get this overwrite script](https://pastebin.com/fYJTPiYW)" + "\n\n^(" + newText + ")";
- //Do the save...
- saveBtn.click();
- setTimeout(function() { if (callback) callback(comment); }, RD.DELAY_SAVE);
- }
- function __deleteComment(comment, callback) {
- RD.modalMsg.innerHTML = 'Deleting ' + (RD.numDel + 1) + ' of ' + RD.comments.length + '...';
- var deleteLink = comment.querySelector('form.del-button .togglebutton')
- var yesLink;
- //Enable deleting...
- deleteLink.click();
- yesLink = comment.querySelector('.option.error.active a.yes');
- if (!yesLink) { if (callback) callback(); return; }
- //Delay clicking YES so the user can see it
- setTimeout(function() {
- //Do the delete...
- //yesLink.click();
- setTimeout(function() { if (callback) callback(); }, RD.DELAY_DELETE);
- }, 250);
- }
- (function() {
- _setupEnv();
- _setupUI();
- })();
Add Comment
Please, Sign In to add comment