Greasy Fork is available in English.
Show a button on the top to quickly toggle between Twitter and Nitter.net (or any other instance).
当前为
// ==UserScript==
// @name NiTwit - From Twitter to Nitter and back
// @namespace http://tampermonkey.net/
// @version 0.1.8
// @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 *://*.nitter.net/*
// @match *://*.unofficialbird.com/*
// @grant none
// @license MIT
// ==/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 btnColor, btnText, btnTitle;
// Set button color, text and title based on the current URL
if (url.includes('twitter.com')) {
btnColor = '#ff6c60';
btnText = 'N';
btnTitle = 'Switch to Nitter';
} else if (url.includes(alternateDomain)) {
btnColor = '#1d9bf0';
btnText = 'T';
btnTitle = 'Switch to Twitter';
}
// Create button
let btn = document.createElement('button');
btn.classList.add('nitter-switch');
btn.textContent = btnText;
btn.title = btnTitle;
btn.style.position = 'fixed';
btn.style.top = '10px';
btn.style.right = '10px';
btn.style.zIndex = '9999';
btn.style.backgroundColor = btnColor;
btn.style.color = 'white';
btn.style.borderRadius = '50%';
btn.style.width = '30px';
btn.style.height = '30px';
btn.style.border = 'none';
btn.style.cursor = 'pointer';
btn.style.fontSize = '20px';
btn.style.textAlign = 'center';
btn.style.padding = '0';
btn.style.lineHeight = '30px';
btn.style.transition = 'transform .3s ease';
// Add button to page
document.body.appendChild(btn);
btn.addEventListener('click', function(){
// Always grab the most current URL
let newUrl = '';
if (url.includes('twitter.com')) {
newUrl = url.replace('https://twitter.com', alternateDomain);
} else if (url.includes(alternateDomain)) {
newUrl = url.replace(alternateDomain, 'https://twitter.com');
}
// Add "pop" animation
this.style.transform = 'scale(1.2)';
setTimeout(() => this.style.transform = 'scale(1)', 300);
window.location.href = newUrl;
});
});
observer.observe(document, { childList: true, subtree: true });
})();