aboutsummaryrefslogtreecommitdiffstats
path: root/src/assets
diff options
context:
space:
mode:
authorManeraKai <manerakai@protonmail.com>2022-05-03 16:45:14 +0300
committerManeraKai <manerakai@protonmail.com>2022-05-03 16:45:29 +0300
commita78d6cdd04d491fcc773a4530d7887eee2ba4a59 (patch)
tree4784be6bdd47a0da9af535961a90e26e02393ae3 /src/assets
parentUpdate README.md (diff)
downloadlibredirect-a78d6cdd04d491fcc773a4530d7887eee2ba4a59.zip
Restructuring and simplifying code #229
Diffstat (limited to 'src/assets')
-rw-r--r--src/assets/javascripts/helpers/common.js115
-rw-r--r--src/assets/javascripts/helpers/imgur.js198
-rw-r--r--src/assets/javascripts/helpers/instagram.js168
-rw-r--r--src/assets/javascripts/helpers/reddit.js1
-rw-r--r--src/assets/javascripts/helpers/youtube/invidious.js133
-rw-r--r--src/assets/javascripts/helpers/youtube/options.js223
-rw-r--r--src/assets/javascripts/helpers/youtube/piped-preferences.js52
-rw-r--r--src/assets/javascripts/helpers/youtube/piped.js37
-rw-r--r--src/assets/javascripts/helpers/youtube/pipedMaterial-preferences.js35
-rw-r--r--src/assets/javascripts/helpers/youtube/pipedMaterial.js31
-rw-r--r--src/assets/javascripts/helpers/youtube/youtube.js506
11 files changed, 542 insertions, 957 deletions
diff --git a/src/assets/javascripts/helpers/common.js b/src/assets/javascripts/helpers/common.js
index 93707dcc..b2a91b20 100644
--- a/src/assets/javascripts/helpers/common.js
+++ b/src/assets/javascripts/helpers/common.js
@@ -50,7 +50,19 @@ async function updateInstances() {
const instances = JSON.parse(request.responseText);
- youtubeHelper.setInvidiousRedirects(instances.invidious);
+ brwoser.storage.local.get(
+ [
+ 'youtubeRedirects'
+ ],
+ r =>
+ brwoser.storage.local.set({
+ youtubeRedirects: {
+ 'invidious': instances.invidious,
+ 'piped': r.youtubeRedirects.piped,
+ 'pipedMaterial': r.youtubeRedirects.pipedMaterial
+ },
+ })
+ )
twitterHelper.setRedirects(instances.nitter);
@@ -80,10 +92,6 @@ async function updateInstances() {
return false;
}
-function isFirefox() {
- return typeof InstallTrigger !== "undefined";
-}
-
function protocolHost(url) {
if (url.username && url.password) return `${url.protocol}//${url.username}:${url.password}@${url.host}`;
return `${url.protocol}//${url.host}`;
@@ -94,18 +102,17 @@ async function processDefaultCustomInstances(
protocol,
nameHelper,
document,
- getNameRedirectsChecks,
- setNameRedirectsChecks,
- getNameCustomRedirects,
- setNameCustomRedirects,
- instancesLatency,
) {
- instancesLatency = instancesLatency ?? [];
+ function camelCase(str) {
+ return str.charAt(0).toUpperCase() + str.slice(1);
+ }
+ let latencyKey = `${name}Latency`;
+ let instancesLatency;
+ await browser.storage.local.get(latencyKey, r => instancesLatency = r[latencyKey] ?? []);
let nameProtocolElement = document.getElementById(name).getElementsByClassName(protocol)[0];
let nameCustomInstances = [];
let nameCheckListElement = nameProtocolElement.getElementsByClassName('checklist')[0];
- let nameDefaultRedirects;
await initCloudflareList();
@@ -122,59 +129,103 @@ async function processDefaultCustomInstances(
nameProtocolElement.getElementsByClassName('toogle-all')[0].checked = isTrue;
}
- nameDefaultRedirects = getNameRedirectsChecks();
+ let nameDefaultRedirects;
+
+ let redirectsChecks = `${name}${camelCase(protocol)}RedirectsChecks`;
+ let customRedirects = `${name}${camelCase(protocol)}CustomRedirects`;
+
+ async function setRedirectsChecks(val) {
+ await browser.storage.local.set({ [redirectsChecks]: val });
+ }
+
+ async function setCustom(val) {
+ await browser.storage.local.set({ [customRedirects]: val });
+ }
+
+ async function getFromStorage() {
+ return new Promise(async resolve => {
+ nameHelper.init().then(() =>
+ browser.storage.local.get(
+ [
+ redirectsChecks,
+ customRedirects,
+ ],
+ r => {
+ nameDefaultRedirects = r[redirectsChecks];
+ nameCustomInstances = r[customRedirects];
+ resolve();
+ }
+ )
+ )
+ })
+ }
+ await getFromStorage();
+
nameCheckListElement.innerHTML =
[
- `<div><x data-localise="__MSG_toggleAll__">Toggle All</x><input type="checkbox" class="toogle-all" /></div>`,
- ...nameHelper.getRedirects()[name][protocol].map(x => `<div><x>${x}${cloudflareList.includes(x) ? ' <span style="color:red;">cloudflare</span>' : ''} ${x in instancesLatency ? '<span style="color:' + (instancesLatency[x] <= 1000 ? "green" : instancesLatency[x] <= 2000 ? "orange" : "red") + ';">' + (instancesLatency[x] == 5000 ? '5000ms+' : instancesLatency[x] + 'ms') + '</span>' : ''}</x > <input type="checkbox" class="${x}" /></div > `),
+ `<div>
+ <x data-localise="__MSG_toggleAll__">Toggle All</x>
+ <input type="checkbox" class="toogle-all"/>
+ </div>`,
+ ...nameHelper.getRedirects()[name][protocol].map(
+ x => {
+ let cloudflare = cloudflareList.includes(x) ? ' <span style="color:red;">cloudflare</span>' : '';
+
+ let latencyColor = (instancesLatency[x] <= 1000 ? "green" : instancesLatency[x] <= 2000 ? "orange" : "red");
+ let latencyLimit = (instancesLatency[x] == 5000 ? '5000ms+' : instancesLatency[x] + 'ms')
+ let latency = x in instancesLatency ? '<span style="color:' + latencyColor + ';">' + latencyLimit + '</span>' : '';
+
+ return `<div><x>${x}${cloudflare} ${latency}</x><input type="checkbox" class="${x}"/></div>`;
+ }
+ ),
].join('\n<hr>\n');
localise.localisePage();
calcNameCheckBoxes();
- nameProtocolElement.getElementsByClassName('toogle-all')[0].addEventListener("change", event => {
+ nameProtocolElement.getElementsByClassName('toogle-all')[0].addEventListener("change", async event => {
if (event.target.checked)
nameDefaultRedirects = [...nameHelper.getRedirects()[name][protocol]];
else
nameDefaultRedirects = [];
- setNameRedirectsChecks(nameDefaultRedirects);
+
+ await setRedirectsChecks(nameDefaultRedirects);
calcNameCheckBoxes();
});
for (let element of nameCheckListElement.getElementsByTagName('input')) {
if (element.className != 'toogle-all')
- nameProtocolElement.getElementsByClassName(element.className)[0].addEventListener("change", event => {
+ nameProtocolElement.getElementsByClassName(element.className)[0].addEventListener("change", async event => {
if (event.target.checked)
nameDefaultRedirects.push(element.className)
else {
let index = nameDefaultRedirects.indexOf(element.className);
if (index > -1) nameDefaultRedirects.splice(index, 1);
}
- setNameRedirectsChecks(nameDefaultRedirects);
+ await setRedirectsChecks(nameDefaultRedirects);
calcNameCheckBoxes();
});
}
- nameCustomInstances = getNameCustomRedirects();
function calcNameCustomInstances() {
nameProtocolElement.getElementsByClassName('custom-checklist')[0].innerHTML =
nameCustomInstances.map(
- x => `<div> ${x} <button class="add clear-${x}">
- <svg xmlns="http://www.w3.org/2000/svg" height="20px" viewBox="0 0 24 24" width="20px"
- fill="currentColor">
- <path d="M0 0h24v24H0V0z" fill="none" />
- <path d="M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41z" />
- </svg>
-</button>
- </div >
- <hr>`
+ x => `<div>
+ ${x}
+ <button class="add clear-${x}">
+ <svg xmlns="http://www.w3.org/2000/svg" height="20px" viewBox="0 0 24 24" width="20px" fill="currentColor">
+ <path d="M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41z" />
+ </svg>
+ </button>
+ </div>
+ <hr>`
).join('\n');
for (const item of nameCustomInstances) {
nameProtocolElement.getElementsByClassName(`clear-${item}`)[0].addEventListener("click", () => {
let index = nameCustomInstances.indexOf(item);
if (index > -1) nameCustomInstances.splice(index, 1);
- setNameCustomRedirects(nameCustomInstances);
+ setCustom(nameCustomInstances);
calcNameCustomInstances();
});
}
@@ -188,13 +239,14 @@ async function processDefaultCustomInstances(
if (nameCustomInstanceInput.validity.valid && !nameHelper.getRedirects()[name][protocol].includes(protocolHostVar)) {
if (!nameCustomInstances.includes(protocolHostVar)) {
nameCustomInstances.push(protocolHostVar)
- setNameCustomRedirects(nameCustomInstances);
+ setCustom(nameCustomInstances);
nameCustomInstanceInput.value = '';
}
calcNameCustomInstances();
}
})
}
+
function isRtl() {
return ["ar", "iw", "ku", "fa", "ur"].includes(browser.i18n.getUILanguage())
}
@@ -243,7 +295,6 @@ export default {
getRandomInstance,
updateInstances,
protocolHost,
- isFirefox,
processDefaultCustomInstances,
isRtl,
testLatency,
diff --git a/src/assets/javascripts/helpers/imgur.js b/src/assets/javascripts/helpers/imgur.js
index a376e404..7a2daa43 100644
--- a/src/assets/javascripts/helpers/imgur.js
+++ b/src/assets/javascripts/helpers/imgur.js
@@ -12,16 +12,6 @@ let redirects = {
}
}
const getRedirects = () => redirects;
-const getCustomRedirects = function () {
- return {
- "rimgo": {
- "normal": [...rimgoNormalRedirectsChecks, ...rimgoNormalCustomRedirects],
- "tor": [...rimgoTorRedirectsChecks, ...rimgoTorCustomRedirects],
- "i2p": [...rimgoI2pRedirectsChecks, ...rimgoI2pCustomRedirects]
- },
- };
-};
-
function setRedirects(val) {
redirects.rimgo = val;
browser.storage.local.set({ imgurRedirects: redirects })
@@ -31,103 +21,50 @@ function setRedirects(val) {
var index = rimgoNormalRedirectsChecks.indexOf(item);
if (index !== -1) rimgoNormalRedirectsChecks.splice(index, 1);
}
- setRimgoNormalRedirectsChecks(rimgoNormalRedirectsChecks);
+ browser.storage.local.set({rimgoNormalRedirectsChecks});
for (const item of rimgoTorRedirectsChecks)
if (!redirects.rimgo.tor.includes(item)) {
var index = rimgoTorRedirectsChecks.indexOf(item);
if (index !== -1) rimgoTorRedirectsChecks.splice(index, 1);
}
- setRimgoTorRedirectsChecks(rimgoTorRedirectsChecks);
+ browser.storage.local.set({rimgoTorRedirectsChecks});
for (const item of rimgoI2pRedirectsChecks)
if (!redirects.rimgo.i2p.includes(item)) {
var index = rimgoI2pRedirectsChecks.indexOf(item);
if (index !== -1) rimgoI2pRedirectsChecks.splice(index, 1);
}
- setRimgoI2pRedirectsChecks(rimgoI2pRedirectsChecks);
-}
+ browser.storage.local.set({rimgoI2pRedirectsChecks});
-let disable;
-const getDisable = () => disable;
-function setDisable(val) {
- disable = val;
- browser.storage.local.set({ disableImgur: disable })
}
+let disable;
let protocol;
-const getProtocol = () => protocol;
-function setProtocol(val) {
- protocol = val;
- browser.storage.local.set({ imgurProtocol: val })
- console.log("imgurProtocol: ", val)
-}
let rimgoNormalRedirectsChecks;
-const getRimgoNormalRedirectsChecks = () => rimgoNormalRedirectsChecks;
-function setRimgoNormalRedirectsChecks(val) {
- rimgoNormalRedirectsChecks = val;
- browser.storage.local.set({ rimgoNormalRedirectsChecks })
- console.log("rimgoNormalRedirectsChecks: ", val)
-}
-
let rimgoTorRedirectsChecks;
-const getRimgoTorRedirectsChecks = () => rimgoTorRedirectsChecks;
-function setRimgoTorRedirectsChecks(val) {
- rimgoTorRedirectsChecks = val;
- browser.storage.local.set({ rimgoTorRedirectsChecks })
- console.log("rimgoTorRedirectsChecks: ", val)
-}
-
let rimgoI2pRedirectsChecks;
-const getRimgoI2pRedirectsChecks = () => rimgoI2pRedirectsChecks;
-function setRimgoI2pRedirectsChecks(val) {
- rimgoI2pRedirectsChecks = val;
- browser.storage.local.set({ rimgoI2pRedirectsChecks })
- console.log("rimgoI2pRedirectsChecks: ", val)
-}
-
let rimgoNormalCustomRedirects = [];
-const getRimgoNormalCustomRedirects = () => rimgoNormalCustomRedirects;
-function setRimgoNormalCustomRedirects(val) {
- rimgoNormalCustomRedirects = val;
- browser.storage.local.set({ rimgoNormalCustomRedirects })
- console.log("rimgoNormalCustomRedirects: ", val)
-}
-
let rimgoTorCustomRedirects = [];
-const getRimgoTorCustomRedirects = () => rimgoTorCustomRedirects;
-function setRimgoTorCustomRedirects(val) {
- rimgoTorCustomRedirects = val;
- browser.storage.local.set({ rimgoTorCustomRedirects })
- console.log("rimgoTorCustomRedirects: ", val)
-}
-
let rimgoI2pCustomRedirects = [];
-const getRimgoI2pCustomRedirects = () => rimgoI2pCustomRedirects;
-function setRimgoI2pCustomRedirects(val) {
- rimgoI2pCustomRedirects = val;
- browser.storage.local.set({ rimgoI2pCustomRedirects })
- console.log("rimgoI2pCustomRedirects: ", val)
-}
-function isImgur(url, initiator) {
- if (disable) return false;
- if (url.pathname == "/") return false;
- if (
- initiator &&
- ([...redirects.rimgo.normal, ...rimgoNormalCustomRedirects].includes(initiator.origin) || targets.test(initiator.host))
- ) return false;
- return targets.test(url.href);
-}
-
-function redirect(url, type) {
+function redirect(url, type, initiator) {
// https://imgur.com/gallery/s4WXQmn
// https://imgur.com/a/H8M4rcp
// https://imgur.com/gallery/gYiQLWy
// https://imgur.com/gallery/cTRwaJU
// https://i.imgur.com/CFSQArP.jpeg
+ if (disable) return;
+ if (url.pathname == "/") false;
+ if (
+ initiator &&
+ ([...redirects.rimgo.normal, ...rimgoNormalCustomRedirects].includes(initiator.origin) || targets.test(initiator.host))
+ ) return;
+ if (!targets.test(url.href)) return;
+
+
if (![
"main_frame",
"sub_frame",
@@ -191,79 +128,72 @@ function switchInstance(url) {
return `${randomInstance}${url.pathname}${url.search}`;
}
-async function init() {
- return new Promise(resolve => {
- fetch('/instances/data.json')
- .then(response => response.text())
- .then(text => {
- let data = JSON.parse(text);
- browser.storage.local.get(
- [
- "disableImgur",
- "imgurRedirects",
-
- "rimgoNormalRedirectsChecks",
- "rimgoNormalCustomRedirects",
- "rimgoTorRedirectsChecks",
- "rimgoTorCustomRedirects",
- "rimgoI2pRedirectsChecks",
- "rimgoI2pCustomRedirects",
+async function initDefaults() {
+ return new Promise(async resolve => {
+ fetch('/instances/data.json').then(response => response.text()).then(async data => {
+ let dataJson = JSON.parse(data);
+ redirects.rimgo = dataJson.rimgo
+ await browser.storage.local.set({
+ disableImgur: false,
+ imgurProtocol: 'normal',
+ imgurRedirects: {
+ 'rimgo': redirects.rimgo,
+ },
- "imgurProtocol",
- ],
- r => {
- disable = r.disableImgur ?? false;
+ rimgoNormalRedirectsChecks: [...redirects.rimgo.normal],
+ rimgoNormalCustomRedirects: [],
- protocol = r.imgurProtocol ?? "normal";
+ rimgoTorRedirectsChecks: [...redirects.rimgo.tor],
+ rimgoTorCustomRedirects: [],
- redirects.rimgo = data.rimgo;
- if (r.imgurRedirects) redirects = r.imgurRedirects;
+ rimgoI2pRedirectsChecks: [...redirects.rimgo.i2p],
+ rimgoI2pCustomRedirects: [],
+ });
+ resolve();
+ });
+ })
+}
- rimgoNormalRedirectsChecks = r.rimgoNormalRedirectsChecks ?? [...redirects.rimgo.normal];
- rimgoNormalCustomRedirects = r.rimgoNormalCustomRedirects ?? [];
+async function init() {
+ return new Promise(resolve => {
+ browser.storage.local.get(
+ [
+ "disableImgur",
+ "imgurRedirects",
+ "imgurProtocol",
- rimgoTorRedirectsChecks = r.rimgoTorRedirectsChecks ?? [...redirects.rimgo.tor];
- rimgoTorCustomRedirects = r.rimgoTorCustomRedirects ?? [];
+ "rimgoNormalRedirectsChecks",
+ "rimgoNormalCustomRedirects",
+ "rimgoTorRedirectsChecks",
+ "rimgoTorCustomRedirects",
+ "rimgoI2pRedirectsChecks",
+ "rimgoI2pCustomRedirects",
+ ],
+ r => {
+ disable = r.disableImgur;
+ protocol = r.imgurProtocol;
+ redirects = r.imgurRedirects;
- rimgoI2pRedirectsChecks = r.rimgoI2pRedirectsChecks ?? [...redirects.rimgo.i2p];
- rimgoI2pCustomRedirects = r.rimgoI2pCustomRedirects ?? [];
+ rimgoNormalRedirectsChecks = r.rimgoNormalRedirectsChecks;
+ rimgoNormalCustomRedirects = r.rimgoNormalCustomRedirects;
+ rimgoTorRedirectsChecks = r.rimgoTorRedirectsChecks;
+ rimgoTorCustomRedirects = r.rimgoTorCustomRedirects;
+ rimgoI2pRedirectsChecks = r.rimgoI2pRedirectsChecks;
+ rimgoI2pCustomRedirects = r.rimgoI2pCustomRedirects;
- resolve();
- }
- )
- });
+ resolve();
+ }
+ )
});
}
export default {
getRedirects,
- getCustomRedirects,
setRedirects,
- getDisable,
- setDisable,
-
-
- getProtocol,
- setProtocol,
-
- getRimgoNormalRedirectsChecks,
- setRimgoNormalRedirectsChecks,
- getRimgoTorRedirectsChecks,
- setRimgoTorRedirectsChecks,
- getRimgoI2pRedirectsChecks,
- setRimgoI2pRedirectsChecks,
-
- getRimgoNormalCustomRedirects,
- setRimgoNormalCustomRedirects,
- getRimgoTorCustomRedirects,
- setRimgoTorCustomRedirects,
- getRimgoI2pCustomRedirects,
- setRimgoI2pCustomRedirects,
-
redirect,
reverse,
- isImgur,
init,
+ initDefaults,
switchInstance,
};
diff --git a/src/assets/javascripts/helpers/instagram.js b/src/assets/javascripts/helpers/instagram.js
index f007fac3..26414070 100644
--- a/src/assets/javascripts/helpers/instagram.js
+++ b/src/assets/javascripts/helpers/instagram.js
@@ -12,13 +12,6 @@ let redirects = {
}
};
const getRedirects = () => redirects;
-const getCustomRedirects = function () {
- return {
- "bibliogram": {
- "normal": [...bibliogramNormalRedirectsChecks, ...bibliogramNormalCustomRedirects]
- },
- };
-};
function setRedirects(val) {
redirects.bibliogram = val;
browser.storage.local.set({ instagramRedirects: redirects })
@@ -28,40 +21,13 @@ function setRedirects(val) {
var index = bibliogramNormalRedirectsChecks.indexOf(item);
if (index !== -1) bibliogramNormalRedirectsChecks.splice(index, 1);
}
- setBibliogramNormalRedirectsChecks(bibliogramNormalRedirectsChecks);
+ browser.storage.local.set({ bibliogramNormalRedirectsChecks });
}
let bibliogramNormalRedirectsChecks;
-const getBibliogramNormalRedirectsChecks = () => bibliogramNormalRedirectsChecks;
-function setBibliogramNormalRedirectsChecks(val) {
- bibliogramNormalRedirectsChecks = val;
- browser.storage.local.set({ bibliogramNormalRedirectsChecks })
- console.log("bibliogramNormalRedirectsChecks: ", val)
-}
-
let bibliogramTorRedirectsChecks;
-const getBibliogramTorRedirectsChecks = () => bibliogramTorRedirectsChecks;
-function setBibliogramTorRedirectsChecks(val) {
- bibliogramTorRedirectsChecks = val;
- browser.storage.local.set({ bibliogramTorRedirectsChecks })
- console.log("bibliogramTorRedirectsChecks: ", val)
-}
-
let bibliogramNormalCustomRedirects = [];
-const getBibliogramNormalCustomRedirects = () => bibliogramNormalCustomRedirects;
-function setBibliogramNormalCustomRedirects(val) {
- bibliogramNormalCustomRedirects = val;
- browser.storage.local.set({ bibliogramNormalCustomRedirects })
- console.log("bibliogramNormalCustomRedirects: ", val)
-}
-
let bibliogramTorCustomRedirects = [];
-const getBibliogramTorCustomRedirects = () => bibliogramTorCustomRedirects;
-function setBibliogramTorCustomRedirects(val) {
- bibliogramTorCustomRedirects = val;
- browser.storage.local.set({ bibliogramTorCustomRedirects })
- console.log("bibliogramTorCustomRedirects: ", val)
-}
const reservedPaths = [
"u",
@@ -81,20 +47,8 @@ const bypassPaths = [
/\/(accounts\/|embeds?.js)/
];
-let disable;
-const getDisable = () => disable;
-function setDisable(val) {
- disable = val;
- browser.storage.local.set({ disableInstagram: disable })
-}
-
-let protocol;
-const getProtocol = () => protocol;
-function setProtocol(val) {
- protocol = val;
- browser.storage.local.set({ nitterProtocol: val })
- console.log("nitterProtocol: ", val)
-}
+let disable; //disableInstagram
+let protocol; //instagramProtocol
function redirect(url, type, initiator) {
if (disable) return;
@@ -189,10 +143,7 @@ let applyThemeToSites;
function initBibliogramCookies(url) {
let protocolHost = commonHelper.protocolHost(url);
browser.cookies.get(
- {
- url: protocolHost,
- name: "settings"
- },
+ { url: protocolHost, name: "settings" },
cookie => {
if (!cookie || !instancesCookies.includes(protocolHost)) {
console.log(`initing cookie for ${protocolHost}`);
@@ -211,89 +162,94 @@ function initBibliogramCookies(url) {
browser.storage.local.set({ instancesCookies })
}
}
- } else {
- console.log("cookie url", protocolHost);
- console.log("instancesCookies", instancesCookies);
- };
+ }
})
}
-async function init() {
- return new Promise((resolve) => {
- fetch('/instances/data.json').then(response => response.text()).then(data => {
+
+async function initDefaults() {
+ return new Promise(async resolve => {
+ fetch('/instances/data.json').then(response => response.text()).then(async data => {
let dataJson = JSON.parse(data);
- browser.storage.local.get(
- [
- "disableInstagram",
- "instagramRedirects",
+ redirects.bibliogram = dataJson.bibliogram;
+ await browser.storage.local.set({
+ disableInstagram: false,
+ instagramRedirects: {
+ 'bibliogram': redirects.bibliogram
+ },
- "theme",
- "applyThemeToSites",
+ theme: 'DEFAULT',
+ applyThemeToSites: false,
- "instancesCookies",
+ instancesCookies: [],
- "bibliogramNormalRedirectsChecks",
- "bibliogramTorRedirectsChecks",
+ bibliogramNormalRedirectsChecks: [...redirects.bibliogram.normal],
+ bibliogramTorRedirectsChecks: [],
- "bibliogramNormalCustomRedirects",
- "bibliogramTorCustomRedirects",
- "instagramProtocol"
- ],
- r => {
- disable = r.disableInstagram ?? false;
+ bibliogramNormalCustomRedirects: [...redirects.bibliogram.tor],
+ bibliogramTorCustomRedirects: [],
+ instagramProtocol: "normal",
+ })
+ resolve();
+ }
+ )
+ })
+}
- redirects.bibliogram = dataJson.bibliogram;
+async function init() {
+ return new Promise(resolve => {
+ browser.storage.local.get(
+ [
+ "disableInstagram",
+ "instagramRedirects",
- if (r.instagramRedirects) redirects = r.instagramRedirects
+ "theme",
+ "applyThemeToSites",
- theme = r.theme ?? 'DEFAULT';
- applyThemeToSites = r.applyThemeToSites ?? false;
+ "instancesCookies",
- instancesCookies = r.instancesCookies ?? [];
+ "bibliogramNormalRedirectsChecks",
+ "bibliogramTorRedirectsChecks",
- bibliogramNormalRedirectsChecks = r.bibliogramNormalRedirectsChecks ?? [...redirects.bibliogram.normal];
- bibliogramNormalCustomRedirects = r.bibliogramNormalCustomRedirects ?? [];
+ "bibliogramNormalCustomRedirects",
+ "bibliogramTorCustomRedirects",
+ "instagramProtocol"
+ ],
+ r => {
+ disable = r.disableInstagram;
+ if (r.instagramRedirects) redirects = r.instagramRedirects
- bibliogramTorRedirectsChecks = r.bibliogramTorRedirectsChecks ?? [...redirects.bibliogram.tor];
- bibliogramTorCustomRedirects = r.bibliogramTorCustomRedirects ?? [];
+ theme = r.theme;
+ applyThemeToSites = r.applyThemeToSites;
- protocol = r.instagramProtocol ?? "normal";
+ instancesCookies = r.instancesCookies;
- resolve();
- }
- )
- })
+ bibliogramNormalRedirectsChecks = r.bibliogramNormalRedirectsChecks;
+ bibliogramNormalCustomRedirects = r.bibliogramNormalCustomRedirects;
+
+ bibliogramTorRedirectsChecks = r.bibliogramTorRedirectsChecks;
+ bibliogramTorCustomRedirects = r.bibliogramTorCustomRedirects;
+
+ protocol = r.instagramProtocol;
+
+ resolve();
+ }
+ )
})
}
export default {
getRedirects,
- getCustomRedirects,
setRedirects,
- getDisable,
- setDisable,
-
reverse,
- getProtocol,
- setProtocol,
-
isBibliogram,
initBibliogramCookies,
- getBibliogramNormalRedirectsChecks,
- setBibliogramNormalRedirectsChecks,
- getBibliogramTorRedirectsChecks,
- setBibliogramTorRedirectsChecks,
-
- getBibliogramNormalCustomRedirects,
- setBibliogramNormalCustomRedirects,
- getBibliogramTorCustomRedirects,
- setBibliogramTorCustomRedirects,
-
redirect,
init,
+ initDefaults,
switchInstance,
};
diff --git a/src/assets/javascripts/helpers/reddit.js b/src/assets/javascripts/helpers/reddit.js
index cae152e9..ebb13ffa 100644
--- a/src/assets/javascripts/helpers/reddit.js
+++ b/src/assets/javascripts/helpers/reddit.js
@@ -393,6 +393,7 @@ function switchInstance(url) {
}
async function initDefaults() {
+ console.log('init redditDefault')
return new Promise(async resolve => {
fetch('/instances/data.json').then(response => response.text()).then(async data => {
let dataJson = JSON.parse(data);
diff --git a/src/assets/javascripts/helpers/youtube/invidious.js b/src/assets/javascripts/helpers/youtube/invidious.js
new file mode 100644
index 00000000..a8e215a2
--- /dev/null
+++ b/src/assets/javascripts/helpers/youtube/invidious.js
@@ -0,0 +1,133 @@
+"use strict";
+
+window.browser = window.browser || window.chrome;
+
+async function initDefaults() {
+ await browser.storage.local.set({
+ youtubeListen: false,
+ youtubeVolume: 100,
+ youtubeAutoplay: false,
+ invidiousAlwaysProxy: false,
+ invidiousQuality: 'hd720',
+ invidiousPlayerStyle: 'invidious',
+ invidiousVideoLoop: false,
+ invidiousContinueAutoplay: true,
+ invidiousContinue: false,
+ invidiousSpeed: '1.0',
+ invidiousQualityDash: 'auto',
+ invidiousComments: ['youtube', ''],
+ invidiousCaptions: ['', '', ''],
+ invidiousRelatedVideos: true,
+ invidiousAnnotations: false,
+ invidiousExtendDesc: false,
+ invidiousVrMode: true,
+ invidiousSavePlayerPos: false,
+ invidiousRegion: 'US',
+ invidiousDarkMode: '',
+ invidiousThinMode: false,
+ invidiousDefaultHome: 'Popular',
+ invidiousFeedMenuList: ['Popular', 'Trending']
+ })
+}
+
+async function initInvidiousCookies() {
+ console.log('initInvidiousCookies() starting')
+ await browser.storage.local.get(
+ [
+ "disableYoutube",
+ "youtubeFrontend",
+ "youtubeProtocol",
+
+ "enableYoutubeCustomSettings",
+
+ "invidiousNormalRedirectsChecks",
+ "invidiousNormalCustomRedirects",
+ "invidiousTorRedirectsChecks",
+ "invidiousTorCustomRedirects",
+
+ "youtubeListen",
+ "youtubeVolume",
+ "youtubeAutoplay",
+ "invidiousQuality",
+ "invidiousAlwaysProxy",
+ "invidiousQuality",
+ "invidiousPlayerStyle",
+ "invidiousVideoLoop",
+ "invidiousContinueAutoplay",
+ "invidiousContinue",
+ "invidiousSpeed",
+ "invidiousQualityDash",
+ "invidiousComments",
+ "invidiousCaptions",
+ "invidiousRelatedVideos",
+ "invidiousAnnotations",
+ "invidiousExtendDesc",
+ "invidiousVrMode",
+ "invidiousSavePlayerPos",
+ "invidiousRegion",
+ "invidiousDarkMode",
+ "invidiousThinMode",
+ "invidiousDefaultHome",
+ "invidiousFeedMenuList",
+ ],
+ r => {
+ if (!r.disableYoutube && r.youtubeFrontend == 'invidious' && r.enableYoutubeCustomSettings) {
+ let checkedInstances;
+ if (r.youtubeProtocol == 'normal')
+ checkedInstances = [...r.invidiousNormalRedirectsChecks, ...r.invidiousNormalCustomRedirects]
+ else if (r.youtubeProtocol == 'tor')
+ checkedInstances = [...r.invidiousTorRedirectsChecks, ...r.invidiousTorCustomRedirects]
+
+ for (const instanceUrl of checkedInstances)
+ browser.cookies.get(
+ { url: instanceUrl, name: "PREFS" },
+ cookie => {
+ let prefs = {};
+ if (cookie) {
+ prefs = JSON.parse(decodeURIComponent(cookie.value));
+ browser.cookies.remove({ url: instanceUrl, name: "PREFS" });
+ }
+
+ prefs.local = r.invidiousAlwaysProxy;
+ prefs.video_loop = r.invidiousVideoLoop;
+ prefs.continue_autoplay = r.invidiousContinueAutoplay;
+ prefs.continue = r.invidiousContinue;
+ prefs.listen = r.youtubeListen;
+ prefs.speed = parseFloat(r.invidiousSpeed);
+ prefs.quality = r.invidiousQuality;
+ prefs.quality_dash = r.invidiousQualityDash;
+
+ prefs.comments = r.invidiousComments;
+ prefs.captions = r.invidiousCaptions;
+
+ prefs.related_videos = r.invidiousRelatedVideos;
+ prefs.annotations = r.invidiousAnnotations
+ prefs.extend_desc = r.invidiousExtendDesc;
+ prefs.vr_mode = r.invidiousVrMode;
+ prefs.save_player_pos = r.invidiousSavePlayerPos;
+
+ prefs.volume = parseInt(r.youtubeVolume);
+ prefs.player_style = r.invidiousPlayerStyle;
+ prefs.autoplay = r.youtubeAutoplay;
+
+ prefs.region = r.invidiousRegion;
+ prefs.dark_mode = r.invidiousDarkMode;
+ prefs.thin_mode = r.invidiousThinMode;
+ prefs.default_home = r.invidiousDefaultHome;
+ prefs.feed_menu = r.invidiousFeedMenuList;
+
+ browser.cookies.set({
+ url: instanceUrl, name: "PREFS",
+ value: encodeURIComponent(JSON.stringify(prefs))
+ })
+ }
+ )
+ }
+ }
+ )
+}
+
+export default {
+ initDefaults,
+ initInvidiousCookies,
+} \ No newline at end of file
diff --git a/src/assets/javascripts/helpers/youtube/options.js b/src/assets/javascripts/helpers/youtube/options.js
deleted file mode 100644
index a5aa413d..00000000
--- a/src/assets/javascripts/helpers/youtube/options.js
+++ /dev/null
@@ -1,223 +0,0 @@
-"use strict";
-
-window.browser = window.browser || window.chrome;
-
-export let youtubeListen;
-export const getYoutubeListen = () => youtubeListen;
-
-export let volume;
-export const getVolume = () => volume;
-export function setVolume(val) {
- volume = val;
- browser.storage.local.set({ youtubeVolume: volume })
- console.log("youtubeVolume: ", volume)
-}
-
-export let youtubeAutoplay;
-export const getAutoplay = () => youtubeAutoplay;
-export function setAutoplay(val) {
- youtubeAutoplay = val;
- browser.storage.local.set({ youtubeAutoplay })
- console.log("youtubeAutoplay: ", youtubeAutoplay)
-}
-
-export let invidiousQuality;
-export const getInvidiousQuality = () => invidiousQuality;
-
-export let invidiousAlwaysProxy;
-export const getInvidiousAlwaysProxy = () => invidiousAlwaysProxy;
-
-export let invidiousPlayerStyle;
-export const getInvidiousPlayerStyle = () => invidiousPlayerStyle;
-
-export let invidiousVideoLoop;
-export const getInvidiousVideoLoop = () => invidiousVideoLoop;
-
-export let invidiousContinueAutoplay;
-export const getInvidiousContinueAutoplay = () => invidiousContinueAutoplay;
-
-export let invidiousContinue;
-export const getInvidiousContinue = () => invidiousContinue;
-
-export let invidiousSpeed;
-export const getInvidiousSpeed = () => invidiousSpeed;
-
-export let invidiousQualityDash;
-export const getInvidiousQualityDash = () => invidiousQualityDash;
-
-export let invidiousComments;
-export const getInvidiousComments = () => invidiousComments;
-
-export let invidiousCaptions;
-export const getInvidiousCaptions = () => invidiousCaptions;
-
-export let invidiousRelatedVideos;
-export const getInvidiousRelatedVideos = () => invidiousRelatedVideos;
-
-export let invidiousAnnotations;
-export const getInvidiousAnnotations = () => invidiousAnnotations;
-
-export let invidiousExtendDesc;
-export const getInvidiousExtendDesc = () => invidiousExtendDesc;
-
-export let invidiousVrMode;
-export const getInvidiousVrMode = () => invidiousVrMode;
-
-export let invidiousSavePlayerPos;
-export const getInvidiousSavePlayerPos = () => invidiousSavePlayerPos;
-
-export let invidiousRegion;
-export const getInvidiousRegion = () => invidiousRegion;
-
-export let invidiousDarkMode;
-export const getInvidiousDarkMode = () => invidiousDarkMode;
-
-export let invidiousThinMode;
-export const getInvidiousThinMode = () => invidiousThinMode;
-
-export let invidiousDefaultHome;
-export const getInvidiousDefaultHome = () => invidiousDefaultHome;
-
-export let invidiousFeedMenuList;
-export const getInvidiousFeedMenuList = () => invidiousFeedMenuList;
-
-export let pipedBufferGoal;
-export const getPipedBufferGoal = () => pipedBufferGoal;
-
-export let pipedComments;
-export const getPipedComments = () => pipedComments;
-
-export let pipedDisableLBRY;
-export const getPipedDisableLBRY = () => pipedDisableLBRY;
-
-export let pipedEnabledCodecs;
-export const getPipedEnabledCodecs = () => pipedEnabledCodecs;
-
-export let pipedHomepage;
-export const getPipedHomepage = () => pipedHomepage;
-
-export let pipedMinimizeDescription;
-export const getPipedMinimizeDescription = () => pipedMinimizeDescription;
-
-export let pipedProxyLBRY;
-export const getPipedProxyLBRY = () => pipedProxyLBRY;
-
-export let pipedQuality;
-export const getPipedQuality = () => pipedQuality;
-
-export let pipedRegion;
-export const getPipedRegion = () => pipedRegion;
-
-export let pipedSelectedSkip;
-export const getPipedSelectedSkip = () => pipedSelectedSkip;
-
-export let pipedSponsorblock;
-export const getPipedSponsorblock = () => pipedSponsorblock;
-
-export let pipedDdlTheme;
-export const getPipedDdlTheme = () => pipedDdlTheme;
-
-export let pipedWatchHistory;
-export const getPipedWatchHistory = () => pipedWatchHistory;
-
-export let pipedMaterialSkipToLastPoint;
-export const getPipedMaterialSkipToLastPoint = () => pipedMaterialSkipToLastPoint;
-
-export async function initOptions() {
- return new Promise(
- resolve => {
- browser.storage.local.get(
- [
- "youtubeListen",
- "youtubeVolume",
- "youtubeAutoplay",
-
- "invidiousQuality",
- "invidiousAlwaysProxy",
- "invidiousQuality",
- "invidiousPlayerStyle",
- "invidiousVideoLoop",
- "invidiousContinueAutoplay",
- "invidiousContinue",
- "invidiousSpeed",
- "invidiousQualityDash",
- "invidiousComments",
- "invidiousCaptions",
- "invidiousRelatedVideos",
- "invidiousAnnotations",
- "invidiousExtendDesc",
- "invidiousVrMode",
- "invidiousSavePlayerPos",
- "invidiousRegion",
- "invidiousDarkMode",
- "invidiousThinMode",
- "invidiousDefaultHome",
- "invidiousFeedMenuList",
-
- "pipedBufferGoal",
- "pipedComments",
- "pipedDisableLBRY",
- "pipedEnabledCodecs",
- "pipedHomepage",
- "pipedMinimizeDescription",
- "pipedProxyLBRY",
- "pipedQuality",
- "pipedRegion",
- "pipedSelectedSkip",
- "pipedSponsorblock",
- "pipedDdlTheme",
- "pipedWatchHistory",
-
- "pipedMaterialSkipToLastPoint",
- ],
- r => {
-
- youtubeListen = r.youtubeListen ?? false;
- volume = r.youtubeVolume ?? 100;
- youtubeAutoplay = r.youtubeAutoplay ?? false;
-
- invidiousVideoLoop = r.invidiousVideoLoop ?? false;
- invidiousAlwaysProxy = r.invidiousAlwaysProxy ?? false;
- invidiousPlayerStyle = r.invidiousPlayerStyle ?? 'invidious';
- invidiousQuality = r.invidiousQuality ?? 'hd720';
- invidiousContinueAutoplay = r.invidiousContinueAutoplay ?? true;
- invidiousContinue = r.invidiousContinue ?? false;
- invidiousSpeed = r.invidiousSpeed ?? '1.0';
- invidiousQualityDash = r.invidiousQualityDash ?? 'auto';
- invidiousComments = r.invidiousComments ?? ['youtube', ''];
- invidiousCaptions = r.invidiousCaptions ?? ['', '', ''];
- invidiousRelatedVideos = r.invidiousRelatedVideos ?? true;
- invidiousAnnotations = r.invidiousAnnotations ?? false;
- invidiousExtendDesc = r.invidiousExtendDesc ?? false;
- invidiousVrMode = r.invidiousVrMode ?? true;
- invidiousSavePlayerPos = r.invidiousSavePlayerPos ?? false;
-
- invidiousRegion = r.invidiousRegion ?? 'US';
- invidiousDarkMode = r.invidiousDarkMode ?? '';
- invidiousThinMode = r.invidiousThinMode ?? false;
- invidiousDefaultHome = r.invidiousDefaultHome ?? 'Popular';
- invidiousFeedMenuList = r.invidiousFeedMenuList ?? ['Popular', 'Trending'];
-
- pipedBufferGoal = r.pipedBufferGoal ?? 300;
- pipedComments = r.pipedComments ?? true;
- pipedDisableLBRY = r.pipedDisableLBRY ?? false;
- pipedEnabledCodecs = r.pipedEnabledCodecs ?? ["av1", "vp9", "avc"];
- pipedHomepage = r.pipedHomepage ?? "trending";
- pipedMinimizeDescription = r.pipedMinimizeDescription ?? false;
- pipedProxyLBRY = r.pipedProxyLBRY ?? false;
- pipedQuality = r.pipedQuality ?? 0;
- pipedRegion = r.pipedRegion ?? "US";
-
- pipedSelectedSkip = r.pipedSelectedSkip ?? ["sponsor", "interaction", "selfpromo", "music_offtopic"];
- pipedSponsorblock = r.pipedSponsorblock ?? true;
- pipedDdlTheme = r.pipedDdlTheme ?? 'auto';
- pipedWatchHistory = r.pipedWatchHistory ?? false;
-
- pipedMaterialSkipToLastPoint = r.pipedMaterialSkipToLastPoint ?? true;
-
- resolve();
- }
- )
- }
- )
-} \ No newline at end of file
diff --git a/src/assets/javascripts/helpers/youtube/piped-preferences.js b/src/assets/javascripts/helpers/youtube/piped-preferences.js
index 3f9572dc..c6a5707a 100644
--- a/src/assets/javascripts/helpers/youtube/piped-preferences.js
+++ b/src/assets/javascripts/helpers/youtube/piped-preferences.js
@@ -2,7 +2,6 @@ window.browser = window.browser || window.chrome;
browser.storage.local.get(
[
- "theme",
"youtubeVolume",
"youtubeAutoplay",
"youtubeListen",
@@ -22,40 +21,21 @@ browser.storage.local.get(
"pipedWatchHistory",
],
r => {
- let theme = r.theme ?? "dark";
- let youtubeAutoplay = r.youtubeAutoplay ?? false;
- let youtubeVolume = r.youtubeVolume ?? 100;
- let youtubeListen = r.youtubeListen ?? false;
-
- let pipedBufferGoal = r.pipedBufferGoal ?? 300;
- let pipedComments = r.pipedComments ?? true;
- let pipedDisableLBRY = r.pipedDisableLBRY ?? false;
- let pipedEnabledCodecs = r.pipedEnabledCodecs ?? ["av1", "vp9", "avc"];
- let pipedHomepage = r.pipedHomepage ?? "trending";
- let pipedMinimizeDescription = r.pipedMinimizeDescription ?? false;
- let pipedProxyLBRY = r.pipedProxyLBRY ?? false;
- let pipedQuality = r.pipedQuality ?? 0;
- let pipedRegion = r.pipedRegion ?? "US";
- let pipedSelectedSkip = r.pipedSelectedSkip ?? ["sponsor", "interaction", "selfpromo", "music_offtopic"];
- let pipedSponsorblock = r.pipedSponsorblock ?? true;
- let pipedDdlTheme = r.pipedDdlTheme ?? 'auto';
- let pipedWatchHistory = r.pipedWatchHistory ?? false;
-
- localStorage.setItem("bufferGoal", pipedBufferGoal.toString());
- localStorage.setItem("comments", pipedComments);
- localStorage.setItem("disableLBRY", pipedDisableLBRY);
- localStorage.setItem("enabledCodecs", pipedEnabledCodecs);
- localStorage.setItem("homepage", pipedHomepage);
- localStorage.setItem("listen", youtubeListen);
- localStorage.setItem("minimizeDescription", pipedMinimizeDescription);
- localStorage.setItem("playerAutoPlay", youtubeAutoplay);
- localStorage.setItem("proxyLBRY", pipedProxyLBRY);
- localStorage.setItem("quality", pipedQuality);
- localStorage.setItem("region", pipedRegion);
- localStorage.setItem("selectedSkip", pipedSelectedSkip);
- localStorage.setItem("sponsorblock", pipedSponsorblock);
- localStorage.setItem("theme", pipedDdlTheme);
- localStorage.setItem("volume", youtubeVolume / 100);
- localStorage.setItem("watchHistory", pipedWatchHistory);
+ localStorage.setItem("bufferGoal", r.pipedBufferGoal.toString());
+ localStorage.setItem("comments", r.pipedComments);
+ localStorage.setItem("disableLBRY", r.pipedDisableLBRY);
+ localStorage.setItem("enabledCodecs", r.pipedEnabledCodecs);
+ localStorage.setItem("homepage", r.pipedHomepage);
+ localStorage.setItem("listen", r.youtubeListen);
+ localStorage.setItem("minimizeDescription", r.pipedMinimizeDescription);
+ localStorage.setItem("playerAutoPlay", r.youtubeAutoplay);
+ localStorage.setItem("proxyLBRY", r.pipedProxyLBRY);
+ localStorage.setItem("quality", r.pipedQuality);
+ localStorage.setItem("region", r.pipedRegion);
+ localStorage.setItem("selectedSkip", r.pipedSelectedSkip);
+ localStorage.setItem("sponsorblock", r.pipedSponsorblock);
+ localStorage.setItem("theme", r.pipedDdlTheme);
+ localStorage.setItem("volume", r.youtubeVolume / 100);
+ localStorage.setItem("watchHistory", r.pipedWatchHistory);
}
) \ No newline at end of file
diff --git a/src/assets/javascripts/helpers/youtube/piped.js b/src/assets/javascripts/helpers/youtube/piped.js
new file mode 100644
index 00000000..10bec749
--- /dev/null
+++ b/src/assets/javascripts/helpers/youtube/piped.js
@@ -0,0 +1,37 @@
+async function initDefaults() {
+ await browser.storage.local.set({
+ youtubeVolume: 100,
+ youtubeAutoplay: false,
+ youtubeListen: false,
+
+ pipedBufferGoal: 300,
+ pipedComments: true,
+ pipedDisableLBRY: false,
+ pipedEnabledCodecs: ["av1", "vp9", "avc"],
+ pipedHomepage: "trending",
+ pipedMinimizeDescription: false,
+ pipedProxyLBRY: false,
+ pipedQuality: 0,
+ pipedRegion: "US",
+ pipedSelectedSkip: ["sponsor", "interaction", "selfpromo", "music_offtopic"],
+ pipedSponsorblock: true,
+ pipedDdlTheme: 'auto',
+ pipedWatchHistory: false,
+ })
+}
+
+function initPipedLocalStorage(tabId) {
+ if (!disable && frontend == 'piped' && enableCustomSettings)
+ browser.tabs.executeScript(
+ tabId,
+ {
+ file: "/assets/javascripts/helpers/youtube/piped-preferences.js",
+ runAt: "document_start"
+ }
+ );
+ }
+
+export default {
+ initDefaults,
+ initPipedLocalStorage
+} \ No newline at end of file
diff --git a/src/assets/javascripts/helpers/youtube/pipedMaterial-preferences.js b/src/assets/javascripts/helpers/youtube/pipedMaterial-preferences.js
index 312271fe..c669c47e 100644
--- a/src/assets/javascripts/helpers/youtube/pipedMaterial-preferences.js
+++ b/src/assets/javascripts/helpers/youtube/pipedMaterial-preferences.js
@@ -15,33 +15,22 @@ browser.storage.local.get(
"pipedMaterialSkipToLastPoint",
],
r => {
- let theme = r.theme ?? "dark";
- let youtubeAutoplay = r.youtubeAutoplay ?? false;
- let youtubeVolume = r.youtubeVolume ?? 100;
- let youtubeListen = r.youtubeListen ?? false;
-
- let pipedDisableLBRY = r.pipedDisableLBRY ?? false;
- let pipedProxyLBRY = r.pipedProxyLBRY ?? false;
- let pipedSelectedSkip = r.pipedSelectedSkip ?? [];
- let pipedSponsorblock = r.pipedSponsorblock ?? true;
-
- let pipedMaterialSkipToLastPoint = r.pipedMaterialSkipToLastPoint ?? true;
-
let prefs = {};
- if (localStorage.getItem("PREFERENCES")) prefs = JSON.parse(localStorage.getItem("PREFERENCES"));
+ if (localStorage.getItem("PREFERENCES"))
+ prefs = JSON.parse(localStorage.getItem("PREFERENCES"));
- if (theme == 'dark') prefs.darkMode = true;
- if (theme == 'light') prefs.darkMode = false;
+ if (r.theme == 'dark') prefs.darkMode = true;
+ if (r.theme == 'light') prefs.darkMode = false;
- prefs.volume = youtubeVolume / 100;
- prefs.playerAutoplay = youtubeAutoplay;
+ prefs.volume = r.youtubeVolume / 100;
+ prefs.playerAutoplay = r.youtubeAutoplay;
- prefs.listen = youtubeListen;
- prefs.disableLBRY = pipedDisableLBRY;
- prefs.proxyLBRY = pipedProxyLBRY;
- prefs.sponsorblock = pipedSponsorblock;
- prefs.skipToLastPoint = pipedMaterialSkipToLastPoint;
- prefs.selectedSkip = pipedSelectedSkip;
+ prefs.listen = r.youtubeListen;
+ prefs.disableLBRY = r.pipedDisableLBRY;
+ prefs.proxyLBRY = r.pipedProxyLBRY;
+ prefs.sponsorblock = r.pipedSponsorblock;
+ prefs.skipToLastPoint = r.pipedMaterialSkipToLastPoint;
+ prefs.selectedSkip = r.pipedSelectedSkip;
localStorage.setItem("PREFERENCES", JSON.stringify(prefs));
}
diff --git a/src/assets/javascripts/helpers/youtube/pipedMaterial.js b/src/assets/javascripts/helpers/youtube/pipedMaterial.js
new file mode 100644
index 00000000..5e5a577d
--- /dev/null
+++ b/src/assets/javascripts/helpers/youtube/pipedMaterial.js
@@ -0,0 +1,31 @@
+async function initDefaults() {
+ await browser.storage.local.set({
+ theme: "dark",
+ youtubeAutoplay: false,
+ youtubeVolume: 100,
+ youtubeListen: false,
+
+ pipedDisableLBRY: false,
+ pipedProxyLBRY: false,
+ pipedSelectedSkip: [],
+ pipedSponsorblock: true,
+
+ pipedMaterialSkipToLastPoint: true,
+ })
+}
+
+function initPipedMaterialLocalStorage(tabId) {
+ if (!disable && frontend == 'pipedMaterial' && enableCustomSettings)
+ browser.tabs.executeScript(
+ tabId,
+ {
+ file: "/assets/javascripts/helpers/youtube/pipedMaterial-preferences.js",
+ runAt: "document_start"
+ }
+ );
+}
+
+export default {
+ initDefaults,
+ initPipedMaterialLocalStorage,
+} \ No newline at end of file
diff --git a/src/assets/javascripts/helpers/youtube/youtube.js b/src/assets/javascripts/helpers/youtube/youtube.js
index c318e97c..9cdc60ad 100644
--- a/src/assets/javascripts/helpers/youtube/youtube.js
+++ b/src/assets/javascripts/helpers/youtube/youtube.js
@@ -3,46 +3,9 @@
window.browser = window.browser || window.chrome;
import commonHelper from '../common.js'
-import {
- youtubeListen, getYoutubeListen,
- invidiousQuality, getInvidiousQuality,
- invidiousAlwaysProxy, getInvidiousAlwaysProxy,
- invidiousPlayerStyle, getInvidiousPlayerStyle,
- invidiousVideoLoop, getInvidiousVideoLoop,
- invidiousContinueAutoplay, getInvidiousContinueAutoplay,
- invidiousContinue, getInvidiousContinue,
- invidiousSpeed, getInvidiousSpeed,
- invidiousQualityDash, getInvidiousQualityDash,
- invidiousComments, getInvidiousComments,
- invidiousCaptions, getInvidiousCaptions,
- invidiousRelatedVideos, getInvidiousRelatedVideos,
- invidiousAnnotations, getInvidiousAnnotations,
- invidiousExtendDesc, getInvidiousExtendDesc,
- invidiousVrMode, getInvidiousVrMode,
- invidiousSavePlayerPos, getInvidiousSavePlayerPos,
- invidiousRegion, getInvidiousRegion,
- invidiousDarkMode, getInvidiousDarkMode,
- invidiousThinMode, getInvidiousThinMode,
- invidiousDefaultHome, getInvidiousDefaultHome,
- invidiousFeedMenuList, getInvidiousFeedMenuList,
- getPipedBufferGoal,
- getPipedComments,
- getPipedDisableLBRY,
- getPipedEnabledCodecs,
- getPipedHomepage,
- getPipedMinimizeDescription,
- getPipedProxyLBRY,
- getPipedQuality,
- getPipedRegion,
- getPipedSelectedSkip,
- getPipedSponsorblock,
- getPipedDdlTheme,
- getPipedWatchHistory,
- volume, getVolume, setVolume,
- youtubeAutoplay, getAutoplay, setAutoplay,
- getPipedMaterialSkipToLastPoint,
- initOptions
-} from './options.js';
+import invidious from './invidious.js'
+import piped from './piped.js';
+import pipedMaterial from './pipedMaterial.js';
const targets = [
/^https?:\/{2}(www\.|music\.|m\.|)youtube\.com(\/.*|$)/,
@@ -89,164 +52,29 @@ let redirects = {
const getRedirects = () => redirects;
-function getCustomRedirects() {
- return {
- "invidious": {
- "normal": [...invidiousNormalRedirectsChecks, ...invidiousNormalCustomRedirects],
- "tor": [...invidiousTorRedirectsChecks, ...invidiousTorCustomRedirects]
- },
- "piped": {
- "normal": [...pipedNormalRedirectsChecks, ...pipedNormalCustomRedirects],
- "tor": [...pipedTorRedirectsChecks, ...pipedTorCustomRedirects]
- }
- };
-};
-
-async function setYoutubeSettings(val) {
- return new Promise(
- resolve => {
- browser.storage.local.set(val).then(resolve);
- }
- )
-
-}
-
-function setInvidiousRedirects(val) {
- redirects.invidious = val;
- browser.storage.local.set({ youtubeRedirects: redirects })
- console.log("invidiousRedirects: ", val)
-}
-
let invidiousNormalRedirectsChecks;
-const getInvidiousNormalRedirectsChecks = () => invidiousNormalRedirectsChecks;
-function setInvidiousNormalRedirectsChecks(val) {
- invidiousNormalRedirectsChecks = val;
- browser.storage.local.set({ invidiousNormalRedirectsChecks })
- console.log("invidiousNormalRedirectsChecks: ", val)
-}
-
let invidiousNormalCustomRedirects = [];
-const getInvidiousNormalCustomRedirects = () => invidiousNormalCustomRedirects;
-function setInvidiousNormalCustomRedirects(val) {
- invidiousNormalCustomRedirects = val;
- browser.storage.local.set({ invidiousNormalCustomRedirects })
- console.log("invidiousNormalCustomRedirects: ", val)
-}
-
let invidiousTorRedirectsChecks;
-const getInvidiousTorRedirectsChecks = () => invidiousTorRedirectsChecks;
-function setInvidiousTorRedirectsChecks(val) {
- invidiousTorRedirectsChecks = val;
- browser.storage.local.set({ invidiousTorRedirectsChecks })
- console.log("invidiousTorRedirectsChecks: ", val)
-}
-
let invidiousTorCustomRedirects = [];
-const getInvidiousTorCustomRedirects = () => invidiousTorCustomRedirects;
-function setInvidiousTorCustomRedirects(val) {
- invidiousTorCustomRedirects = val;
- browser.storage.local.set({ invidiousTorCustomRedirects })
- console.log("invidiousTorCustomRedirects: ", val)
-}
let pipedNormalRedirectsChecks;
-const getPipedNormalRedirectsChecks = () => pipedNormalRedirectsChecks;
-function setPipedNormalRedirectsChecks(val) {
- pipedNormalRedirectsChecks = val;
- browser.storage.local.set({ pipedNormalRedirectsChecks })
- console.log("pipedNormalRedirectsChecks: ", val)
-}
-
let pipedNormalCustomRedirects = [];
-const getPipedNormalCustomRedirects = () => pipedNormalCustomRedirects;
-function setPipedNormalCustomRedirects(val) {
- pipedNormalCustomRedirects = val;
- browser.storage.local.set({ pipedNormalCustomRedirects })
- console.log("pipedNormalCustomRedirects: ", val)
-}
-
let pipedTorRedirectsChecks;
-const getPipedTorRedirectsChecks = () => pipedTorRedirectsChecks;
-function setPipedTorRedirectsChecks(val) {
- pipedTorRedirectsChecks = val;
- browser.storage.local.set({ pipedTorRedirectsChecks })
- console.log("pipedTorRedirectsChecks: ", val)
-}
-
let pipedTorCustomRedirects = [];
-const getPipedTorCustomRedirects = () => pipedTorCustomRedirects;
-function setPipedTorCustomRedirects(val) {
- pipedTorCustomRedirects = val;
- browser.storage.local.set({ pipedTorCustomRedirects })
- console.log("pipedTorCustomRedirects: ", val)
-}
-
-function setPipedRedirects(val) {
- redirects.piped = val;
- browser.storage.local.set({ youtubeRedirects: redirects })
- console.log("pipedRedirects: ", val)
-}
let pipedMaterialNormalRedirectsChecks;
-const getPipedMaterialNormalRedirectsChecks = () => pipedMaterialNormalRedirectsChecks;
-function setPipedMaterialNormalRedirectsChecks(val) {
- pipedMaterialNormalRedirectsChecks = val;
- browser.storage.local.set({ pipedMaterialNormalRedirectsChecks })
- console.log("pipedMaterialNormalRedirectsChecks: ", val)
-}
-
let pipedMaterialNormalCustomRedirects = [];
-const getPipedMaterialNormalCustomRedirects = () => pipedMaterialNormalCustomRedirects;
-function setPipedMaterialNormalCustomRedirects(val) {
- pipedMaterialNormalCustomRedirects = val;
- browser.storage.local.set({ pipedMaterialNormalCustomRedirects })
- console.log("pipedMaterialNormalCustomRedirects: ", val)
-}
-
let pipedMaterialTorRedirectsChecks;
-const getPipedMaterialTorRedirectsChecks = () => pipedMaterialTorRedirectsChecks;
-function setPipedMaterialTorRedirectsChecks(val) {
- pipedMaterialTorRedirectsChecks = val;
- browser.storage.local.set({ pipedMaterialTorRedirectsChecks })
- console.log("pipedMaterialTorRedirectsChecks: ", val)
-}
-
let pipedMaterialTorCustomRedirects = [];
-const getPipedMaterialTorCustomRedirects = () => pipedMaterialTorCustomRedirects;
-function setPipedMaterialTorCustomRedirects(val) {
- pipedMaterialTorCustomRedirects = val;
- browser.storage.local.set({ pipedMaterialTorCustomRedirects })
- console.log("pipedMaterialTorCustomRedirects: ", val)
-}
-
-function setPipedMaterialRedirects(val) {
- redirects.pipedMaterial = val;
- browser.storage.local.set({ youtubeRedirects: redirects })
- console.log("pipedMaterialRedirects: ", val)
-}
let disable;
-const getDisable = () => disable;
-function setDisable(val) {
- disable = val;
- browser.storage.local.set({ disableYoutube: disable })
- console.log("disableYoutube: ", disable)
-}
-
-let enableCustomSettings;
-const getEnableCustomSettings = () => enableCustomSettings;
let protocol;
-const getProtocol = () => protocol;
let OnlyEmbeddedVideo;
-const getOnlyEmbeddedVideo = () => OnlyEmbeddedVideo;
let frontend;
-const getFrontend = () => frontend;
let youtubeEmbedFrontend;
-const getYoutubeEmbedFrontend = () => youtubeEmbedFrontend;
let bypassWatchOnYoutube;
-const getBypassWatchOnYoutube = () => bypassWatchOnYoutube;
-
let alwaysUsePreferred;
+
function redirect(url, details, initiator) {
if (disable) return null;
@@ -373,7 +201,6 @@ function redirect(url, details, initiator) {
function reverse(url) {
let protocolHost = commonHelper.protocolHost(url);
-
if (![
...redirects.invidious.normal,
...redirects.invidious.tor,
@@ -428,13 +255,11 @@ function switchInstance(url) {
if (protocol == 'normal') instancesList = [...pipedMaterialNormalRedirectsChecks, ...pipedMaterialNormalCustomRedirects];
else if (protocol == 'tor') instancesList = [...pipedMaterialTorRedirectsChecks, ...pipedMaterialTorCustomRedirects];
}
- else return null;
- console.log("instancesList", instancesList);
let index = instancesList.indexOf(protocolHost);
if (index > -1) instancesList.splice(index, 1);
- if (instancesList.length === 0) return null;
+ if (instancesList.length == 0) return null;
let randomInstance = commonHelper.getRandomInstance(instancesList);
return `${randomInstance}${url.pathname}${url.search}`;
}
@@ -481,272 +306,147 @@ function isPipedorInvidious(url, type, frontend) {
].includes(protocolHost);
}
-function initPipedLocalStorage(tabId) {
- if (!disable && frontend == 'piped' && enableCustomSettings)
- browser.tabs.executeScript(
- tabId,
- {
- file: "/assets/javascripts/helpers/youtube/piped-preferences.js",
- runAt: "document_start"
- }
- );
-}
+async function initDefaults() {
+ console.log('youtube initDefaults')
+ return new Promise(async resolve => {
+ fetch('/instances/data.json').then(response => response.text()).then(async data => {
+ let dataJson = JSON.parse(data);
+ redirects.invidious = dataJson.invidious;
+ await browser.storage.local.set({
+ disableYoutube: false,
+ enableYoutubeCustomSettings: false,
+ OnlyEmbeddedVideo: 'both',
-function initPipedMaterialLocalStorage(tabId) {
- if (!disable && frontend == 'pipedMaterial' && enableCustomSettings)
- browser.tabs.executeScript(
- tabId,
- {
- file: "/assets/javascripts/helpers/youtube/pipedMaterial-preferences.js",
- runAt: "document_start"
- }
- );
-}
+ youtubeRedirects: {
+ 'invidious': dataJson.invidious,
+ 'piped': redirects.piped,
+ 'pipedMaterial': redirects.pipedMaterial
+ },
-function initInvidiousCookies() {
- console.log('initInvidiousCookies()');
- if (!disable && frontend == 'invidious' && enableCustomSettings) {
- let checkedInstances;
- if (protocol == 'normal') checkedInstances = [...invidiousNormalRedirectsChecks, ...invidiousNormalCustomRedirects];
- else if (protocol == 'tor') checkedInstances = [...invidiousTorRedirectsChecks, ...invidiousTorCustomRedirects];
+ youtubeFrontend: 'invidious',
- for (const instanceUrl of checkedInstances)
- browser.cookies.get(
- {
- url: instanceUrl,
- name: "PREFS",
- },
- cookie => {
- let prefs = {};
- if (cookie) {
- prefs = JSON.parse(decodeURIComponent(cookie.value));
- browser.cookies.remove({ url: instanceUrl, name: "PREFS" });
- }
+ invidiousNormalRedirectsChecks: [...redirects.invidious.normal],
+ invidiousNormalCustomRedirects: [],
- prefs.local = invidiousAlwaysProxy;
- prefs.video_loop = invidiousVideoLoop;
- prefs.continue_autoplay = invidiousContinueAutoplay;
- prefs.continue = invidiousContinue;
- prefs.listen = youtubeListen;
- prefs.speed = parseFloat(invidiousSpeed);
- prefs.quality = invidiousQuality;
- prefs.quality_dash = invidiousQualityDash;
+ invidiousTorRedirectsChecks: [...redirects.invidious.tor],
+ invidiousTorCustomRedirects: [],
- prefs.comments = invidiousComments;
- prefs.captions = invidiousCaptions;
+ pipedNormalRedirectsChecks: [...redirects.piped.normal],
+ pipedNormalCustomRedirects: [],
- prefs.related_videos = invidiousRelatedVideos;
- prefs.annotations = invidiousAnnotations
- prefs.extend_desc = invidiousExtendDesc;
- prefs.vr_mode = invidiousVrMode;
- prefs.save_player_pos = invidiousSavePlayerPos;
+ pipedTorRedirectsChecks: [...redirects.piped.tor],
+ pipedTorCustomRedirects: [],
- prefs.volume = parseInt(volume);
- prefs.player_style = invidiousPlayerStyle;
- prefs.autoplay = youtubeAutoplay;
+ pipedMaterialNormalRedirectsChecks: [...redirects.pipedMaterial.normal],
+ pipedMaterialNormalCustomRedirects: [],
- prefs.region = invidiousRegion;
- prefs.dark_mode = invidiousDarkMode;
- prefs.thin_mode = invidiousThinMode;
- prefs.default_home = invidiousDefaultHome;
- prefs.feed_menu = invidiousFeedMenuList;
+ pipedMaterialTorRedirectsChecks: [...redirects.pipedMaterial.tor],
+ pipedMaterialTorCustomRedirects: [],
- browser.cookies.set({
- url: instanceUrl,
- name: "PREFS",
- value: encodeURIComponent(JSON.stringify(prefs))
- })
- }
- )
- }
+ alwaysUsePreferred: false,
+ youtubeEmbedFrontend: 'invidious',
+ youtubeProtocol: 'normal',
+ bypassWatchOnYoutube: true,
+ })
+
+ await invidious.initDefaults();
+ await piped.initDefaults();
+ await pipedMaterial.initDefaults();
+ resolve();
+ }
+ )
+ })
}
-let theme;
async function init() {
- await initOptions();
return new Promise(
resolve => {
- fetch('/instances/data.json').then(response => response.text()).then(data => {
- let dataJson = JSON.parse(data);
- browser.storage.local.get(
- [
- "theme",
- "disableYoutube",
- "enableYoutubeCustomSettings",
- "OnlyEmbeddedVideo",
- "youtubeRedirects",
- "youtubeFrontend",
-
- "invidiousNormalRedirectsChecks",
- "invidiousNormalCustomRedirects",
-
- "invidiousTorRedirectsChecks",
- "invidiousTorCustomRedirects",
-
- "pipedNormalRedirectsChecks",
- "pipedNormalCustomRedirects",
-
- "pipedMaterialNormalRedirectsChecks",
- "pipedMaterialNormalCustomRedirects",
+ browser.storage.local.get(
+ [
+ "disableYoutube",
+ "OnlyEmbeddedVideo",
+ "youtubeRedirects",
+ "youtubeFrontend",
- "pipedMaterialTorRedirectsChecks",
- "pipedMaterialTorCustomRedirects",
+ "invidiousNormalRedirectsChecks",
+ "invidiousNormalCustomRedirects",
- "pipedTorRedirectsChecks",
- "pipedTorCustomRedirects",
- "alwaysUsePreferred",
- "youtubeEmbedFrontend",
+ "invidiousTorRedirectsChecks",
+ "invidiousTorCustomRedirects",
- "youtubeProtocol",
+ "pipedNormalRedirectsChecks",
+ "pipedNormalCustomRedirects",
- "bypassWatchOnYoutube"
- ],
- r => {
- redirects.invidious = dataJson.invidious;
- if (r.youtubeRedirects) redirects = r.youtubeRedirects;
+ "pipedTorRedirectsChecks",
+ "pipedTorCustomRedirects",
- disable = r.disableYoutube ?? false;
- enableCustomSettings = r.enableYoutubeCustomSettings ?? false;
- protocol = r.youtubeProtocol ?? 'normal';
- frontend = r.youtubeFrontend ?? 'invidious';
- youtubeEmbedFrontend = r.youtubeEmbedFrontend ?? 'invidious';
+ "pipedMaterialNormalRedirectsChecks",
+ "pipedMaterialNormalCustomRedirects",
- theme = r.theme ?? 'dark';
+ "pipedMaterialTorRedirectsChecks",
+ "pipedMaterialTorCustomRedirects",
- OnlyEmbeddedVideo = r.OnlyEmbeddedVideo ?? 'both';
+ "alwaysUsePreferred",
+ "youtubeEmbedFrontend",
+ "youtubeProtocol",
+ "bypassWatchOnYoutube",
+ ],
+ r => {
- invidiousNormalRedirectsChecks = r.invidiousNormalRedirectsChecks ?? [...redirects.invidious.normal];
- invidiousNormalCustomRedirects = r.invidiousNormalCustomRedirects ?? [];
+ console.log('inited r.youtubeRedirects', r.youtubeRedirects);
+ redirects = r.youtubeRedirects;
- invidiousTorRedirectsChecks = r.invidiousTorRedirectsChecks ?? [...redirects.invidious.tor];
- invidiousTorCustomRedirects = r.invidiousTorCustomRedirects ?? [];
+ disable = r.disableYoutube;
+ protocol = r.youtubeProtocol;
+ frontend = r.youtubeFrontend;
- pipedNormalRedirectsChecks = r.pipedNormalRedirectsChecks ?? [...redirects.piped.normal];
- pipedNormalCustomRedirects = r.pipedNormalCustomRedirects ?? [];
+ invidiousNormalRedirectsChecks = r.invidiousNormalRedirectsChecks;
+ invidiousNormalCustomRedirects = r.invidiousNormalCustomRedirects;
- pipedTorRedirectsChecks = r.pipedTorRedirectsChecks ?? [...redirects.piped.tor];
- pipedTorCustomRedirects = r.pipedTorCustomRedirects ?? [];
+ invidiousTorRedirectsChecks = r.invidiousTorRedirectsChecks;
+ invidiousTorCustomRedirects = r.invidiousTorCustomRedirects;
- pipedMaterialNormalRedirectsChecks = r.pipedMaterialNormalRedirectsChecks ?? [...redirects.pipedMaterial.normal];
- pipedMaterialNormalCustomRedirects = r.pipedMaterialNormalCustomRedirects ?? [];
+ pipedNormalRedirectsChecks = r.pipedNormalRedirectsChecks;
+ pipedNormalCustomRedirects = r.pipedNormalCustomRedirects;
- pipedMaterialTorRedirectsChecks = r.pipedMaterialTorRedirectsChecks ?? [...redirects.pipedMaterial.tor];
- pipedMaterialTorCustomRedirects = r.pipedMaterialTorCustomRedirects ?? [];
+ pipedTorRedirectsChecks = r.pipedTorRedirectsChecks;
+ pipedTorCustomRedirects = r.pipedTorCustomRedirects;
- alwaysUsePreferred = r.alwaysUsePreferred ?? false;
+ pipedMaterialNormalRedirectsChecks = r.pipedMaterialNormalRedirectsChecks;
+ pipedMaterialNormalCustomRedirects = r.pipedMaterialNormalCustomRedirects;
- bypassWatchOnYoutube = r.bypassWatchOnYoutube ?? true;
+ pipedMaterialTorRedirectsChecks = r.pipedMaterialTorRedirectsChecks;
+ pipedMaterialTorCustomRedirects = r.pipedMaterialTorCustomRedirects;
- initInvidiousCookies();
+ youtubeEmbedFrontend = r.youtubeEmbedFrontend;
+ OnlyEmbeddedVideo = r.OnlyEmbeddedVideo;
+ alwaysUsePreferred = r.alwaysUsePreferred;
+ bypassWatchOnYoutube = r.bypassWatchOnYoutube;
- resolve();
-
- });
- });
+ resolve();
+ });
})
}
+let
+ initPipedLocalStorage = piped.initPipedLocalStorage,
+ initPipedMaterialLocalStorage = pipedMaterial.initPipedMaterialLocalStorage,
+ initInvidiousCookies = invidious.initInvidiousCookies;
+
export default {
- setYoutubeSettings,
- getBypassWatchOnYoutube,
initPipedLocalStorage,
initPipedMaterialLocalStorage,
- getFrontend,
- getYoutubeEmbedFrontend,
- getRedirects,
- getCustomRedirects,
- setInvidiousRedirects,
- setPipedRedirects,
- redirect,
- switchInstance,
- isPipedorInvidious,
initInvidiousCookies,
- getInvidiousAlwaysProxy,
- getInvidiousQuality,
- getInvidiousPlayerStyle,
- getInvidiousVideoLoop,
- getInvidiousRegion,
- getInvidiousDarkMode,
- getInvidiousThinMode,
- getInvidiousDefaultHome,
- getInvidiousFeedMenuList,
-
- getDisable,
- setDisable,
+ getRedirects,
+ redirect,
reverse,
- getEnableCustomSettings,
- getProtocol,
- getOnlyEmbeddedVideo,
- setVolume,
- getVolume,
- setAutoplay,
- getAutoplay,
- getInvidiousContinueAutoplay,
- getInvidiousContinue,
- getYoutubeListen,
- getInvidiousSpeed,
- getInvidiousQualityDash,
- getInvidiousComments,
- getInvidiousCaptions,
- getInvidiousRelatedVideos,
- getInvidiousAnnotations,
- getInvidiousExtendDesc,
- getInvidiousVrMode,
- getInvidiousSavePlayerPos,
- getPipedBufferGoal,
- getPipedComments,
- getPipedDisableLBRY,
- getPipedEnabledCodecs,
- getPipedHomepage,
- getPipedMinimizeDescription,
- getPipedProxyLBRY,
- getPipedQuality,
- getPipedRegion,
- getPipedSelectedSkip,
- getPipedSponsorblock,
- getPipedDdlTheme,
- getPipedWatchHistory,
- getPipedMaterialSkipToLastPoint,
-
- getInvidiousNormalRedirectsChecks,
- setInvidiousNormalRedirectsChecks,
-
- getInvidiousNormalCustomRedirects,
- setInvidiousNormalCustomRedirects,
-
- getPipedNormalRedirectsChecks,
- setPipedNormalRedirectsChecks,
-
- getPipedNormalCustomRedirects,
- setPipedNormalCustomRedirects,
-
- getInvidiousTorRedirectsChecks,
- setInvidiousTorRedirectsChecks,
-
- getInvidiousTorCustomRedirects,
- setInvidiousTorCustomRedirects,
-
- getPipedTorRedirectsChecks,
- setPipedTorRedirectsChecks,
-
- getPipedTorCustomRedirects,
- setPipedTorCustomRedirects,
-
- getPipedMaterialNormalRedirectsChecks,
- setPipedMaterialNormalRedirectsChecks,
-
- getPipedMaterialNormalCustomRedirects,
- setPipedMaterialNormalCustomRedirects,
-
- getPipedMaterialTorRedirectsChecks,
- setPipedMaterialTorRedirectsChecks,
+ switchInstance,
- getPipedMaterialTorCustomRedirects,
- setPipedMaterialTorCustomRedirects,
+ isPipedorInvidious,
- setPipedMaterialRedirects,
+ initDefaults,
init,
};