Add script.js
Signed-off-by: baalajimaestro <me@baalajimaestro.me>
This commit is contained in:
commit
51f68152a3
1 changed files with 88 additions and 0 deletions
88
script.js
Normal file
88
script.js
Normal file
|
@ -0,0 +1,88 @@
|
|||
// ==UserScript==
|
||||
// @name Privacy Redirector
|
||||
// @namespace http://tampermonkey.net/
|
||||
// @version 0.1
|
||||
// @description Redirects sites to privacy-focused frontends
|
||||
// @author baalajimaestro
|
||||
// @match https://youtube.com/*
|
||||
// @match https://youtu.be/*
|
||||
// @match https://www.youtube.com/*
|
||||
// @match https://www.youtu.be/*
|
||||
// @match https://twitter.com/*
|
||||
// @match https://x.com/*
|
||||
// @match https://www.x.com/*
|
||||
// @match https://www.twitter.com/*
|
||||
// @match https://stackoverflow.com/*
|
||||
// @match https://www.stackoverflow.com/*
|
||||
// @match https://reddit.com/*
|
||||
// @match https://www.reddit.com/*
|
||||
// @match https://old.reddit.com/*
|
||||
// @match https://new.reddit.com/*
|
||||
// @match https://quora.com/*
|
||||
// @match https://www.quora.com/*
|
||||
// @icon https://baalajimaestro.me/favicon.ico
|
||||
// @grant none
|
||||
// ==/UserScript==
|
||||
|
||||
// our document location
|
||||
let link = document.location.href;
|
||||
|
||||
// regexes
|
||||
const re_yt =
|
||||
/^(?:(?:https|http):\/\/)?(?:www\.)?(?:youtube\.com|youtu\.be).*(?<=\/|v\/|u\/|embed\/|shorts\/|watch\?v=)(?<!\/user\/)(?<id>[\w\-]{11})(?=\?|&|$)/;
|
||||
const re_twt =
|
||||
/^(?:https?:\/\/(?:twitter|x)\.com)(?<url>\/(?:#!\/)?(\w+)\/status(es)?\/(\d+))/;
|
||||
const re_soflow =
|
||||
/^https?:\/\/stackoverflow\.com(?<url>\/questions\/\d+\/[^\/\s]*)/;
|
||||
const re_reddit =
|
||||
/^https?:\/\/(?:www\.)?(?:old\.)?reddit\.com(?<url>\/r\/\w+\/comments\/\w+\/[^/?#]+)/;
|
||||
const re_quora = /https:\/\/www\.quora\.com(?<url>\/.*)/;
|
||||
|
||||
// redirectors
|
||||
const inv = "//invidious.baalajimaestro.me";
|
||||
const nitter = "//nitter.net";
|
||||
const oflow = "//overflow.baalajimaestro.me";
|
||||
const lr = "//libreddit.baalajimaestro.me";
|
||||
const qtr = "//quetre.baalajimaestro.me";
|
||||
|
||||
// handle dynamic pages
|
||||
const observer = new MutationObserver(function (mutations) {
|
||||
mutations.forEach(function (mutation) {
|
||||
if (link != document.location.href) {
|
||||
link = document.location.href;
|
||||
handler();
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
observer.observe(document.body, {
|
||||
childList: true,
|
||||
subtree: true,
|
||||
});
|
||||
|
||||
//universal handler to handle all sites
|
||||
function handler() {
|
||||
if (re_yt.test(link)) {
|
||||
window.location.replace(
|
||||
inv + "/watch?v=" + window.location.href.match(re_yt).groups.id,
|
||||
);
|
||||
} else if (re_twt.test(link)) {
|
||||
window.location.replace(
|
||||
nitter + window.location.href.match(re_twt).groups.url,
|
||||
);
|
||||
} else if (re_reddit.test(link)) {
|
||||
window.location.replace(
|
||||
lr + window.location.href.match(re_reddit).groups.url,
|
||||
);
|
||||
} else if (re_soflow.test(link)) {
|
||||
window.location.replace(
|
||||
oflow + window.location.href.match(re_soflow).groups.url,
|
||||
);
|
||||
} else if (re_quora.test(link)) {
|
||||
window.location.replace(
|
||||
qtr + window.location.href.match(re_quora).groups.url,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
handler();
|
Loading…
Reference in a new issue