From c964ab4e94b2b9b623b8370f2641d9f9653b2927 Mon Sep 17 00:00:00 2001 From: Holly Date: Sun, 9 May 2021 06:21:07 +0000 Subject: [PATCH] installation website --- index.html | 66 ++++++++++++++++++++++++++++++++++++++++++++++++ install_form.js | 22 ++++++++++++++++ ria.png | Bin 0 -> 26402 bytes style.css | 62 +++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 150 insertions(+) create mode 100644 index.html create mode 100644 install_form.js create mode 100644 ria.png create mode 100644 style.css diff --git a/index.html b/index.html new file mode 100644 index 0000000..d581bb9 --- /dev/null +++ b/index.html @@ -0,0 +1,66 @@ + + + + + Remote Instance Actions + + + + +

Remote Instance Actions

+ +
The userscript in action, suspending badfaith.instance.
Quickly suspend or silence remote instances from the Mastodon frontend
+ +

Installation Form

+ + +
+

Enter each instance you wish to use the script on. This should be just "domain.tld", no extra formatting. One domain per line.

+
+ +
+ +
+ +

FAQ

+ +

What's this?

+ +

Remote Instance Actions is a userscript I've written to aid in Mastodon moderation.

+ +

(That really is just "Mastodon", not "fediverse". Sorry, Misskey admins).

+ +

It's as simple as the image at the top makes it look! Just highlight the URL of an instance you want to silence or suspend, and select the new context option. It does a little bit of simple sanitizing and validation to make sure you highlighted what you wanted to highlight. Then, it checks to see if the instance is already limited. Finally, it opens a new tab to your instance's "New Domain Block" form.

+ +

What is a userscript?

+ +

A userscript is sort of like a browser extension, but smaller! Just a little bit of Javascript code that gets run on certain pages to enhance the experience.

+ +

If you're asking this question, you should probably know that you do actually need a browser extension to run userscripts. The most popular and feature-complete one by far (as well as the one this userscript was tested with!) is Tampermonkey.

+ +

Tampermonkey Home Page Chrome Extension Firefox Add-On

+ +

At time of writing, the script doesn't work in Firefox and I haven't the foggiest idea why. Working on it.

+ +

It's just a userscript? Why the complex installation process?

+ +

When writing a userscript, you have to hardcode in the URL of websites it will work on. That's fine for, say, Twitter, where it's always found at "twitter.com" (for the time being, anyway). Mastodon instances are a lot harder to write for. If I wrote it to, for example, check if the current page is a Mastodon instance and conditionally add the context menu item, it would have to run on every page you visit to make that check.

+ +

The usual way to solve this problem is to just tell the user to modify the userscript to add the pages you'd like it to run on. That sucks for a number of reasons. The most obvious are that users don't want to have to go in and mess with the code, and that it breaks with Tampermonkey's update functionality. This page here is my overengineered solution.

+ +

The userscript itself, in a usable state, isn't exactly stored anywhere on my server. There is a version that's very similar, but with a little bit of PHP where you would expect the @match directives to be. That PHP code fills in the match directives with domains provided via GET parameters before sending it to your browser. Since the script was installed from a URL with those parameters in it, Tampermonkey will include those same parameters when checking for updates.

+ +

The slightly less technical answer is that using this install page generates the userscript with the proper domains set on the fly, and does so in a way such that Tampermonkey will fetch updates that are generated with the same domains.

+ +

Can I see the source code?

+ +

Well, your browser will show you the code before installing, but if you want to inspect it beforehand it's available on my gitea instance. + +

How can I contact you?

+ +

If you're on the fediverse, I can be found at @monorail@glaceon.social.

+ +

If you aren't... How exactly did you get here?

+ + + diff --git a/install_form.js b/install_form.js new file mode 100644 index 0000000..c45e5f4 --- /dev/null +++ b/install_form.js @@ -0,0 +1,22 @@ +// Convert each line of the textarea to a unique input element, so they're all passed with separate GET parameters +function updateForm() { + form = document.getElementById("install-form"); + instances = document.getElementById("instance-input").value.split("\n"); + + for (const instance of instances) { + let input = document.createElement("input"); + input.type = "hidden"; + input.name = "instances[]"; + input.value = instance; + form.appendChild(input); + } +} + +function faqHighlight() { + document.getElementById("whyform").style.backgroundColor = "#ffffee"; +} + +document.addEventListener("DOMContentLoaded", function() { + document.getElementById("install-button").addEventListener("click", updateForm); + document.getElementById("whyformlink").addEventListener("click", faqHighlight); +}); diff --git a/ria.png b/ria.png new file mode 100644 index 0000000000000000000000000000000000000000..6445d8c1db84bbcc9359a144b8181bc463c328f4 GIT binary patch literal 26402 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

rz7Oh{-6+cb?nLUj`d)+?s(1FlW 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