// ==UserScript== // @name NiTwit // @namespace http://tampermonkey.net/ // @version 0.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('toggle'); 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('twitter.com', alternateDomain); } else if (url.includes(alternateDomain)) { newUrl = url.replace(alternateDomain, 'twitter.com'); } window.location.href = newUrl; }); })();