Restructuring and simplifying code #229

This commit is contained in:
ManeraKai 2022-05-03 16:45:14 +03:00
parent 95582f0b15
commit a78d6cdd04
19 changed files with 910 additions and 1423 deletions

View File

@ -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,

View File

@ -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 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 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,
},
rimgoNormalRedirectsChecks: [...redirects.rimgo.normal],
rimgoNormalCustomRedirects: [],
rimgoTorRedirectsChecks: [...redirects.rimgo.tor],
rimgoTorCustomRedirects: [],
rimgoI2pRedirectsChecks: [...redirects.rimgo.i2p],
rimgoI2pCustomRedirects: [],
});
resolve();
});
})
}
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",
browser.storage.local.get(
[
"disableImgur",
"imgurRedirects",
"imgurProtocol",
"rimgoNormalRedirectsChecks",
"rimgoNormalCustomRedirects",
"rimgoTorRedirectsChecks",
"rimgoTorCustomRedirects",
"rimgoI2pRedirectsChecks",
"rimgoI2pCustomRedirects",
"rimgoNormalRedirectsChecks",
"rimgoNormalCustomRedirects",
"rimgoTorRedirectsChecks",
"rimgoTorCustomRedirects",
"rimgoI2pRedirectsChecks",
"rimgoI2pCustomRedirects",
],
r => {
disable = r.disableImgur;
protocol = r.imgurProtocol;
redirects = r.imgurRedirects;
"imgurProtocol",
],
r => {
disable = r.disableImgur ?? false;
rimgoNormalRedirectsChecks = r.rimgoNormalRedirectsChecks;
rimgoNormalCustomRedirects = r.rimgoNormalCustomRedirects;
rimgoTorRedirectsChecks = r.rimgoTorRedirectsChecks;
rimgoTorCustomRedirects = r.rimgoTorCustomRedirects;
rimgoI2pRedirectsChecks = r.rimgoI2pRedirectsChecks;
rimgoI2pCustomRedirects = r.rimgoI2pCustomRedirects;
protocol = r.imgurProtocol ?? "normal";
redirects.rimgo = data.rimgo;
if (r.imgurRedirects) redirects = r.imgurRedirects;
rimgoNormalRedirectsChecks = r.rimgoNormalRedirectsChecks ?? [...redirects.rimgo.normal];
rimgoNormalCustomRedirects = r.rimgoNormalCustomRedirects ?? [];
rimgoTorRedirectsChecks = r.rimgoTorRedirectsChecks ?? [...redirects.rimgo.tor];
rimgoTorCustomRedirects = r.rimgoTorCustomRedirects ?? [];
rimgoI2pRedirectsChecks = r.rimgoI2pRedirectsChecks ?? [...redirects.rimgo.i2p];
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,
};

View File

@ -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,
};

View File

@ -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);

View File

@ -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,
}

View File

@ -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();
}
)
}
)
}

View File

@ -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);
}
)

View File

@ -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
}

View File

@ -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));
}

View File

@ -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,
}

View File

@ -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"
}
);
}
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];
for (const instanceUrl of checkedInstances)
browser.cookies.get(
{
url: instanceUrl,
name: "PREFS",
youtubeRedirects: {
'invidious': dataJson.invidious,
'piped': redirects.piped,
'pipedMaterial': redirects.pipedMaterial
},
cookie => {
let prefs = {};
if (cookie) {
prefs = JSON.parse(decodeURIComponent(cookie.value));
browser.cookies.remove({ url: instanceUrl, name: "PREFS" });
}
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;
youtubeFrontend: 'invidious',
prefs.comments = invidiousComments;
prefs.captions = invidiousCaptions;
invidiousNormalRedirectsChecks: [...redirects.invidious.normal],
invidiousNormalCustomRedirects: [],
prefs.related_videos = invidiousRelatedVideos;
prefs.annotations = invidiousAnnotations
prefs.extend_desc = invidiousExtendDesc;
prefs.vr_mode = invidiousVrMode;
prefs.save_player_pos = invidiousSavePlayerPos;
invidiousTorRedirectsChecks: [...redirects.invidious.tor],
invidiousTorCustomRedirects: [],
prefs.volume = parseInt(volume);
prefs.player_style = invidiousPlayerStyle;
prefs.autoplay = youtubeAutoplay;
pipedNormalRedirectsChecks: [...redirects.piped.normal],
pipedNormalCustomRedirects: [],
prefs.region = invidiousRegion;
prefs.dark_mode = invidiousDarkMode;
prefs.thin_mode = invidiousThinMode;
prefs.default_home = invidiousDefaultHome;
prefs.feed_menu = invidiousFeedMenuList;
pipedTorRedirectsChecks: [...redirects.piped.tor],
pipedTorCustomRedirects: [],
browser.cookies.set({
url: instanceUrl,
name: "PREFS",
value: encodeURIComponent(JSON.stringify(prefs))
})
}
)
}
pipedMaterialNormalRedirectsChecks: [...redirects.pipedMaterial.normal],
pipedMaterialNormalCustomRedirects: [],
pipedMaterialTorRedirectsChecks: [...redirects.pipedMaterial.tor],
pipedMaterialTorCustomRedirects: [],
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",
browser.storage.local.get(
[
"disableYoutube",
"OnlyEmbeddedVideo",
"youtubeRedirects",
"youtubeFrontend",
"invidiousNormalRedirectsChecks",
"invidiousNormalCustomRedirects",
"invidiousNormalRedirectsChecks",
"invidiousNormalCustomRedirects",
"invidiousTorRedirectsChecks",
"invidiousTorCustomRedirects",
"invidiousTorRedirectsChecks",
"invidiousTorCustomRedirects",
"pipedNormalRedirectsChecks",
"pipedNormalCustomRedirects",
"pipedNormalRedirectsChecks",
"pipedNormalCustomRedirects",
"pipedMaterialNormalRedirectsChecks",
"pipedMaterialNormalCustomRedirects",
"pipedTorRedirectsChecks",
"pipedTorCustomRedirects",
"pipedMaterialTorRedirectsChecks",
"pipedMaterialTorCustomRedirects",
"pipedMaterialNormalRedirectsChecks",
"pipedMaterialNormalCustomRedirects",
"pipedTorRedirectsChecks",
"pipedTorCustomRedirects",
"alwaysUsePreferred",
"youtubeEmbedFrontend",
"pipedMaterialTorRedirectsChecks",
"pipedMaterialTorCustomRedirects",
"youtubeProtocol",
"alwaysUsePreferred",
"youtubeEmbedFrontend",
"youtubeProtocol",
"bypassWatchOnYoutube",
],
r => {
"bypassWatchOnYoutube"
],
r => {
redirects.invidious = dataJson.invidious;
if (r.youtubeRedirects) redirects = r.youtubeRedirects;
console.log('inited r.youtubeRedirects', r.youtubeRedirects);
redirects = r.youtubeRedirects;
disable = r.disableYoutube ?? false;
enableCustomSettings = r.enableYoutubeCustomSettings ?? false;
protocol = r.youtubeProtocol ?? 'normal';
frontend = r.youtubeFrontend ?? 'invidious';
youtubeEmbedFrontend = r.youtubeEmbedFrontend ?? 'invidious';
disable = r.disableYoutube;
protocol = r.youtubeProtocol;
frontend = r.youtubeFrontend;
theme = r.theme ?? 'dark';
invidiousNormalRedirectsChecks = r.invidiousNormalRedirectsChecks;
invidiousNormalCustomRedirects = r.invidiousNormalCustomRedirects;
OnlyEmbeddedVideo = r.OnlyEmbeddedVideo ?? 'both';
invidiousTorRedirectsChecks = r.invidiousTorRedirectsChecks;
invidiousTorCustomRedirects = r.invidiousTorCustomRedirects;
invidiousNormalRedirectsChecks = r.invidiousNormalRedirectsChecks ?? [...redirects.invidious.normal];
invidiousNormalCustomRedirects = r.invidiousNormalCustomRedirects ?? [];
pipedNormalRedirectsChecks = r.pipedNormalRedirectsChecks;
pipedNormalCustomRedirects = r.pipedNormalCustomRedirects;
invidiousTorRedirectsChecks = r.invidiousTorRedirectsChecks ?? [...redirects.invidious.tor];
invidiousTorCustomRedirects = r.invidiousTorCustomRedirects ?? [];
pipedTorRedirectsChecks = r.pipedTorRedirectsChecks;
pipedTorCustomRedirects = r.pipedTorCustomRedirects;
pipedNormalRedirectsChecks = r.pipedNormalRedirectsChecks ?? [...redirects.piped.normal];
pipedNormalCustomRedirects = r.pipedNormalCustomRedirects ?? [];
pipedMaterialNormalRedirectsChecks = r.pipedMaterialNormalRedirectsChecks;
pipedMaterialNormalCustomRedirects = r.pipedMaterialNormalCustomRedirects;
pipedTorRedirectsChecks = r.pipedTorRedirectsChecks ?? [...redirects.piped.tor];
pipedTorCustomRedirects = r.pipedTorCustomRedirects ?? [];
pipedMaterialTorRedirectsChecks = r.pipedMaterialTorRedirectsChecks;
pipedMaterialTorCustomRedirects = r.pipedMaterialTorCustomRedirects;
pipedMaterialNormalRedirectsChecks = r.pipedMaterialNormalRedirectsChecks ?? [...redirects.pipedMaterial.normal];
pipedMaterialNormalCustomRedirects = r.pipedMaterialNormalCustomRedirects ?? [];
youtubeEmbedFrontend = r.youtubeEmbedFrontend;
OnlyEmbeddedVideo = r.OnlyEmbeddedVideo;
alwaysUsePreferred = r.alwaysUsePreferred;
bypassWatchOnYoutube = r.bypassWatchOnYoutube;
pipedMaterialTorRedirectsChecks = r.pipedMaterialTorRedirectsChecks ?? [...redirects.pipedMaterial.tor];
pipedMaterialTorCustomRedirects = r.pipedMaterialTorCustomRedirects ?? [];
alwaysUsePreferred = r.alwaysUsePreferred ?? false;
bypassWatchOnYoutube = r.bypassWatchOnYoutube ?? true;
initInvidiousCookies();
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,
switchInstance,
getInvidiousNormalRedirectsChecks,
setInvidiousNormalRedirectsChecks,
isPipedorInvidious,
getInvidiousNormalCustomRedirects,
setInvidiousNormalCustomRedirects,
getPipedNormalRedirectsChecks,
setPipedNormalRedirectsChecks,
getPipedNormalCustomRedirects,
setPipedNormalCustomRedirects,
getInvidiousTorRedirectsChecks,
setInvidiousTorRedirectsChecks,
getInvidiousTorCustomRedirects,
setInvidiousTorCustomRedirects,
getPipedTorRedirectsChecks,
setPipedTorRedirectsChecks,
getPipedTorCustomRedirects,
setPipedTorCustomRedirects,
getPipedMaterialNormalRedirectsChecks,
setPipedMaterialNormalRedirectsChecks,
getPipedMaterialNormalCustomRedirects,
setPipedMaterialNormalCustomRedirects,
getPipedMaterialTorRedirectsChecks,
setPipedMaterialTorRedirectsChecks,
getPipedMaterialTorCustomRedirects,
setPipedMaterialTorCustomRedirects,
setPipedMaterialRedirects,
initDefaults,
init,
};

View File

@ -22,14 +22,25 @@ import youtubeMusicHelper from "../../assets/javascripts/helpers/youtubeMusic.js
window.browser = window.browser || window.chrome;
browser.runtime.onInstalled.addListener(async details => {
if (details.reason == 'install') {
await instagramHelper.initDefaults();
await redditHelper.initDefaults();
await youtubeHelper.initDefaults();
await tiktokHelper.initDefaults();
await imgurHelper.initDefaults();
await wholeInit();
browser.storage.local.set({ initDefaults: true })
initListener();
}
});
function initListener() {
browser.storage.onChanged.addListener(wholeInit);
}
async function wholeInit() {
await youtubeHelper.init();
await youtubeMusicHelper.init();
@ -51,9 +62,15 @@ async function wholeInit() {
await spotifyHelper.init();
await generalHelper.init();
}
await wholeInit();
browser.storage.onChanged.addListener(wholeInit);
await browser.storage.local.get(
'initDefaults',
async r => {
if (r.initDefaults == true) {
await wholeInit();
initListener();
}
})
let incognitoInit = false;
browser.tabs.onCreated.addListener(
@ -79,7 +96,7 @@ browser.webRequest.onBeforeRequest.addListener(
else if (details.initiator)
initiator = new URL(details.initiator);
var newUrl;
let newUrl;
if (!newUrl) newUrl = youtubeHelper.redirect(url, details, initiator)
if (youtubeMusicHelper.isYoutubeMusic(url, initiator)) newUrl = youtubeMusicHelper.redirect(url, details.type)
@ -94,7 +111,7 @@ browser.webRequest.onBeforeRequest.addListener(
if (!newUrl) newUrl = mediumHelper.redirect(url, details.type, initiator);
if (imgurHelper.isImgur(url, initiator)) newUrl = imgurHelper.redirect(url, details.type);
if (!newUrl) newUrl = imgurHelper.redirect(url, details.type, initiator);
if (!newUrl) newUrl = tiktokHelper.redirect(url, details.type, initiator);
@ -126,11 +143,11 @@ browser.webRequest.onBeforeRequest.addListener(
if (BYPASSTABs.includes(details.tabId)) newUrl = null;
if (newUrl) {
if (newUrl == 'CANCEL') {
if (newUrl === 'CANCEL') {
console.log(`Canceled ${url}`);
return { cancel: true };
}
else if (newUrl == 'BYPASSTAB') {
else if (newUrl === 'BYPASSTAB') {
console.log(`Bybassed ${details.tabId} ${url}`);
if (!BYPASSTABs.includes(details.tabId)) BYPASSTABs.push(details.tabId);
return null;

View File

@ -2,18 +2,15 @@ import imgurHelper from "../../../assets/javascripts/helpers/imgur.js";
import commonHelper from "../../../assets/javascripts/helpers/common.js";
let disableImgurElement = document.getElementById("disable-imgur");
disableImgurElement.addEventListener("change",
(event) => imgurHelper.setDisable(!event.target.checked)
);
let protocolElement = document.getElementById("protocol")
protocolElement.addEventListener("change",
event => {
let protocol = event.target.options[protocolElement.selectedIndex].value
imgurHelper.setProtocol(protocol);
changeProtocolSettings(protocol);
}
);
document.addEventListener("change", async () => {
await browser.storage.local.set({
disableImgur: !disableImgurElement.checked,
imgurProtocol: protocolElement.value,
});
init();
})
function changeProtocolSettings(protocol) {
let normalDiv = document.getElementsByClassName("normal")[0];
@ -36,50 +33,45 @@ function changeProtocolSettings(protocol) {
}
}
imgurHelper.init().then(() => {
disableImgurElement.checked = !imgurHelper.getDisable();
function init() {
imgurHelper.init().then(() => {
browser.storage.local.get(
[
"disableImgur",
"imgurProtocol",
],
r => {
disableImgurElement.checked = !r.disableImgur;
protocol.value = r.imgurProtocol;
changeProtocolSettings(r.imgurProtocol);
}
);
let protocol = imgurHelper.getProtocol();
console.log('protocol', protocol);
protocolElement.value = protocol;
changeProtocolSettings(protocol);
browser.storage.local.get("rimgoLatency").then(r => {
commonHelper.processDefaultCustomInstances(
'rimgo',
'normal',
imgurHelper,
document,
imgurHelper.getRimgoNormalRedirectsChecks,
imgurHelper.setRimgoNormalRedirectsChecks,
imgurHelper.getRimgoNormalCustomRedirects,
imgurHelper.setRimgoNormalCustomRedirects,
r.rimgoLatency
document
);
commonHelper.processDefaultCustomInstances(
'rimgo',
'tor',
imgurHelper,
document
);
commonHelper.processDefaultCustomInstances(
'rimgo',
'i2p',
imgurHelper,
document
);
});
}
init();
commonHelper.processDefaultCustomInstances(
'rimgo',
'tor',
imgurHelper,
document,
imgurHelper.getRimgoTorRedirectsChecks,
imgurHelper.setRimgoTorRedirectsChecks,
imgurHelper.getRimgoTorCustomRedirects,
imgurHelper.setRimgoTorCustomRedirects
);
commonHelper.processDefaultCustomInstances(
'rimgo',
'i2p',
imgurHelper,
document,
imgurHelper.getRimgoI2pRedirectsChecks,
imgurHelper.setRimgoI2pRedirectsChecks,
imgurHelper.getRimgoI2pCustomRedirects,
imgurHelper.setRimgoI2pCustomRedirects
);
});
let latencyElement = document.getElementById("latency");
let latencyLabel = document.getElementById("latency-label");

View File

@ -2,18 +2,15 @@ import instagramHelper from "../../../assets/javascripts/helpers/instagram.js";
import commonHelper from "../../../assets/javascripts/helpers/common.js";
let disableInstagramElement = document.getElementById("disable-bibliogram");
disableInstagramElement.addEventListener("change",
(event) => instagramHelper.setDisable(!event.target.checked)
);
let protocolElement = document.getElementById("protocol");
let protocolElement = document.getElementById("protocol")
protocolElement.addEventListener("change",
(event) => {
let protocol = event.target.options[protocolElement.selectedIndex].value
instagramHelper.setProtocol(protocol);
changeProtocolSettings(protocol);
}
);
document.addEventListener("change", async () => {
await browser.storage.local.set({
disableInstagram: disableInstagramElement.checked,
instagramProtocol: protocolElement.value,
})
changeProtocolSettings(protocolElement.value);
})
function changeProtocolSettings(protocol) {
let normalDiv = document.getElementsByClassName("normal")[0];
@ -28,41 +25,23 @@ function changeProtocolSettings(protocol) {
}
}
instagramHelper.init().then(() => {
disableInstagramElement.checked = !instagramHelper.getDisable();
browser.storage.local.get(
[
"disableInstagram",
"instagramProtocol"
],
r => {
let protocol = instagramHelper.getProtocol();
protocolElement.value = protocol;
changeProtocolSettings(protocol);
disableInstagramElement.checked = !r.disableInstagram;
let protocol = r.instagramProtocol;
protocolElement.value = protocol;
changeProtocolSettings(protocol);
browser.storage.local.get("bibliogramLatency").then(r => {
commonHelper.processDefaultCustomInstances(
'bibliogram',
'normal',
instagramHelper,
document,
instagramHelper.getBibliogramNormalRedirectsChecks,
instagramHelper.setBibliogramNormalRedirectsChecks,
instagramHelper.getBibliogramNormalCustomRedirects,
instagramHelper.setBibliogramNormalCustomRedirects,
r.bibliogramLatency,
)
commonHelper.processDefaultCustomInstances('bibliogram', 'normal', instagramHelper, document)
commonHelper.processDefaultCustomInstances('bibliogram', 'tor', instagramHelper, document)
})
commonHelper.processDefaultCustomInstances(
'bibliogram',
'tor',
instagramHelper,
document,
instagramHelper.getBibliogramTorRedirectsChecks,
instagramHelper.setBibliogramTorRedirectsChecks,
instagramHelper.getBibliogramTorCustomRedirects,
instagramHelper.setBibliogramTorCustomRedirects
)
})
let latencyElement = document.getElementById("latency");
let latencyLabel = document.getElementById("latency-label");
latencyElement.addEventListener("click",
@ -76,17 +55,7 @@ latencyElement.addEventListener("click",
commonHelper.testLatency(latencyLabel, redirects.bibliogram.normal).then(r => {
browser.storage.local.set({ bibliogramLatency: r });
latencyLabel.innerHTML = oldHtml;
commonHelper.processDefaultCustomInstances(
'bibliogram',
'normal',
instagramHelper,
document,
instagramHelper.getBibliogramNormalRedirectsChecks,
instagramHelper.setBibliogramNormalRedirectsChecks,
instagramHelper.getBibliogramNormalCustomRedirects,
instagramHelper.setBibliogramNormalCustomRedirects,
r,
);
commonHelper.processDefaultCustomInstances('bibliogram', 'normal', instagramHelper, document);
latencyElement.removeEventListener("click", reloadWindow);
});
}

View File

@ -45,7 +45,6 @@ document.addEventListener("change", async () => {
init();
})
window.onblur = () => {
redditHelper.initLibredditCookies();
redditHelper.initTedditCookies();
@ -93,100 +92,53 @@ function changeFrontendsSettings(frontend) {
}
}
function init() {
redditHelper.init().then(() => {
browser.storage.local.get(
[
"disableReddit",
"bypassWatchOnReddit",
"redditProtocol",
"redditFrontend",
browser.storage.local.get(
[
"disableReddit",
"bypassWatchOnReddit",
"redditProtocol",
"redditFrontend",
"enableLibredditCustomSettings",
"enableLibredditCustomSettings",
"redditTheme",
"redditFrontPage",
"redditLayout",
"redditWide",
"redditPostSort",
"redditCommentSort",
"redditShowNsfw",
"redditAutoplayVideos",
"redditUseHls",
"redditHideHlsNotification",
],
r => {
disableRedditElement.checked = !r.disableReddit
bypassWatchOnRedditElement.checked = r.bypassWatchOnReddit
protocolElement.value = r.redditProtocol
redditFrontendElement.value = r.redditFrontend
enableLibredditSettingsElement.checked = r.enableLibredditCustomSettings
changeFrontendsSettings(r.redditFrontend);
changeProtocolSettings(r.redditProtocol);
"redditTheme",
"redditFrontPage",
"redditLayout",
"redditWide",
"redditPostSort",
"redditCommentSort",
"redditShowNsfw",
"redditAutoplayVideos",
"redditUseHls",
"redditHideHlsNotification",
],
r => {
disableRedditElement.checked = !r.disableReddit
bypassWatchOnRedditElement.checked = r.bypassWatchOnReddit
protocolElement.value = r.redditProtocol
redditFrontendElement.value = r.redditFrontend
enableLibredditSettingsElement.checked = r.enableLibredditCustomSettings
changeFrontendsSettings(r.redditFrontend);
changeProtocolSettings(r.redditProtocol);
theme.value = r.redditTheme;
front_page.value = r.redditFrontPage;
layout.value = r.redditLayout;
wide.checked = r.redditWide;
post_sort.value = r.redditPostSort;
comment_sort.value = r.redditCommentSort;
show_nsfw.checked = r.redditShowNsfw;
autoplay_videos.checked = r.redditAutoplayVideos;
use_hls.checked = r.redditUseHls;
hide_hls_notification.checked = r.redditHideHlsNotification;
}
)
theme.value = r.redditTheme;
front_page.value = r.redditFrontPage;
layout.value = r.redditLayout;
wide.checked = r.redditWide;
post_sort.value = r.redditPostSort;
comment_sort.value = r.redditCommentSort;
show_nsfw.checked = r.redditShowNsfw;
autoplay_videos.checked = r.redditAutoplayVideos;
use_hls.checked = r.redditUseHls;
hide_hls_notification.checked = r.redditHideHlsNotification;
}
)
browser.storage.local.get("libredditLatency").then(r => {
commonHelper.processDefaultCustomInstances(
'libreddit',
'normal',
redditHelper,
document,
redditHelper.getLibredditNormalRedirectsChecks,
redditHelper.setLibredditNormalRedirectsChecks,
redditHelper.getLibredditNormalCustomRedirects,
redditHelper.setLibredditNormalCustomRedirects,
r.libredditLatency,
)
})
commonHelper.processDefaultCustomInstances('libreddit', 'normal', redditHelper, document)
commonHelper.processDefaultCustomInstances('libreddit', 'tor', redditHelper, document)
commonHelper.processDefaultCustomInstances(
'libreddit',
'tor',
redditHelper,
document,
redditHelper.getLibredditTorRedirectsChecks,
redditHelper.setLibredditTorRedirectsChecks,
redditHelper.getLibredditTorCustomRedirects,
redditHelper.setLibredditTorCustomRedirects
)
browser.storage.local.get("tedditLatency").then(r => {
commonHelper.processDefaultCustomInstances(
'teddit',
'normal',
redditHelper,
document,
redditHelper.getTedditNormalRedirectsChecks,
redditHelper.setTedditNormalRedirectsChecks,
redditHelper.getTedditNormalCustomRedirects,
redditHelper.setTedditNormalCustomRedirects,
r.tedditLatency,
);
})
commonHelper.processDefaultCustomInstances(
'teddit',
'tor',
redditHelper,
document,
redditHelper.getTedditTorRedirectsChecks,
redditHelper.setTedditTorRedirectsChecks,
redditHelper.getTedditTorCustomRedirects,
redditHelper.setTedditTorCustomRedirects
);
})
commonHelper.processDefaultCustomInstances('teddit', 'normal', redditHelper, document);
commonHelper.processDefaultCustomInstances('teddit', 'tor', redditHelper, document);
}
init();
@ -203,17 +155,7 @@ latencyLibredditElement.addEventListener("click",
commonHelper.testLatency(latencyLibredditLabel, redirects.libreddit.normal).then(r => {
browser.storage.local.set({ libredditLatency: r });
latencyLibredditLabel.innerHTML = oldHtml;
commonHelper.processDefaultCustomInstances(
'libreddit',
'normal',
redditHelper,
document,
redditHelper.getLibredditNormalRedirectsChecks,
redditHelper.setLibredditNormalRedirectsChecks,
redditHelper.getLibredditNormalCustomRedirects,
redditHelper.setLibredditNormalCustomRedirects,
r,
);
commonHelper.processDefaultCustomInstances('libreddit', 'normal', redditHelper, document);
latencyLibredditElement.removeEventListener("click", reloadWindow);
});
}
@ -232,17 +174,7 @@ latencyTedditElement.addEventListener("click",
commonHelper.testLatency(latencyTedditLabel, redirects.teddit.normal).then(r => {
browser.storage.local.set({ tedditLatency: r });
latencyTedditLabel.innerHTML = oldHtml;
commonHelper.processDefaultCustomInstances(
'teddit',
'normal',
redditHelper,
document,
redditHelper.getTedditNormalRedirectsChecks,
redditHelper.setTedditNormalRedirectsChecks,
redditHelper.getTedditNormalCustomRedirects,
redditHelper.setTedditNormalCustomRedirects,
r,
);
commonHelper.processDefaultCustomInstances('teddit', 'normal', redditHelper, document);
latencyTedditElement.removeEventListener("click", reloadWindow);
});
}

View File

@ -34,21 +34,27 @@ let feed_menu1 = invidious.getElementsByClassName("feed_menu[1]")[0];
volume.addEventListener("input", () => volumeValue.textContent = `${volume.value}%`);
invidious.addEventListener("change", async _ => {
console.log('changed invidious settings');
let commentsList = youtubeHelper.getInvidiousComments();
commentsList[0] = comments0.value;
commentsList[1] = comments1.value;
browser.storage.local.get(
[
"invidiousComments",
"invidiousCaptions",
"invidiousFeedMenuList",
],
async r => {
let commentsList = r.invidiousComments;
commentsList[0] = comments0.value;
commentsList[1] = comments1.value;
let captionsList = youtubeHelper.getInvidiousCaptions();
captionsList[0] = captions0.value;
captionsList[1] = captions1.value;
captionsList[2] = captions2.value;
let captionsList = r.invidiousCaptions;
captionsList[0] = captions0.value;
captionsList[1] = captions1.value;
captionsList[2] = captions2.value;
let feedMenuList = youtubeHelper.getInvidiousFeedMenuList();
feedMenuList[0] = feed_menu0.value;
feedMenuList[1] = feed_menu1.value;
let feedMenuList = r.invidiousFeedMenuList;
feedMenuList[0] = feed_menu0.value;
feedMenuList[1] = feed_menu1.value;
await youtubeHelper.setYoutubeSettings({
await browser.storage.local.set({
invidiousAlwaysProxy: alwaysProxy.checked,
youtubeAutoplay: autoplay.checked,
invidiousPlayerStyle: playerStyle.value,
@ -73,79 +79,85 @@ invidious.addEventListener("change", async _ => {
invidiousThinMode: thin_mode.checked,
invidiousDefaultHome: default_home.value,
invidiousFeedMenuList: feedMenuList,
});
init();
});
init();
}
)
});
function init() {
youtubeHelper.init().then(() => {
videoLoop.checked = youtubeHelper.getInvidiousVideoLoop();
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",
],
r => {
videoLoop.checked = r.invidiousVideoLoop;
autoplay.checked = r.youtubeAutoplay;
playerStyle.value = r.invidiousPlayerStyle;
autoplay.checked = youtubeHelper.getAutoplay();
continueAutoplay.checked = r.invidiousContinueAutoplay;
invidiousContinue.checked = r.invidiousContinue;
alwaysProxy.checked = r.invidiousAlwaysProxy;
youtubeListen.checked = r.youtubeListen;
playerStyle.value = youtubeHelper.getInvidiousPlayerStyle();
speed.value = r.invidiousSpeed;
quality.value = r.invidiousQuality;
qualityDash.value = r.invidiousQualityDash;
continueAutoplay.checked = youtubeHelper.getInvidiousContinueAutoplay();
invidiousContinue.checked = youtubeHelper.getInvidiousContinue();
alwaysProxy.checked = youtubeHelper.getInvidiousAlwaysProxy();
youtubeListen.checked = youtubeHelper.getYoutubeListen();
volume.value = r.youtubeVolume;
volumeValue.textContent = `${r.youtubeVolume}%`;
speed.value = youtubeHelper.getInvidiousSpeed();
quality.value = youtubeHelper.getInvidiousQuality();
qualityDash.value = youtubeHelper.getInvidiousQualityDash();
comments0.value = r.invidiousComments[0];
comments1.value = r.invidiousComments[1];
volume.value = youtubeHelper.getVolume();
volumeValue.textContent = `${youtubeHelper.getVolume()}%`;
captions0.value = r.invidiousCaptions[0];
captions1.value = r.invidiousCaptions[1];
captions2.value = r.invidiousCaptions[2];
comments0.value = youtubeHelper.getInvidiousComments()[0];
comments1.value = youtubeHelper.getInvidiousComments()[1];
relatedVideo.checked = r.invidiousRelatedVideos;
annotations.checked = r.invidiousAnnotations;
extendDesc.checked = r.invidiousExtendDesc;
vrMode.checked = r.invidiousVrMode;
savePlayerPos.checked = r.invidiousSavePlayerPos;
captions0.value = youtubeHelper.getInvidiousCaptions()[0];
captions1.value = youtubeHelper.getInvidiousCaptions()[1];
captions2.value = youtubeHelper.getInvidiousCaptions()[2];
region.value = r.invidiousRegion;
darkMode.value = r.invidiousDarkMode;
thin_mode.checked = r.invidiousThinMode;
default_home.value = r.invidiousDefaultHome;
relatedVideo.checked = youtubeHelper.getInvidiousRelatedVideos();
annotations.checked = youtubeHelper.getInvidiousAnnotations();
extendDesc.checked = youtubeHelper.getInvidiousExtendDesc();
vrMode.checked = youtubeHelper.getInvidiousVrMode();
savePlayerPos.checked = youtubeHelper.getInvidiousSavePlayerPos();
feed_menu0.value = r.invidiousFeedMenuList[0];
feed_menu1.value = r.invidiousFeedMenuList[1];
region.value = youtubeHelper.getInvidiousRegion();
darkMode.value = youtubeHelper.getInvidiousDarkMode();
thin_mode.checked = youtubeHelper.getInvidiousThinMode();
default_home.value = youtubeHelper.getInvidiousDefaultHome();
feed_menu0.value = youtubeHelper.getInvidiousFeedMenuList()[0];
feed_menu1.value = youtubeHelper.getInvidiousFeedMenuList()[1];
browser.storage.local.get("invidiousLatency").then(r => {
commonHelper.processDefaultCustomInstances(
'invidious',
'normal',
youtubeHelper,
document,
youtubeHelper.getInvidiousNormalRedirectsChecks,
youtubeHelper.setInvidiousNormalRedirectsChecks,
youtubeHelper.getInvidiousNormalCustomRedirects,
youtubeHelper.setInvidiousNormalCustomRedirects,
r.invidiousLatency
);
})
commonHelper.processDefaultCustomInstances(
'invidious',
'tor',
youtubeHelper,
document,
youtubeHelper.getInvidiousTorRedirectsChecks,
youtubeHelper.setInvidiousTorRedirectsChecks,
youtubeHelper.getInvidiousTorCustomRedirects,
youtubeHelper.setInvidiousTorCustomRedirects
);
});
commonHelper.processDefaultCustomInstances('invidious', 'normal', youtubeHelper, document);
commonHelper.processDefaultCustomInstances('invidious', 'tor', youtubeHelper, document);
}
)
}
init()
init();
let latencyInvidiousElement = document.getElementById("latency-invidious");
let latencyInvidiousLabel = document.getElementById("latency-invidious-label");
@ -160,17 +172,7 @@ latencyInvidiousElement.addEventListener("click",
commonHelper.testLatency(latencyInvidiousLabel, redirects.invidious.normal).then(r => {
browser.storage.local.set({ invidiousLatency: r });
latencyInvidiousLabel.innerHTML = oldHtml;
commonHelper.processDefaultCustomInstances(
'invidious',
'normal',
youtubeHelper,
document,
youtubeHelper.getInvidiousNormalRedirectsChecks,
youtubeHelper.setInvidiousNormalRedirectsChecks,
youtubeHelper.getInvidiousNormalCustomRedirects,
youtubeHelper.setInvidiousNormalCustomRedirects,
r,
);
commonHelper.processDefaultCustomInstances('invidious', 'normal', youtubeHelper, document);
latencyInvidiousElement.removeEventListener("click", reloadWindow);
});
}

View File

@ -44,7 +44,6 @@ function selectSkipModify(value, boolean) {
}
let selectSkip = [];
piped.addEventListener("change", async () => {
console.log("changed piped settings");
let pipedEnabledCodecsResult = [];
for (const opt of pipedEnabledCodecs.options)
if (opt.selected) pipedEnabledCodecsResult.push(opt.value);
@ -59,7 +58,7 @@ piped.addEventListener("change", async () => {
selectSkipModify('poi_highlight', pipedSelectedSkipPoiHighlight.checked);
selectSkipModify('filler', pipedSelectedSkipFiller.checked);
await youtubeHelper.setYoutubeSettings({
await browser.storage.local.set({
pipedQuality: pipedQuality.value,
pipedBufferGoal: pipedBufferGoal.value,
pipedRegion: pipedRegion.value,
@ -80,89 +79,78 @@ piped.addEventListener("change", async () => {
init();
});
function init() {
youtubeHelper.init().then(() => {
pipedSponsorblock.checked = youtubeHelper.getPipedSponsorblock();
pipedDdlTheme.value = youtubeHelper.getPipedDdlTheme();
selectSkip = youtubeHelper.getPipedSelectedSkip();
pipedSelectedSkipSponsor.checked = selectSkip.includes('sponsor');
pipedSelectedSkipIntro.checked = selectSkip.includes('intro');
pipedSelectedSkipOutro.checked = selectSkip.includes('outro');
pipedSelectedSkipPreview.checked = selectSkip.includes('preview');
autoplay.checked = youtubeHelper.getAutoplay();
pipedSelectedSkipInteraction.checked = selectSkip.includes('interaction');
pipedSelectedSkipSelfpromo.checked = selectSkip.includes('selfpromo');
pipedSelectedSkipMusicOfftopic.checked = selectSkip.includes('music_offtopic');
pipedSelectedSkipPoiHighlight.checked = selectSkip.includes('poi_highlight');
pipedSelectedSkipFiller.checked = selectSkip.includes('filler');
pipedListen.checked = youtubeHelper.getYoutubeListen();
pipedQuality.value = youtubeHelper.getPipedQuality();
pipedBufferGoal.value = youtubeHelper.getPipedBufferGoal();
pipedRegion.value = youtubeHelper.getPipedRegion();
pipedHomepage.value = youtubeHelper.getPipedHomepage();
pipedComments.checked = youtubeHelper.getPipedComments();
pipedMinimizeDescription.checked = youtubeHelper.getPipedMinimizeDescription();
pipedWatchHistory.checked = youtubeHelper.getPipedWatchHistory();
pipedEnabledCodecs.value = youtubeHelper.getPipedEnabledCodecs();
pipedDisableLBRY.checked = youtubeHelper.getPipedDisableLBRY();
pipedProxyLBRY.checked = youtubeHelper.getPipedProxyLBRY();
async function init() {
await browser.storage.local.get(
[
"youtubeVolume",
"youtubeAutoplay",
"youtubeListen",
volume.value = youtubeHelper.getVolume();
volumeValue.textContent = `${youtubeHelper.getVolume()}%`;
"pipedBufferGoal",
"pipedComments",
"pipedDisableLBRY",
"pipedEnabledCodecs",
"pipedHomepage",
"pipedMinimizeDescription",
"pipedProxyLBRY",
"pipedQuality",
"pipedRegion",
"pipedSelectedSkip",
"pipedSponsorblock",
"pipedDdlTheme",
"pipedWatchHistory",
],
r => {
pipedSponsorblock.checked = r.pipedSponsorblock;
pipedDdlTheme.value = r.pipedDdlTheme;
selectSkip = r.pipedSelectedSkip;
pipedSelectedSkipSponsor.checked = selectSkip.includes('sponsor');
pipedSelectedSkipIntro.checked = selectSkip.includes('intro');
pipedSelectedSkipOutro.checked = selectSkip.includes('outro');
pipedSelectedSkipPreview.checked = selectSkip.includes('preview');
autoplay.checked = r.youtubeAutoplay;
pipedSelectedSkipInteraction.checked = selectSkip.includes('interaction');
pipedSelectedSkipSelfpromo.checked = selectSkip.includes('selfpromo');
pipedSelectedSkipMusicOfftopic.checked = selectSkip.includes('music_offtopic');
pipedSelectedSkipPoiHighlight.checked = selectSkip.includes('poi_highlight');
pipedSelectedSkipFiller.checked = selectSkip.includes('filler');
pipedListen.checked = r.youtubeListen;
pipedQuality.value = r.pipedQuality;
pipedBufferGoal.value = r.pipedBufferGoal;
pipedRegion.value = r.pipedRegion;
pipedHomepage.value = r.pipedHomepage;
pipedComments.checked = r.pipedComments;
pipedMinimizeDescription.checked = r.pipedMinimizeDescription;
pipedWatchHistory.checked = r.pipedWatchHistory;
pipedEnabledCodecs.value = r.pipedEnabledCodecs;
pipedDisableLBRY.checked = r.pipedDisableLBRY;
pipedProxyLBRY.checked = r.pipedProxyLBRY;
browser.storage.local.get("pipedLatency").then(r => {
commonHelper.processDefaultCustomInstances(
'piped',
'normal',
youtubeHelper,
document,
youtubeHelper.getPipedNormalRedirectsChecks,
youtubeHelper.setPipedNormalRedirectsChecks,
youtubeHelper.getPipedNormalCustomRedirects,
youtubeHelper.setPipedNormalCustomRedirects,
r.pipedLatency,
);
});
volume.value = r.youtubeVolume;
volumeValue.textContent = `${r.youtubeVolume}%`;
commonHelper.processDefaultCustomInstances(
'piped',
'tor',
youtubeHelper,
document,
youtubeHelper.getPipedTorRedirectsChecks,
youtubeHelper.setPipedTorRedirectsChecks,
youtubeHelper.getPipedTorCustomRedirects,
youtubeHelper.setPipedTorCustomRedirects
);
});
commonHelper.processDefaultCustomInstances('piped', 'normal', youtubeHelper, document);
commonHelper.processDefaultCustomInstances('piped', 'tor', youtubeHelper, document);
}
);
}
init();
let latencyPipedElement = document.getElementById("latency-piped");
let latencyPipedLabel = document.getElementById("latency-piped-label");
latencyPipedElement.addEventListener("click",
async () => {
let reloadWindow = () => location.reload();
latencyPipedElement.addEventListener("click", reloadWindow);
await youtubeHelper.init();
let redirects = youtubeHelper.getRedirects();
const oldHtml = latencyPipedLabel.innerHTML;
latencyPipedLabel.innerHTML = '...';
commonHelper.testLatency(latencyPipedLabel, redirects.piped.normal).then(r => {
browser.storage.local.set({ pipedLatency: r });
latencyPipedLabel.innerHTML = oldHtml;
commonHelper.processDefaultCustomInstances(
'piped',
'normal',
youtubeHelper,
document,
youtubeHelper.getPipedNormalRedirectsChecks,
youtubeHelper.setPipedNormalRedirectsChecks,
youtubeHelper.getPipedNormalCustomRedirects,
youtubeHelper.setPipedNormalCustomRedirects,
r,
);
latencyPipedElement.removeEventListener("click", reloadWindow);
});
}
async () => {
let reloadWindow = () => location.reload();
latencyPipedElement.addEventListener("click", reloadWindow);
await youtubeHelper.init();
let redirects = youtubeHelper.getRedirects();
const oldHtml = latencyPipedLabel.innerHTML;
latencyPipedLabel.innerHTML = '...';
commonHelper.testLatency(latencyPipedLabel, redirects.piped.normal).then(r => {
browser.storage.local.set({ pipedLatency: r });
latencyPipedLabel.innerHTML = oldHtml;
commonHelper.processDefaultCustomInstances('piped', 'normal', youtubeHelper, document);
latencyPipedElement.removeEventListener("click", reloadWindow);
});
}
);

View File

@ -44,7 +44,7 @@ pipedMaterialElement.addEventListener("change", async () => {
selectSkipModify('selfpromo', selectedSkipSelfpromoElement.checked);
selectSkipModify('music_offtopic', selectedSkipMusicOfftopicElement.checked);
await youtubeHelper.setYoutubeSettings({
await browser.storage.local.set({
youtubeListen: listenElement.checked,
pipedDisableLBRY: disableLBRYElement.checked,
pipedProxyLBRY: proxyLBRYElement.checked,
@ -68,77 +68,61 @@ pipedMaterialElement.addEventListener("change", async () => {
});
function init() {
youtubeHelper.init().then(() => {
autoplayElement.checked = youtubeHelper.getAutoplay();
browser.storage.local.get(
[
"youtubeAutoplay",
"youtubeVolume",
"youtubeListen",
listenElement.checked = youtubeHelper.getYoutubeListen();
disableLBRYElement.checked = youtubeHelper.getPipedDisableLBRY();
proxyLBRYElement.checked = youtubeHelper.getPipedProxyLBRY();
sponsorblockElement.checked = youtubeHelper.getPipedSponsorblock();
skipToLastPointElement.checked = youtubeHelper.getPipedMaterialSkipToLastPoint();
selectedSkipSponsorElement.checked = selectSkip.includes('sponsors');
selectedSkipIntroElement.checked = selectSkip.includes('intro');
selectedSkipOutroElement.checked = selectSkip.includes('outro');
selectedSkipPreviewElement.checked = selectSkip.includes('preview');
selectedSkipInteractionElement.checked = selectSkip.includes('interaction');
selectedSkipSelfpromoElement.checked = selectSkip.includes('selfpromo');
selectedSkipMusicOfftopicElement.checked = selectSkip.includes('music_offtopic');
"pipedDisableLBRY",
"pipedProxyLBRY",
"pipedSelectedSkip",
"pipedSponsorblock",
volumeElement.value = youtubeHelper.getVolume();
volumeValueElement.textContent = `${youtubeHelper.getVolume()}%`;
browser.storage.local.get("pipedMaterialLatency").then(r => {
commonHelper.processDefaultCustomInstances(
'pipedMaterial',
'normal',
youtubeHelper,
document,
youtubeHelper.getPipedMaterialNormalRedirectsChecks,
youtubeHelper.setPipedMaterialNormalRedirectsChecks,
youtubeHelper.getPipedMaterialNormalCustomRedirects,
youtubeHelper.setPipedMaterialNormalCustomRedirects,
r.pipedMaterialLatency,
);
"pipedMaterialSkipToLastPoint",
],
r => {
autoplayElement.checked = r.youtubeAutoplay;
listenElement.checked = r.youtubeListen;
disableLBRYElement.checked = r.pipedDisableLBRY;
proxyLBRYElement.checked = r.pipedProxyLBRY;
sponsorblockElement.checked = r.pipedSponsorblock;
skipToLastPointElement.checked = r.pipedMaterialSkipToLastPoint;
selectSkip = r.pipedSelectedSkip;
selectedSkipSponsorElement.checked = selectSkip.includes('sponsors');
selectedSkipIntroElement.checked = selectSkip.includes('intro');
selectedSkipOutroElement.checked = selectSkip.includes('outro');
selectedSkipPreviewElement.checked = selectSkip.includes('preview');
selectedSkipInteractionElement.checked = selectSkip.includes('interaction');
selectedSkipSelfpromoElement.checked = selectSkip.includes('selfpromo');
selectedSkipMusicOfftopicElement.checked = selectSkip.includes('music_offtopic');
volumeElement.value = r.youtubeVolume;
volumeValueElement.textContent = `${r.youtubeVolume}%`;
commonHelper.processDefaultCustomInstances('pipedMaterial', 'normal', youtubeHelper, document);
commonHelper.processDefaultCustomInstances('pipedMaterial', 'tor', youtubeHelper, document);
});
commonHelper.processDefaultCustomInstances(
'pipedMaterial',
'tor',
youtubeHelper,
document,
youtubeHelper.getPipedMaterialTorRedirectsChecks,
youtubeHelper.setPipedMaterialTorRedirectsChecks,
youtubeHelper.getPipedMaterialTorCustomRedirects,
youtubeHelper.setPipedMaterialTorCustomRedirects
);
});
}
init();
let latencyPipedMaterialElement = document.getElementById("latency-pipedMaterial");
let latencyPipedMaterialLabel = document.getElementById("latency-pipedMaterial-label");
latencyPipedMaterialElement.addEventListener("click",
async () => {
let reloadWindow = () => location.reload();
latencyPipedMaterialElement.addEventListener("click", reloadWindow);
await youtubeHelper.init();
let redirects = youtubeHelper.getRedirects();
const oldHtml = latencyPipedMaterialLabel.innerHTML;
latencyPipedMaterialLabel.innerHTML = '...';
commonHelper.testLatency(latencyPipedMaterialLabel, redirects.pipedMaterial.normal).then(r => {
browser.storage.local.set({ pipedMaterialLatency: r });
latencyPipedMaterialLabel.innerHTML = oldHtml;
commonHelper.processDefaultCustomInstances(
'pipedMaterial',
'normal',
youtubeHelper,
document,
youtubeHelper.getPipedMaterialNormalRedirectsChecks,
youtubeHelper.setPipedMaterialNormalRedirectsChecks,
youtubeHelper.getPipedMaterialNormalCustomRedirects,
youtubeHelper.setPipedMaterialNormalCustomRedirects,
r,
);
latencyPipedMaterialElement.removeEventListener("click", reloadWindow);
});
}
async () => {
let reloadWindow = () => location.reload();
latencyPipedMaterialElement.addEventListener("click", reloadWindow);
await youtubeHelper.init();
let redirects = youtubeHelper.getRedirects();
const oldHtml = latencyPipedMaterialLabel.innerHTML;
latencyPipedMaterialLabel.innerHTML = '...';
commonHelper.testLatency(latencyPipedMaterialLabel, redirects.pipedMaterial.normal).then(r => {
browser.storage.local.set({ pipedMaterialLatency: r });
latencyPipedMaterialLabel.innerHTML = oldHtml;
commonHelper.processDefaultCustomInstances('pipedMaterial', 'normal', youtubeHelper, document);
latencyPipedMaterialElement.removeEventListener("click", reloadWindow);
});
}
);

View File

@ -95,9 +95,8 @@ function changeProtocolSettings(protocol) {
}
}
document.addEventListener("change", () => {
youtubeHelper.setYoutubeSettings({
document.addEventListener("change", async () => {
await browser.storage.local.set({
disableYoutube: !disableYoutubeElement.checked,
youtubeFrontend: youtubeFrontendElement.value,
youtubeEmbedFrontend: youtubeEmbedFrontendElement.value,
@ -111,24 +110,43 @@ document.addEventListener("change", () => {
changeFrontendsSettings();
})
youtubeHelper.init().then(() => {
disableYoutubeElement.checked = !youtubeHelper.getDisable();
enableYoutubeCustomSettingsElement.checked = youtubeHelper.getEnableCustomSettings();
OnlyEmbeddedVideoElement.value = youtubeHelper.getOnlyEmbeddedVideo();
bypassWatchOnYoutubeElement.checked = youtubeHelper.getBypassWatchOnYoutube();
let frontend = youtubeHelper.getFrontend();
youtubeFrontendElement.value = frontend;
changeFrontendsSettings();
browser.storage.local.get(
[
"disableYoutube",
"enableYoutubeCustomSettings",
"OnlyEmbeddedVideo",
"youtubeRedirects",
"youtubeFrontend",
let protocol = youtubeHelper.getProtocol();
protocolElement.value = protocol;
changeProtocolSettings(protocol);
"alwaysUsePreferred",
"youtubeEmbedFrontend",
"youtubeProtocol",
"bypassWatchOnYoutube",
],
r => {
disableYoutubeElement.checked = !r.disableYoutube;
enableYoutubeCustomSettingsElement.checked = r.enableYoutubeCustomSettings;
let youtubeEmbedFrontend = youtubeHelper.getYoutubeEmbedFrontend()
youtubeEmbedFrontendElement.value = youtubeEmbedFrontend
if (frontend == "freetube" || frontend == "yatte") {
changeYoutubeEmbedFrontendsSettings(youtubeEmbedFrontend)
};
});
OnlyEmbeddedVideoElement.value = r.OnlyEmbeddedVideo;
bypassWatchOnYoutubeElement.checked = r.bypassWatchOnYoutube;
let frontend = r.youtubeFrontend;
youtubeFrontendElement.value = frontend;
changeFrontendsSettings();
let protocol = r.youtubeProtocol;
protocolElement.value = protocol;
changeProtocolSettings(protocol);
let youtubeEmbedFrontend = r.youtubeEmbedFrontend;
youtubeEmbedFrontendElement.value = youtubeEmbedFrontend
if (frontend == "freetube" || frontend == "yatte") {
changeYoutubeEmbedFrontendsSettings(youtubeEmbedFrontend)
};
}
);
window.onblur = () => {
youtubeHelper.initInvidiousCookies();
}