Greasy Fork is available in English.
Show a button on the top to quickly toggle between Twitter and Nitter (or any other instance).
当前为
// ==UserScript==
// @name NiTwit
// @namespace http://tampermonkey.net/
// @version 0.1.3
// @description Show a button on the top to quickly toggle between Twitter and Nitter (or any other instance).
// @author Appel
// @match *://*.twitter.com/*
// @grant GM_getValue
// @grant GM_setValue
// @license MIT
// ==/UserScript==
(function() {
'use strict';
let alternateDomain = GM_getValue('alternateDomain');
// If no alternate domain has been set, prompt the user to input one, default is 'https://nitter.net'
if (!alternateDomain) {
alternateDomain = prompt('Please enter the full alternate domain (include https://) you want to switch to from https://twitter.com:', 'https://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}/*`});
}
// 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 });
})();