Added “Mastodon CW toggle”.

This commit is contained in:
tastytea 2019-05-27 16:42:59 +02:00
parent 59ea6b5bd3
commit 71421c08e2
Signed by untrusted user: tastytea
GPG Key ID: CFC39497F1B26E07
1 changed files with 60 additions and 0 deletions

View File

@ -0,0 +1,60 @@
// ==UserScript==
// @name Mastodon CW toggle
// @description Toggles the visibility of all statuses with content warnings.
// @namespace tastytea.de
// @version 2019-05-27
// @grant none
// @run-at document-end
// ==/UserScript==
// Copyright © 2019 tastytea <tastytea@tastytea.de>.
// License GPLv3: GNU GPL version 3 <https://www.gnu.org/licenses/gpl-3.0.html>.
// This program comes with ABSOLUTELY NO WARRANTY. This is free software,
// and you are welcome to redistribute it under certain conditions.
// Toggle the visibility of each status with CW.
function toggle()
{
for (let status of document.getElementsByClassName("e-content"))
{
var style = status.getAttribute("style");
if (style.search("none") > -1)
{
style = style.replace("none", "block");
}
else
{
style = style.replace("block", "none");
}
status.setAttribute("style", style);
}
}
// If there is a “Show more”-button, add our “Toggle all CWs”-button, if we
// didn't do so before.
if (document.getElementsByClassName("status__content__spoiler-link").length > 0
&& document.getElementById("global-cw-toggle") === null)
{
// If there is no element named “column-1”, do nothing.
var root = document.getElementsByClassName("column-1")[0];
if (root == null)
{
return;
}
// Create a div, necessary to get the correct styling for the button.
var div = document.createElement("div");
div.setAttribute("id", "global-cw-toggle");
div.setAttribute("class", "status__content");
div.setAttribute("style", "margin-bottom: 0.5em;");
// Create the button.
var button = document.createElement("a");
button.setAttribute("class", "status__content__spoiler-link");
button.appendChild(document.createTextNode("Toggle all CWs"));
div.appendChild(button);
root.insertBefore(div, root.firstChild);
button.onclick = toggle;
}