Converts Twitter links to Nitter ones
当前为
// ==UserScript==
// @name Nitter Teleporter
// @namespace lousando
// @match https://*/*
// @match http://*/*
// @exclude-match https://nitter.net*
// @run-at document-idle
// @version 1.0.1
// @author lousando
// @description Converts Twitter links to Nitter ones
// @grant GM_getValue
// @require https://cdn.jsdelivr.net/npm/@violentmonkey/dom@2
// ==/UserScript==
// allow for overriding of Nitter instance
const nitterDomain = GM_getValue("nitter_domain", "nitter.net");
VM.observe(document.body, () => {
const twitterRegex = /https?:\/\/twitter\.com?/i;
const shortTwitterRegex = /https?:\/\/t\.co/i;
// links
Array.from(document.body.querySelectorAll("a[href]")).filter(link => {
return twitterRegex.test(link.href);
}).forEach(link => {
link.innerText = link.innerText.replace(twitterRegex, nitterDomain);
link.setAttribute("href", link.href.replace(twitterRegex, nitterDomain));
});
Array.from(document.body.querySelectorAll("a[href]")).filter(link => {
return shortTwitterRegex.test(link.href);
}).forEach(link => {
// expand link
fetch(link.href).then(r => r.text())
.then(response => {
const domParser = new DOMParser();
const doc = domparser.parseFromString(response, "text/xml")
link.innerText = link.innerText.replace(shortTwitterRegex, nitterDomain);
link.setAttribute("href", link.href.replace(shortTwitterRegex, nitterDomain));
});
});
});