Skip to content

Instantly share code, notes, and snippets.

@Zro617
Last active August 2, 2020 16:46
Show Gist options
  • Save Zro617/2bd2e1b1ffc67bafaa71 to your computer and use it in GitHub Desktop.
Save Zro617/2bd2e1b1ffc67bafaa71 to your computer and use it in GitHub Desktop.
Userscript that adds buttons for quick "support" and "no support" posts. (btw I hate these)
// ==UserScript==
// @author Zro716
// @name Scratch Support Buttons
// @namespace ScratchSupportButtons
// @description Adds buttons to post "support" or "no support" (must include a reason)
// @include https://scratch.mit.edu/discuss/topic/*
// @version 1.01
// @grant none
// ==/UserScript==
var isOpen = !!document.getElementsByClassName("follow-button").length,
isSuggestion = document.querySelectorAll("a")[21].innerHTML == "Suggestions",
pageNum = window.location.href.match(/\?page=(\d+)/),
isFirstPage = pageNum == null || pageNum[1] == 1;
console.log("ScratchSupportButtons Debug:\n isOpen -> " + isOpen
+ "\n isSuggestion -> " + isSuggestion
+ "\n pageNum -> " + JSON.stringify(pageNum)
+ "\n isFirstPage -> " + isFirstPage);
if (isOpen && isSuggestion && isFirstPage) {
var op = document.getElementsByClassName("post_body_html")[0];
console.log(op);
var btn_sup = document.createElement("button"),
btn_nosup = document.createElement("button");
btn_sup.setAttribute("class","follow-button button blue");
btn_nosup.setAttribute("class","unfollow-button button grey");
btn_sup.innerHTML = "I Support";
btn_nosup.innerHTML = "I Don't Support";
btn_sup.onclick = function() {
var post = prompt("It is encouraged by the Scratch Team to give reason for supporting.\nPlease briefly write your thoughts below:");
if (post) {
document.getElementsByTagName("textarea")[0].value = "I support. " + post;
document.getElementsByClassName("form-submit")[0].getElementsByTagName("button")[0].click();
}
};
btn_nosup.onclick = function() {
var post = prompt("It is encouraged by the Scratch Team to give reason for not supporting.\nPlease briefly write your thoughts below:");
if (post) {
document.getElementsByTagName("textarea")[0].value = "I don't support. " + post;
document.getElementsByClassName("form-submit")[0].getElementsByTagName("button")[0].click();
}
};
var div = document.createElement("div");
div.setAttribute("class","ScratchSupportButtons");
div.appendChild(document.createElement("br"));
div.appendChild(btn_sup);
div.appendChild(btn_nosup);
op.appendChild(div);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment