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.9
// @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 = "24px";
btn.style.height = "24px";
btn.style.border = "none";
btn.style.cursor = "pointer";
btn.style.fontFamily = "-apple-system, BlinkMacSystemFont, avenir next, avenir, segoe ui, helvetica neue, helvetica, Cantarell, Ubuntu, roboto, noto, arial, sans-serif";
btn.style.fontSize = "14px";
btn.style.fontWeight = "700";
btn.style.textAlign = "center";
btn.style.padding = "0";
btn.style.lineHeight = "24px";
btn.style.transition = "transform .15s 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)"), 150);
window.location.href = newUrl;
});
});
observer.observe(document, { childList: true, subtree: true });
})();