Bypasses Disboard's join button redirect, by fetching the Discord invite directly from their API. Only works on the server page, not home page.
// ==UserScript==
// @name Disboard Bypass Redirect
// @namespace https://spin.rip/
// @version 2025-03-04
// @description Bypasses Disboard's join button redirect, by fetching the Discord invite directly from their API. Only works on the server page, not home page.
// @author Spinfal
// @match https://disboard.org/server/*
// @icon https://www.google.com/s2/favicons?sz=64&domain=disboard.org
// @grant none
// @license AGPL-3.0 License
// ==/UserScript==
(function() {
'use strict';
window.msTimeout = 0;
window.onload = () => {
setTimeout(() => {
const csrfToken = document.querySelector('[name="csrf-token"]')?.content;
const disboardServerId = location.pathname.split("/").pop();
if (!csrfToken) {
window.msTimeout = 2000; // apply a timeout to ensure everything fully loads
return alert("No CSRF Token was found. Try reloading the page.");
} else {
console.log(`CSRF Token found: ${csrfToken}`);
console.log("Fetching invite now!");
fetch(`https://disboard.org/site/get-invite/${disboardServerId}`, {
"headers": {
"accept": "*/*",
"accept-language": "en-US,en;q=0.6",
"priority": "u=1, i",
"x-csrf-token": csrfToken
},
"referrer": `https://disboard.org/server/join/${disboardServerId}`,
"referrerPolicy": "strict-origin-when-cross-origin",
"body": null,
"method": "POST",
"mode": "cors",
"credentials": "include"
}).then(response => response.json()).then(response => {
const joinBtn = document.querySelector(`[data-id="${disboardServerId}"]`);
joinBtn.href = response;
joinBtn.removeAttribute("onclick");
joinBtn.innerText = "SKIP THE BULLSHIT";
}).catch(error => new Error(error));
}
}, window.msTimeout);
}
})();