您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Edit all comments with randomly selected words/phrases
- // ==UserScript==
- // @name Reddit Overwrite Comments ✍️
- // @author Agreasyforkuser
- // @namespace Reddit
- // @description Edit all comments with randomly selected words/phrases
- // @match https://old.reddit.com/user/*
- // @version 1.0
- // @icon https://www.redditstatic.com/desktop2x/img/favicon/android-icon-192x192.png
- // @run-at document-end
- // @license MIT
- // ==/UserScript==
- // Define a list of phrases here
- var words = ["wow", "cool", "nice"];
- var commentstabpage = /https:\/\/.*\.reddit\.com\/user.*\/comments\/.*/;
- if (commentstabpage.test(location.href)) {
- to_delete = [];
- num_user_comments = 0;
- deleted = 0;
- span = '';
- user = '';
- delete_comment = function (thing_id, from_delete_all) {
- try {
- var thing = document.querySelector("input[name='thing_id'][value='" + thing_id + "']");
- var status = thing.parentNode.querySelector("div.usertext-edit > div.bottom-area > div.usertext-buttons > span.status").innerHTML;
- var error = false;
- if ((status.indexOf("error") != -1) || (status.indexOf("submitting") != -1)) {
- error = true;
- } else {
- deleted++;
- }
- if (from_delete_all) {
- if (to_delete.length != 0) {
- span.innerHTML = "OVERWRITING COMMENT " + (deleted + 1) + " OF " + num_user_comments;
- var next_thing_id = to_delete.pop();
- setTimeout(overwrite_comment, 2000, next_thing_id, from_delete_all);
- } else {
- if (num_user_comments - deleted != 0) {
- num_user_comments = num_user_comments - deleted;
- UpdateDeleteAllSpan();
- span.innerHTML = "<span>Failed to overwrite " + num_user_comments + " comments</span><br>" + span.innerHTML;
- } else
- span.style.display = 'none';
- }
- } else {
- if (error)
- alert("Failure");
- else
- num_user_comments--;
- UpdateDeleteAllSpan();
- }
- return (error ? -1 : 0);
- } catch (er) {
- alert(er);
- if (from_delete_all) location.reload();
- return -99;
- }
- }
- overwrite_comment = function (thing_id, from_delete_all) {
- try {
- var edit_form = document.querySelector("input[name='thing_id'][value='" + thing_id + "']").parentNode;
- edit_form.querySelector("div.usertext-edit > div.bottom-area > div.usertext-buttons > button.cancel").click();
- var edit_btn = edit_form.parentNode.querySelector("ul > li > a.edit-usertext");
- if (edit_btn) edit_btn.click();
- var edit_textbox = edit_form.querySelector("div.usertext-edit > div > textarea");
- var repl_str = '';
- var randomIndex = Math.floor(Math.random() * words.length);
- edit_textbox.value = words[randomIndex];
- edit_form.querySelector("div.usertext-edit > div.bottom-area > div.usertext-buttons > button.save").click();
- setTimeout(delete_comment, 2000, thing_id, from_delete_all);
- return 0;
- } catch (e) {
- alert("Error with form: " + e);
- return -99;
- }
- };
- delete_all = function () {
- try {
- num_user_comments = 0;
- deleted = 0;
- to_delete = [];
- var comments = document.querySelectorAll("a.author");
- for (var i = 0; i < comments.length; i++) {
- if (comments[i].innerHTML != user) continue;
- var thing_id = comments[i].parentNode.parentNode.querySelector("form.usertext > input[name='thing_id']").value;
- if (to_delete.indexOf(thing_id) == -1) {
- to_delete.push(thing_id);
- num_user_comments++;
- }
- }
- span.innerHTML = "TRYING TO Overwrite COMMENT 1 OF " + num_user_comments;
- var next_thing_id = to_delete.pop();
- overwrite_comment(next_thing_id, true);
- } catch (e) {
- alert("YOU ARE MOST LIKELY NOT ON THE COMMENTS TAB! /n/n Error trying to delete all your comments.\nError: " + e + " Stack:" + e.stack);
- location.reload()
- }
- };
- function add_delete_links(ev) {
- user = document.querySelector("span.user > a:not(.login-required)").innerHTML;
- if (!user) { return; }
- var comments = document.querySelectorAll("a.author");
- num_user_comments = 0;
- for (var i = 0; i < comments.length; i++) {
- if (comments[i].innerHTML != user) continue;
- try {
- var main_parent = comments[i].parentNode.parentNode;
- var thing_id = main_parent.querySelector("form > input[name='thing_id']").value;
- var list = main_parent.querySelector("ul.flat-list");
- if (list.querySelector("li.secure_delete")) continue;
- num_user_comments++;
- var addedlink = document.createElement("li");
- addedlink.setAttribute('class', 'secure_delete');
- var dlink = document.createElement("a");
- dlink.setAttribute('class', 'bylink secure_delete');
- dlink.setAttribute('onClick', 'javascript:var ret = overwrite_comment("' + thing_id + '", false);');
- dlink.setAttribute('href', 'javascript:void(0)');
- addedlink.appendChild(dlink);
- main_parent.querySelector("ul.flat-list").appendChild(addedlink);
- } catch (e) { }
- }
- span = document.createElement("span");
- span.setAttribute('class', 'secure_delete_all');
- UpdateDeleteAllSpan();
- }
- deleteConfirm = function () {
- if (confirm('Are you sure you want to overwrite all comments with "' + words + '" ?')) {
- delete_all();
- }
- }
- function UpdateDeleteAllSpan() {
- if (num_user_comments) {
- var dlink = document.createElement("a");
- dlink.setAttribute('class', 'bylink');
- dlink.setAttribute('onClick', 'javascript:return deleteConfirm()');
- dlink.setAttribute('href', 'javascript:void(0)');
- dlink.appendChild(document.createTextNode('OVERWRITE ALL visible comments on this page with "' + words + '"'));
- dlink.style.border = 'none';
- dlink.style.fontWeight = 'bold';
- dlink.style.color = 'white';
- span.appendChild(dlink);
- span.style.backgroundColor = 'red';
- span.style.borderRadius = '20px';
- span.style.padding = '5px';
- span.style.display = 'inline-table';
- var menuarea = document.querySelector("div.menuarea");
- var firstChild = menuarea.firstChild;
- menuarea.insertBefore(span, firstChild.nextSibling);
- } else if (span != null) {
- span.style.display = 'none';
- }
- }
- add_delete_links();
- document.addEventListener("DOMContentLoaded", add_delete_links, false);
- } else {
- // Place a reminder
- var alink = document.createElement('a');
- var overviewURL = location.href;
- var commentstabURL = overviewURL + 'comments/';
- alink.href = commentstabURL;
- alink.textContent = 'go to comments-tab to overwrite✍️';
- alink.style.color = 'white';
- alink.style.backgroundColor = 'black';
- alink.style.padding = '5px';
- alink.style.fontWeight = 'bold';
- alink.style.borderRadius = '20px';
- alink.style.display = 'inline-table';
- document.querySelector('.menuarea').appendChild(alink);
- }