// ==UserScript== // @name NiTwit // @namespace http://tampermonkey.net/ // @version 0.1.4 // @description Show a button on the top to quickly toggle between Twitter and Nitter.net (or any other instance). // @author Ap // @match *://*.twitter.com/* // @match *://*.unofficialbird.com/* // @grant none // @license MIT // @downloadURL none // ==/UserScript== (function () { "use strict"; let alternateDomain = "https://nitter.net"; // MutationObserver watches for changes in the document let observer = new MutationObserver(function () { if (document.querySelector(".nitter-switch")) { return; } 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 = "0"; btn.style.right = "0"; btn.style.zIndex = "9999"; // Add button to page document.body.appendChild(btn); btn.addEventListener("click", function () { if (url.includes("twitter.com")) { newUrl = url.replace("https://twitter.com", alternateDomain); } else if (url.includes(alternateDomain)) { newUrl = url.replace(alternateDomain, "https://twitter.com"); } window.location.href = newUrl; }); }); observer.observe(document, { childList: true, subtree: true }); })();