// ==UserScript== // @name NiTwit // @namespace http://tampermonkey.net/ // @version 0.1.1 // @description Button to toggle between Twitter and a custom domain // @author You // @match *://*.twitter.com/* // @grant GM_getValue // @grant GM_setValue // @license MIT // @downloadURL none // ==/UserScript== (function () { "use strict"; let alternateDomain = GM_getValue("alternateDomain"); // If no alternate domain has been set, prompt the user to input one, default is 'nitter.net' if (!alternateDomain) { alternateDomain = prompt("Please enter the alternate domain you want to switch to from twitter.com:", "nitter.net"); // If the user provides an alternate domain, save it if (alternateDomain) { GM_setValue("alternateDomain", alternateDomain); } } // Add the match rule for the alternate domain if (alternateDomain) { GM_info.scriptHandler.addMetaRule({ name: "@match", value: `*://*.${alternateDomain}/*` }); } const url = window.location.href; let newUrl = ""; // Create button let btn = document.createElement("button"); btn.classList.add("nitter-switch"); btn.textContent = "Switch"; btn.style.position = "fixed"; btn.style.top = "10"; btn.style.right = "10"; btn.style.zIndex = "9999999999"; // Add button to page document.body.appendChild(btn); btn.addEventListener("click", function () { if (url.includes("twitter.com")) { newUrl = url.replace("twitter.com", alternateDomain); } else if (url.includes(alternateDomain)) { newUrl = url.replace(alternateDomain, "twitter.com"); } window.location.href = newUrl; }); })();