Update background.js
This commit is contained in:
parent
4bf5f20ad4
commit
a69798f525
|
@ -129,12 +129,25 @@ const layers = {
|
||||||
traffic: "S", // not implemented on OSM, default to standard.
|
traffic: "S", // not implemented on OSM, default to standard.
|
||||||
bicycling: "C",
|
bicycling: "C",
|
||||||
};
|
};
|
||||||
|
const notPrivateSearchEngine = [
|
||||||
|
"google.com",
|
||||||
|
"google.co.jp",
|
||||||
|
"www.google.com",
|
||||||
|
"www.google.co.jp",
|
||||||
|
];
|
||||||
|
const privateSearchEngine = [
|
||||||
|
{ link: "https://duckduckgo.com", q: "/" },
|
||||||
|
{ link: "https://startpage.com", q: "/search/" },
|
||||||
|
{ link: "https://www.qwant.com", q: "/" },
|
||||||
|
{ link: "https://www.mojeek.com", q: "/search" },
|
||||||
|
];
|
||||||
|
|
||||||
let disableNitter;
|
let disableNitter;
|
||||||
let disableInvidious;
|
let disableInvidious;
|
||||||
let disableBibliogram;
|
let disableBibliogram;
|
||||||
let disableOsm;
|
let disableOsm;
|
||||||
let disableOldReddit;
|
let disableOldReddit;
|
||||||
|
let disableSearchEngine;
|
||||||
let nitterInstance;
|
let nitterInstance;
|
||||||
let invidiousInstance;
|
let invidiousInstance;
|
||||||
let bibliogramInstance;
|
let bibliogramInstance;
|
||||||
|
@ -172,6 +185,7 @@ browser.storage.sync.get(
|
||||||
"disableBibliogram",
|
"disableBibliogram",
|
||||||
"disableOsm",
|
"disableOsm",
|
||||||
"disableOldReddit",
|
"disableOldReddit",
|
||||||
|
"disableSearchEngine",
|
||||||
"alwaysProxy",
|
"alwaysProxy",
|
||||||
"onlyEmbeddedVideo",
|
"onlyEmbeddedVideo",
|
||||||
"videoQuality",
|
"videoQuality",
|
||||||
|
@ -192,6 +206,7 @@ browser.storage.sync.get(
|
||||||
disableBibliogram = result.disableBibliogram;
|
disableBibliogram = result.disableBibliogram;
|
||||||
disableOsm = result.disableOsm;
|
disableOsm = result.disableOsm;
|
||||||
disableOldReddit = result.disableOldReddit;
|
disableOldReddit = result.disableOldReddit;
|
||||||
|
disableSearchEngine = result.disableSearchEngine;
|
||||||
nitterInstance = result.nitterInstance;
|
nitterInstance = result.nitterInstance;
|
||||||
invidiousInstance = result.invidiousInstance;
|
invidiousInstance = result.invidiousInstance;
|
||||||
bibliogramInstance = result.bibliogramInstance;
|
bibliogramInstance = result.bibliogramInstance;
|
||||||
|
@ -254,6 +269,9 @@ browser.storage.onChanged.addListener((changes) => {
|
||||||
if ("disableOldReddit" in changes) {
|
if ("disableOldReddit" in changes) {
|
||||||
disableOldReddit = changes.disableOldReddit.newValue;
|
disableOldReddit = changes.disableOldReddit.newValue;
|
||||||
}
|
}
|
||||||
|
if ("disableSearchEngine" in changes) {
|
||||||
|
disableSearchEngine = changes.disableSearchEngine.newValue;
|
||||||
|
}
|
||||||
if ("alwaysProxy" in changes) {
|
if ("alwaysProxy" in changes) {
|
||||||
alwaysProxy = changes.alwaysProxy.newValue;
|
alwaysProxy = changes.alwaysProxy.newValue;
|
||||||
}
|
}
|
||||||
|
@ -569,6 +587,28 @@ function redirectReddit(url, initiator, type) {
|
||||||
return `${oldRedditView}${url.pathname}${url.search}`;
|
return `${oldRedditView}${url.pathname}${url.search}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function redirectSearchEngine(url, initiator) {
|
||||||
|
if (disableSearchEngine || isException(url, initiator)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
if (url.pathname.includes("/home")) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
if (url.pathname.includes("search")) {
|
||||||
|
searchEngine =
|
||||||
|
searchEngineInstance || getRandomInstance(privateSearchEngine);
|
||||||
|
search = "";
|
||||||
|
url.search
|
||||||
|
.slice(1)
|
||||||
|
.split("&")
|
||||||
|
.forEach(function (input) {
|
||||||
|
if (input.startsWith("q=")) search = input;
|
||||||
|
});
|
||||||
|
console.log("search: ", search);
|
||||||
|
return `${searchEngine.link}${searchEngine.q}?${search}`;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
browser.webRequest.onBeforeRequest.addListener(
|
browser.webRequest.onBeforeRequest.addListener(
|
||||||
(details) => {
|
(details) => {
|
||||||
const url = new URL(details.url);
|
const url = new URL(details.url);
|
||||||
|
@ -602,6 +642,10 @@ browser.webRequest.onBeforeRequest.addListener(
|
||||||
redirect = {
|
redirect = {
|
||||||
redirectUrl: redirectReddit(url, initiator, details.type),
|
redirectUrl: redirectReddit(url, initiator, details.type),
|
||||||
};
|
};
|
||||||
|
} else if (notPrivateSearchEngine.includes(url.host)) {
|
||||||
|
redirect = {
|
||||||
|
redirectUrl: redirectSearchEngine(url, initiator),
|
||||||
|
};
|
||||||
}
|
}
|
||||||
if (redirect && redirect.redirectUrl) {
|
if (redirect && redirect.redirectUrl) {
|
||||||
console.info(
|
console.info(
|
||||||
|
|
Loading…
Reference in New Issue