🏠 返回首頁 

Automatic Nitter Quota & Error Redirector

Automatically redirects to another Nitter instance if the one you're directed to has reached its rate limit/quota or has an error.


Install this script?
// ==UserScript==
// @name         Automatic Nitter Quota & Error Redirector
// @namespace    happyviking
// @version      1.5.0
// @grant        none
// @run-at       document-end
// @license      MIT
// @description  Automatically redirects to another Nitter instance if the one you're directed to has reached its rate limit/quota or has an error.
// @icon         https://upload.wikimedia.org/wikipedia/commons/thumb/e/ed/Nitter_logo.svg/####px-Nitter_logo.svg.png
// @author       HappyViking
// <<INSTANCES START HERE>>
// @match https://lightbrd.com/*
// @match https://nitter.net/*
// @match https://nitter.poast.org/*
// @match https://nitter.privacydev.net/*
// @match https://nitter.privacyredirect.com/*
// @match https://nitter.space/*
// @match https://xcancel.com/*
// @match https://nitter.lucabased.xyz/*
// <<INSTANCES END HERE>>
// ==/UserScript==
function tryNewInstance(messageHolder) {
const addedMessage = document.createElement("p")
addedMessage.textContent = "Redirecting you to new instance..."
messageHolder.appendChild(addedMessage)
location.replace('https://farside.link/nitter/' + window.location.pathname + window.location.search);
}
function checkForRateLimit() {
const errorPanel = document.getElementsByClassName("error-panel").item(0)
if (!errorPanel) return;
const errorMessage = errorPanel.querySelector("span")?.innerHTML
if (!errorMessage) return
if (errorMessage.includes("Instance has been rate limited.")) {
tryNewInstance(errorPanel)
}
}
function checkFor429() {
const centerPanel = document.querySelector("center")
if (!centerPanel) return
const errorMessage = centerPanel.querySelector("h1")?.innerHTML
if (!errorMessage) return
if (errorMessage.includes("429 Too Many Requests")) {
tryNewInstance(centerPanel)
}
}
checkForRateLimit()
checkFor429()