2021-01-17 18:23:42 +01:00
|
|
|
|
<!doctype html>
|
|
|
|
|
<html lang="en">
|
|
|
|
|
<head>
|
|
|
|
|
<title>FediBlock</title>
|
|
|
|
|
<meta charset="utf-8">
|
|
|
|
|
<meta name="robots" content="noindex, nofollow">
|
|
|
|
|
<style>
|
|
|
|
|
body
|
|
|
|
|
{
|
|
|
|
|
max-width: 100ch;
|
|
|
|
|
}
|
|
|
|
|
p
|
|
|
|
|
{
|
|
|
|
|
text-indent: 2ch;
|
|
|
|
|
margin: 0 auto;
|
|
|
|
|
text-align: justify;
|
|
|
|
|
}
|
|
|
|
|
label
|
|
|
|
|
{
|
|
|
|
|
display: block;
|
|
|
|
|
float: left;
|
|
|
|
|
width: 12ch;
|
|
|
|
|
text-align: right;
|
|
|
|
|
margin-right: 1ch;
|
|
|
|
|
}
|
|
|
|
|
input[type=text], input[type=url]
|
|
|
|
|
{
|
|
|
|
|
width: 60ch;
|
|
|
|
|
}
|
|
|
|
|
input[type=button]
|
|
|
|
|
{
|
|
|
|
|
padding: 0;
|
|
|
|
|
}
|
2021-01-21 06:37:55 +01:00
|
|
|
|
input[type=file], input[list=list_tags]
|
2021-01-17 18:23:42 +01:00
|
|
|
|
{
|
|
|
|
|
margin-left: 10ch;
|
|
|
|
|
}
|
|
|
|
|
span.hint
|
|
|
|
|
{
|
|
|
|
|
font-style: italic;
|
|
|
|
|
}
|
|
|
|
|
p.footer
|
|
|
|
|
{
|
|
|
|
|
text-align: right;
|
|
|
|
|
}
|
|
|
|
|
table
|
|
|
|
|
{
|
|
|
|
|
width: 80%;
|
|
|
|
|
margin: auto auto;
|
|
|
|
|
}
|
|
|
|
|
table caption, table tr:first-of-type td
|
|
|
|
|
{
|
|
|
|
|
border-bottom: 1px solid;
|
|
|
|
|
}
|
|
|
|
|
table td:first-of-type
|
|
|
|
|
{
|
|
|
|
|
border-right: 1px solid;
|
|
|
|
|
}
|
|
|
|
|
</style>
|
|
|
|
|
<link rel="alternate" type="application/rss+xml" title="The newest FediBlock entries. All tags."
|
|
|
|
|
href="/rss">
|
|
|
|
|
</head>
|
|
|
|
|
<body>
|
|
|
|
|
<h1>FediBlock</h1>
|
|
|
|
|
|
|
|
|
|
<p>
|
|
|
|
|
<a href="https://fediblock.org/">FediBlock.org</a> ·
|
|
|
|
|
<a href="http://mzz6cduobh3oemtlou2sssbr4wteglmcabq5exrln3v7puwegfn4qqyd.onion/">
|
|
|
|
|
Onion service</a> (Tor)
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
<h2 id="what">What is this?</h2>
|
|
|
|
|
|
|
|
|
|
<p>
|
|
|
|
|
We aim to build a comprehensive list of #FediBlock posts in order to provide it to –
|
|
|
|
|
especially new – instance admins.
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
<p>
|
|
|
|
|
The idea of this project is to provide a list of bad actor instances in the Fediverse, in
|
|
|
|
|
order to enable instance admins to keep their instances clean of those actors without having
|
|
|
|
|
to go through endless and incomplete pages of #FediBlock posts.
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
<p>
|
|
|
|
|
Everyone can submit instances they suggest to block and provide receipts and reasoning.
|
|
|
|
|
Instance admins can subscribe to updates and decide for themselves whether they want to block
|
|
|
|
|
that instance or not. Those subscriptions can be limited to specific reasons (enables racism,
|
|
|
|
|
“free speech champions”, homomisia, no moderation, etc) or for all block suggestions.
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
<p>
|
|
|
|
|
The intention is to provide safe spaces in the Fediverse. The blocking suggestions should have
|
|
|
|
|
reasons like the above mentioned. If you want to suggest something like “The admin is blocking
|
|
|
|
|
my instance just because I used the n-word”, this is no place for you and your suggestion
|
|
|
|
|
might be deleted.
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
<p>
|
|
|
|
|
We recognize the work that others put into the #FediBlock hashtag. This is supposed to be an
|
|
|
|
|
archive or extension.
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
<h3>What are the advantages over the #FediBlock hashtag?</h3>
|
|
|
|
|
|
|
|
|
|
<ul>
|
|
|
|
|
<li>A list of all instances at a glance. Great for pointing admins of new instances to.</li>
|
|
|
|
|
<li>You get all block recommendations, not just the ones that federate to your instance.</li>
|
|
|
|
|
<li>Every recommendation has at least one receipt attached.</li>
|
|
|
|
|
<li>Entries are editable (with a git pull-request).</li>
|
|
|
|
|
<li>
|
|
|
|
|
Subscribe to the RSS feed to get all new recommendations or subscribe only to specific tags.
|
|
|
|
|
</li>
|
|
|
|
|
</ul>
|
|
|
|
|
|
|
|
|
|
<h2 id="list">Blocklist</h2>
|
|
|
|
|
|
|
|
|
|
<ul>
|
|
|
|
|
<li>Look at <a href="/blocklist/">all block recommendations in one page</a>.</li>
|
|
|
|
|
<li>
|
|
|
|
|
<a href="/rss">Subscribe to all new recommendations via RSS</a>, or<br>
|
|
|
|
|
<form method="get" action="/rss">
|
|
|
|
|
<label for="tags_rss" style="width: auto;">subscribe only to these tags:</label>
|
|
|
|
|
<input type="text" id="tags_rss" name="tags[]" placeholder="tag1,tag2,tag3"
|
|
|
|
|
style="width: 42ch;">
|
|
|
|
|
<input type="submit">
|
|
|
|
|
</form>
|
|
|
|
|
</li>
|
|
|
|
|
</ul>
|
|
|
|
|
|
|
|
|
|
<h2 id="api">API</h2>
|
|
|
|
|
|
|
|
|
|
<p><a href="/api/v1/list">/api/v1/list</a> returns an array of objects with these properties:</p>
|
|
|
|
|
|
|
|
|
|
<table>
|
|
|
|
|
<caption>Properties</caption>
|
|
|
|
|
<tr>
|
|
|
|
|
<td id="list_property">Property (type)</td>
|
|
|
|
|
<td id="list_description">Description</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td headers="list_property">instance (string)</td>
|
|
|
|
|
<td headers="list_description">The hostname of the instance.</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td headers="list_property">url (string)</td>
|
|
|
|
|
<td headers="list_description">The location of the full data set.</td>
|
|
|
|
|
</tr>
|
|
|
|
|
</table>
|
|
|
|
|
|
|
|
|
|
<p>The full data set is an object with these properties:</p>
|
|
|
|
|
|
|
|
|
|
<table>
|
|
|
|
|
<caption>Properties</caption>
|
|
|
|
|
<tr>
|
|
|
|
|
<td id="data_property">Property (type)</td>
|
|
|
|
|
<td id="data_description">Description</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td headers="data_property">description (string)</td>
|
|
|
|
|
<td headers="data_description">The reasons the instance is listed. Can be long. Not sanitized.</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td headers="data_property">instance (string)</td>
|
|
|
|
|
<td headers="data_description">The hostname of the instance. Can be more than one, separated by comma.</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td headers="data_property">receipts (array of strings)</td>
|
|
|
|
|
<td headers="data_description">URLs to prove the claims made in the description and tags.</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td headers="data_property">report_time (string)</td>
|
|
|
|
|
<td headers="data_description">Date and time of reporting, UTC. Format:
|
|
|
|
|
<a href="https://man7.org/linux/man-pages/man3/strftime.3.html">%Y-%m-%dT%H:%M:%S</a>.</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td headers="data_property">screenshots (array of strings)</td>
|
|
|
|
|
<td headers="data_description">The file names of the screenshots. Prepend
|
|
|
|
|
<code>https://fediblock.org/blocklist/</code> and you have the URL.</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td headers="data_property">tags (array of strings)</td>
|
|
|
|
|
<td headers="data_description">Tags to classify the problems with the instance.</td>
|
|
|
|
|
</tr>
|
|
|
|
|
</table>
|
|
|
|
|
|
|
|
|
|
<h2 id="contact">Contact</h2>
|
|
|
|
|
|
|
|
|
|
<p>
|
|
|
|
|
You can reach us in the Fediverse at
|
|
|
|
|
<a rel="me" href="https://botsin.space/@fediblock_archive">@fediblock_archive@botsin.space</a>.
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
<h2 id="suggest">Suggest instance</h2>
|
|
|
|
|
|
|
|
|
|
<p>
|
|
|
|
|
Please make sure to include receipts (hyperlinks and/or screenshots) for all claims you make. We
|
|
|
|
|
don't want trust to be necessary to use this list.
|
|
|
|
|
</p>
|
|
|
|
|
|
2021-01-21 06:37:55 +01:00
|
|
|
|
<form method="post" action="/add" enctype="multipart/form-data" id="form_add">
|
2021-01-17 18:23:42 +01:00
|
|
|
|
<label for="instance">Instance:</label>
|
|
|
|
|
<input type="text" id="instance" name="instance" placeholder="example.com" required>
|
|
|
|
|
<span class="hint">(Without the “https://”)</span>
|
|
|
|
|
<br>
|
|
|
|
|
|
2021-01-21 06:37:55 +01:00
|
|
|
|
<label for="tags">Tags:</label><span class="hint">(One tag per field or comma separated)</span><br>
|
|
|
|
|
<input type="text" list="list_tags" id="tags" name="tags[]" required>
|
|
|
|
|
<input type="button" id="add_tag" value="➕" onclick="javascript:add_input_tag();">
|
2021-01-17 18:23:42 +01:00
|
|
|
|
<br>
|
|
|
|
|
|
|
|
|
|
<label for="receipts">Receipts:</label>
|
|
|
|
|
<input type="url" id="receipts" name="receipts"
|
|
|
|
|
placeholder="https://example.com/@user/1234567890,https://example.com/about/more" required>
|
|
|
|
|
<!-- <input type="button" id="add_receipt" value="➕" disabled> -->
|
|
|
|
|
<br>
|
|
|
|
|
|
|
|
|
|
<label for="screenshot1">Screenshots:</label><span class="hint">(optional)</span>
|
|
|
|
|
<br>
|
|
|
|
|
<input type="file" id="screenshot1" name="screenshots[]" accept="image/*">
|
|
|
|
|
<br>
|
|
|
|
|
<input type="file" id="screenshot2" name="screenshots[]" accept="image/*">
|
|
|
|
|
<br>
|
|
|
|
|
<input type="file" id="screenshot3" name="screenshots[]" accept="image/*">
|
|
|
|
|
<br>
|
|
|
|
|
<input type="file" id="screenshot4" name="screenshots[]" accept="image/*">
|
|
|
|
|
<br>
|
|
|
|
|
|
|
|
|
|
<label for="description">Description:</label><br>
|
|
|
|
|
<textarea id="description" name="description" cols="80" rows="20" required></textarea><br>
|
|
|
|
|
|
|
|
|
|
<div style="display:none;">
|
|
|
|
|
<label for="url" style="width: 18ch;">Leave this empty:</label>
|
|
|
|
|
<input type="text" id="url" name="url">
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div>Please solve this mathematical question:</div>
|
|
|
|
|
<?php
|
|
|
|
|
$array = array
|
|
|
|
|
(
|
|
|
|
|
0 => "1 + 1",
|
|
|
|
|
1 => "4 + 2",
|
|
|
|
|
2 => "12 + 5",
|
|
|
|
|
3 => "15 - 3",
|
|
|
|
|
4 => "2 x 2",
|
|
|
|
|
5 => "2 - 1"
|
|
|
|
|
);
|
|
|
|
|
$random_number = rand(0, 5);
|
|
|
|
|
|
|
|
|
|
printf('<input type="text" id="captcha_id" name="captcha_id" value="%s" style="display:none;">',
|
|
|
|
|
$random_number);
|
|
|
|
|
printf('<label for="captcha_answer">%s:</label>', $array[$random_number]);
|
|
|
|
|
?>
|
|
|
|
|
<input type="text" id="captcha_answer" name="captcha_answer" required>
|
|
|
|
|
<br>
|
|
|
|
|
|
|
|
|
|
<input type="submit">
|
|
|
|
|
</form>
|
|
|
|
|
|
|
|
|
|
<p class="footer">
|
|
|
|
|
<a href="https://schlomp.space/FediBlock">Sourcecode</a> licensed under the
|
|
|
|
|
<a href="https://www.gnu.org/licenses/agpl-3.0.html">AGPL-3.0-only</a>.
|
|
|
|
|
</p>
|
2021-01-21 06:37:55 +01:00
|
|
|
|
|
|
|
|
|
<script>
|
|
|
|
|
function add_input_tag()
|
|
|
|
|
{
|
|
|
|
|
const input_text = document.createElement("input");
|
|
|
|
|
input_text.setAttribute("type", "text");
|
|
|
|
|
input_text.setAttribute("list", "list_tags");
|
|
|
|
|
input_text.setAttribute("name", "tags[]");
|
|
|
|
|
|
|
|
|
|
const form = document.getElementById("form_add");
|
|
|
|
|
const btn = document.getElementById("add_tag");
|
|
|
|
|
form.insertBefore(document.createElement("br"), btn);
|
|
|
|
|
form.insertBefore(input_text, btn);
|
|
|
|
|
input_text.focus();
|
|
|
|
|
}
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
<datalist id="list_tags">
|
|
|
|
|
<?php
|
|
|
|
|
$file = fopen("tags.lst", "r") or die("Unable to open autocompletion file.");
|
|
|
|
|
while(!feof($file))
|
|
|
|
|
{
|
|
|
|
|
$tag = rtrim(fgets($file));
|
|
|
|
|
if ($tag != "")
|
|
|
|
|
{
|
|
|
|
|
printf("<option value=\"%s\">\n", $tag);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
fclose($file);
|
|
|
|
|
?>
|
|
|
|
|
</datalist>
|
2021-01-17 18:23:42 +01:00
|
|
|
|
</body>
|
|
|
|
|
</html>
|