Restructuring and simplifying code #229
This commit is contained in:
parent
95582f0b15
commit
a78d6cdd04
|
@ -50,7 +50,19 @@ async function updateInstances() {
|
||||||
|
|
||||||
const instances = JSON.parse(request.responseText);
|
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);
|
twitterHelper.setRedirects(instances.nitter);
|
||||||
|
|
||||||
|
@ -80,10 +92,6 @@ async function updateInstances() {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
function isFirefox() {
|
|
||||||
return typeof InstallTrigger !== "undefined";
|
|
||||||
}
|
|
||||||
|
|
||||||
function protocolHost(url) {
|
function protocolHost(url) {
|
||||||
if (url.username && url.password) return `${url.protocol}//${url.username}:${url.password}@${url.host}`;
|
if (url.username && url.password) return `${url.protocol}//${url.username}:${url.password}@${url.host}`;
|
||||||
return `${url.protocol}//${url.host}`;
|
return `${url.protocol}//${url.host}`;
|
||||||
|
@ -94,18 +102,17 @@ async function processDefaultCustomInstances(
|
||||||
protocol,
|
protocol,
|
||||||
nameHelper,
|
nameHelper,
|
||||||
document,
|
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 nameProtocolElement = document.getElementById(name).getElementsByClassName(protocol)[0];
|
||||||
|
|
||||||
let nameCustomInstances = [];
|
let nameCustomInstances = [];
|
||||||
let nameCheckListElement = nameProtocolElement.getElementsByClassName('checklist')[0];
|
let nameCheckListElement = nameProtocolElement.getElementsByClassName('checklist')[0];
|
||||||
let nameDefaultRedirects;
|
|
||||||
|
|
||||||
await initCloudflareList();
|
await initCloudflareList();
|
||||||
|
|
||||||
|
@ -122,59 +129,103 @@ async function processDefaultCustomInstances(
|
||||||
nameProtocolElement.getElementsByClassName('toogle-all')[0].checked = isTrue;
|
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 =
|
nameCheckListElement.innerHTML =
|
||||||
[
|
[
|
||||||
`<div><x data-localise="__MSG_toggleAll__">Toggle All</x><input type="checkbox" class="toogle-all" /></div>`,
|
`<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 > `),
|
<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');
|
].join('\n<hr>\n');
|
||||||
|
|
||||||
localise.localisePage();
|
localise.localisePage();
|
||||||
|
|
||||||
calcNameCheckBoxes();
|
calcNameCheckBoxes();
|
||||||
nameProtocolElement.getElementsByClassName('toogle-all')[0].addEventListener("change", event => {
|
nameProtocolElement.getElementsByClassName('toogle-all')[0].addEventListener("change", async event => {
|
||||||
if (event.target.checked)
|
if (event.target.checked)
|
||||||
nameDefaultRedirects = [...nameHelper.getRedirects()[name][protocol]];
|
nameDefaultRedirects = [...nameHelper.getRedirects()[name][protocol]];
|
||||||
else
|
else
|
||||||
nameDefaultRedirects = [];
|
nameDefaultRedirects = [];
|
||||||
setNameRedirectsChecks(nameDefaultRedirects);
|
|
||||||
|
await setRedirectsChecks(nameDefaultRedirects);
|
||||||
calcNameCheckBoxes();
|
calcNameCheckBoxes();
|
||||||
});
|
});
|
||||||
|
|
||||||
for (let element of nameCheckListElement.getElementsByTagName('input')) {
|
for (let element of nameCheckListElement.getElementsByTagName('input')) {
|
||||||
if (element.className != 'toogle-all')
|
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)
|
if (event.target.checked)
|
||||||
nameDefaultRedirects.push(element.className)
|
nameDefaultRedirects.push(element.className)
|
||||||
else {
|
else {
|
||||||
let index = nameDefaultRedirects.indexOf(element.className);
|
let index = nameDefaultRedirects.indexOf(element.className);
|
||||||
if (index > -1) nameDefaultRedirects.splice(index, 1);
|
if (index > -1) nameDefaultRedirects.splice(index, 1);
|
||||||
}
|
}
|
||||||
setNameRedirectsChecks(nameDefaultRedirects);
|
await setRedirectsChecks(nameDefaultRedirects);
|
||||||
calcNameCheckBoxes();
|
calcNameCheckBoxes();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
nameCustomInstances = getNameCustomRedirects();
|
|
||||||
function calcNameCustomInstances() {
|
function calcNameCustomInstances() {
|
||||||
nameProtocolElement.getElementsByClassName('custom-checklist')[0].innerHTML =
|
nameProtocolElement.getElementsByClassName('custom-checklist')[0].innerHTML =
|
||||||
nameCustomInstances.map(
|
nameCustomInstances.map(
|
||||||
x => `<div> ${x} <button class="add clear-${x}">
|
x => `<div>
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" height="20px" viewBox="0 0 24 24" width="20px"
|
${x}
|
||||||
fill="currentColor">
|
<button class="add clear-${x}">
|
||||||
<path d="M0 0h24v24H0V0z" fill="none" />
|
<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" />
|
<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>
|
</svg>
|
||||||
</button>
|
</button>
|
||||||
</div >
|
</div>
|
||||||
<hr>`
|
<hr>`
|
||||||
).join('\n');
|
).join('\n');
|
||||||
|
|
||||||
for (const item of nameCustomInstances) {
|
for (const item of nameCustomInstances) {
|
||||||
nameProtocolElement.getElementsByClassName(`clear-${item}`)[0].addEventListener("click", () => {
|
nameProtocolElement.getElementsByClassName(`clear-${item}`)[0].addEventListener("click", () => {
|
||||||
let index = nameCustomInstances.indexOf(item);
|
let index = nameCustomInstances.indexOf(item);
|
||||||
if (index > -1) nameCustomInstances.splice(index, 1);
|
if (index > -1) nameCustomInstances.splice(index, 1);
|
||||||
setNameCustomRedirects(nameCustomInstances);
|
setCustom(nameCustomInstances);
|
||||||
calcNameCustomInstances();
|
calcNameCustomInstances();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -188,13 +239,14 @@ async function processDefaultCustomInstances(
|
||||||
if (nameCustomInstanceInput.validity.valid && !nameHelper.getRedirects()[name][protocol].includes(protocolHostVar)) {
|
if (nameCustomInstanceInput.validity.valid && !nameHelper.getRedirects()[name][protocol].includes(protocolHostVar)) {
|
||||||
if (!nameCustomInstances.includes(protocolHostVar)) {
|
if (!nameCustomInstances.includes(protocolHostVar)) {
|
||||||
nameCustomInstances.push(protocolHostVar)
|
nameCustomInstances.push(protocolHostVar)
|
||||||
setNameCustomRedirects(nameCustomInstances);
|
setCustom(nameCustomInstances);
|
||||||
nameCustomInstanceInput.value = '';
|
nameCustomInstanceInput.value = '';
|
||||||
}
|
}
|
||||||
calcNameCustomInstances();
|
calcNameCustomInstances();
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
function isRtl() {
|
function isRtl() {
|
||||||
return ["ar", "iw", "ku", "fa", "ur"].includes(browser.i18n.getUILanguage())
|
return ["ar", "iw", "ku", "fa", "ur"].includes(browser.i18n.getUILanguage())
|
||||||
}
|
}
|
||||||
|
@ -243,7 +295,6 @@ export default {
|
||||||
getRandomInstance,
|
getRandomInstance,
|
||||||
updateInstances,
|
updateInstances,
|
||||||
protocolHost,
|
protocolHost,
|
||||||
isFirefox,
|
|
||||||
processDefaultCustomInstances,
|
processDefaultCustomInstances,
|
||||||
isRtl,
|
isRtl,
|
||||||
testLatency,
|
testLatency,
|
||||||
|
|
|
@ -12,16 +12,6 @@ let redirects = {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
const getRedirects = () => redirects;
|
const getRedirects = () => redirects;
|
||||||
const getCustomRedirects = function () {
|
|
||||||
return {
|
|
||||||
"rimgo": {
|
|
||||||
"normal": [...rimgoNormalRedirectsChecks, ...rimgoNormalCustomRedirects],
|
|
||||||
"tor": [...rimgoTorRedirectsChecks, ...rimgoTorCustomRedirects],
|
|
||||||
"i2p": [...rimgoI2pRedirectsChecks, ...rimgoI2pCustomRedirects]
|
|
||||||
},
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
function setRedirects(val) {
|
function setRedirects(val) {
|
||||||
redirects.rimgo = val;
|
redirects.rimgo = val;
|
||||||
browser.storage.local.set({ imgurRedirects: redirects })
|
browser.storage.local.set({ imgurRedirects: redirects })
|
||||||
|
@ -31,103 +21,50 @@ function setRedirects(val) {
|
||||||
var index = rimgoNormalRedirectsChecks.indexOf(item);
|
var index = rimgoNormalRedirectsChecks.indexOf(item);
|
||||||
if (index !== -1) rimgoNormalRedirectsChecks.splice(index, 1);
|
if (index !== -1) rimgoNormalRedirectsChecks.splice(index, 1);
|
||||||
}
|
}
|
||||||
setRimgoNormalRedirectsChecks(rimgoNormalRedirectsChecks);
|
browser.storage.local.set({rimgoNormalRedirectsChecks});
|
||||||
|
|
||||||
for (const item of rimgoTorRedirectsChecks)
|
for (const item of rimgoTorRedirectsChecks)
|
||||||
if (!redirects.rimgo.tor.includes(item)) {
|
if (!redirects.rimgo.tor.includes(item)) {
|
||||||
var index = rimgoTorRedirectsChecks.indexOf(item);
|
var index = rimgoTorRedirectsChecks.indexOf(item);
|
||||||
if (index !== -1) rimgoTorRedirectsChecks.splice(index, 1);
|
if (index !== -1) rimgoTorRedirectsChecks.splice(index, 1);
|
||||||
}
|
}
|
||||||
setRimgoTorRedirectsChecks(rimgoTorRedirectsChecks);
|
browser.storage.local.set({rimgoTorRedirectsChecks});
|
||||||
|
|
||||||
for (const item of rimgoI2pRedirectsChecks)
|
for (const item of rimgoI2pRedirectsChecks)
|
||||||
if (!redirects.rimgo.i2p.includes(item)) {
|
if (!redirects.rimgo.i2p.includes(item)) {
|
||||||
var index = rimgoI2pRedirectsChecks.indexOf(item);
|
var index = rimgoI2pRedirectsChecks.indexOf(item);
|
||||||
if (index !== -1) rimgoI2pRedirectsChecks.splice(index, 1);
|
if (index !== -1) rimgoI2pRedirectsChecks.splice(index, 1);
|
||||||
}
|
}
|
||||||
setRimgoI2pRedirectsChecks(rimgoI2pRedirectsChecks);
|
browser.storage.local.set({rimgoI2pRedirectsChecks});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
let disable;
|
let disable;
|
||||||
const getDisable = () => disable;
|
|
||||||
function setDisable(val) {
|
|
||||||
disable = val;
|
|
||||||
browser.storage.local.set({ disableImgur: disable })
|
|
||||||
}
|
|
||||||
|
|
||||||
let protocol;
|
let protocol;
|
||||||
const getProtocol = () => protocol;
|
|
||||||
function setProtocol(val) {
|
|
||||||
protocol = val;
|
|
||||||
browser.storage.local.set({ imgurProtocol: val })
|
|
||||||
console.log("imgurProtocol: ", val)
|
|
||||||
}
|
|
||||||
|
|
||||||
let rimgoNormalRedirectsChecks;
|
let rimgoNormalRedirectsChecks;
|
||||||
const getRimgoNormalRedirectsChecks = () => rimgoNormalRedirectsChecks;
|
|
||||||
function setRimgoNormalRedirectsChecks(val) {
|
|
||||||
rimgoNormalRedirectsChecks = val;
|
|
||||||
browser.storage.local.set({ rimgoNormalRedirectsChecks })
|
|
||||||
console.log("rimgoNormalRedirectsChecks: ", val)
|
|
||||||
}
|
|
||||||
|
|
||||||
let rimgoTorRedirectsChecks;
|
let rimgoTorRedirectsChecks;
|
||||||
const getRimgoTorRedirectsChecks = () => rimgoTorRedirectsChecks;
|
|
||||||
function setRimgoTorRedirectsChecks(val) {
|
|
||||||
rimgoTorRedirectsChecks = val;
|
|
||||||
browser.storage.local.set({ rimgoTorRedirectsChecks })
|
|
||||||
console.log("rimgoTorRedirectsChecks: ", val)
|
|
||||||
}
|
|
||||||
|
|
||||||
let rimgoI2pRedirectsChecks;
|
let rimgoI2pRedirectsChecks;
|
||||||
const getRimgoI2pRedirectsChecks = () => rimgoI2pRedirectsChecks;
|
|
||||||
function setRimgoI2pRedirectsChecks(val) {
|
|
||||||
rimgoI2pRedirectsChecks = val;
|
|
||||||
browser.storage.local.set({ rimgoI2pRedirectsChecks })
|
|
||||||
console.log("rimgoI2pRedirectsChecks: ", val)
|
|
||||||
}
|
|
||||||
|
|
||||||
let rimgoNormalCustomRedirects = [];
|
let rimgoNormalCustomRedirects = [];
|
||||||
const getRimgoNormalCustomRedirects = () => rimgoNormalCustomRedirects;
|
|
||||||
function setRimgoNormalCustomRedirects(val) {
|
|
||||||
rimgoNormalCustomRedirects = val;
|
|
||||||
browser.storage.local.set({ rimgoNormalCustomRedirects })
|
|
||||||
console.log("rimgoNormalCustomRedirects: ", val)
|
|
||||||
}
|
|
||||||
|
|
||||||
let rimgoTorCustomRedirects = [];
|
let rimgoTorCustomRedirects = [];
|
||||||
const getRimgoTorCustomRedirects = () => rimgoTorCustomRedirects;
|
|
||||||
function setRimgoTorCustomRedirects(val) {
|
|
||||||
rimgoTorCustomRedirects = val;
|
|
||||||
browser.storage.local.set({ rimgoTorCustomRedirects })
|
|
||||||
console.log("rimgoTorCustomRedirects: ", val)
|
|
||||||
}
|
|
||||||
|
|
||||||
let rimgoI2pCustomRedirects = [];
|
let rimgoI2pCustomRedirects = [];
|
||||||
const getRimgoI2pCustomRedirects = () => rimgoI2pCustomRedirects;
|
|
||||||
function setRimgoI2pCustomRedirects(val) {
|
|
||||||
rimgoI2pCustomRedirects = val;
|
|
||||||
browser.storage.local.set({ rimgoI2pCustomRedirects })
|
|
||||||
console.log("rimgoI2pCustomRedirects: ", val)
|
|
||||||
}
|
|
||||||
|
|
||||||
function isImgur(url, initiator) {
|
function redirect(url, type, 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) {
|
|
||||||
// https://imgur.com/gallery/s4WXQmn
|
// https://imgur.com/gallery/s4WXQmn
|
||||||
// https://imgur.com/a/H8M4rcp
|
// https://imgur.com/a/H8M4rcp
|
||||||
// https://imgur.com/gallery/gYiQLWy
|
// https://imgur.com/gallery/gYiQLWy
|
||||||
// https://imgur.com/gallery/cTRwaJU
|
// https://imgur.com/gallery/cTRwaJU
|
||||||
// https://i.imgur.com/CFSQArP.jpeg
|
// 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 (![
|
if (![
|
||||||
"main_frame",
|
"main_frame",
|
||||||
"sub_frame",
|
"sub_frame",
|
||||||
|
@ -191,79 +128,72 @@ function switchInstance(url) {
|
||||||
return `${randomInstance}${url.pathname}${url.search}`;
|
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() {
|
async function init() {
|
||||||
return new Promise(resolve => {
|
return new Promise(resolve => {
|
||||||
fetch('/instances/data.json')
|
browser.storage.local.get(
|
||||||
.then(response => response.text())
|
[
|
||||||
.then(text => {
|
"disableImgur",
|
||||||
let data = JSON.parse(text);
|
"imgurRedirects",
|
||||||
browser.storage.local.get(
|
"imgurProtocol",
|
||||||
[
|
|
||||||
"disableImgur",
|
|
||||||
"imgurRedirects",
|
|
||||||
|
|
||||||
"rimgoNormalRedirectsChecks",
|
"rimgoNormalRedirectsChecks",
|
||||||
"rimgoNormalCustomRedirects",
|
"rimgoNormalCustomRedirects",
|
||||||
"rimgoTorRedirectsChecks",
|
"rimgoTorRedirectsChecks",
|
||||||
"rimgoTorCustomRedirects",
|
"rimgoTorCustomRedirects",
|
||||||
"rimgoI2pRedirectsChecks",
|
"rimgoI2pRedirectsChecks",
|
||||||
"rimgoI2pCustomRedirects",
|
"rimgoI2pCustomRedirects",
|
||||||
|
],
|
||||||
|
r => {
|
||||||
|
disable = r.disableImgur;
|
||||||
|
protocol = r.imgurProtocol;
|
||||||
|
redirects = r.imgurRedirects;
|
||||||
|
|
||||||
"imgurProtocol",
|
rimgoNormalRedirectsChecks = r.rimgoNormalRedirectsChecks;
|
||||||
],
|
rimgoNormalCustomRedirects = r.rimgoNormalCustomRedirects;
|
||||||
r => {
|
rimgoTorRedirectsChecks = r.rimgoTorRedirectsChecks;
|
||||||
disable = r.disableImgur ?? false;
|
rimgoTorCustomRedirects = r.rimgoTorCustomRedirects;
|
||||||
|
rimgoI2pRedirectsChecks = r.rimgoI2pRedirectsChecks;
|
||||||
|
rimgoI2pCustomRedirects = r.rimgoI2pCustomRedirects;
|
||||||
|
|
||||||
protocol = r.imgurProtocol ?? "normal";
|
resolve();
|
||||||
|
}
|
||||||
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();
|
|
||||||
}
|
|
||||||
)
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
getRedirects,
|
getRedirects,
|
||||||
getCustomRedirects,
|
|
||||||
setRedirects,
|
setRedirects,
|
||||||
|
|
||||||
getDisable,
|
|
||||||
setDisable,
|
|
||||||
|
|
||||||
|
|
||||||
getProtocol,
|
|
||||||
setProtocol,
|
|
||||||
|
|
||||||
getRimgoNormalRedirectsChecks,
|
|
||||||
setRimgoNormalRedirectsChecks,
|
|
||||||
getRimgoTorRedirectsChecks,
|
|
||||||
setRimgoTorRedirectsChecks,
|
|
||||||
getRimgoI2pRedirectsChecks,
|
|
||||||
setRimgoI2pRedirectsChecks,
|
|
||||||
|
|
||||||
getRimgoNormalCustomRedirects,
|
|
||||||
setRimgoNormalCustomRedirects,
|
|
||||||
getRimgoTorCustomRedirects,
|
|
||||||
setRimgoTorCustomRedirects,
|
|
||||||
getRimgoI2pCustomRedirects,
|
|
||||||
setRimgoI2pCustomRedirects,
|
|
||||||
|
|
||||||
redirect,
|
redirect,
|
||||||
reverse,
|
reverse,
|
||||||
isImgur,
|
|
||||||
init,
|
init,
|
||||||
|
initDefaults,
|
||||||
switchInstance,
|
switchInstance,
|
||||||
};
|
};
|
||||||
|
|
|
@ -12,13 +12,6 @@ let redirects = {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
const getRedirects = () => redirects;
|
const getRedirects = () => redirects;
|
||||||
const getCustomRedirects = function () {
|
|
||||||
return {
|
|
||||||
"bibliogram": {
|
|
||||||
"normal": [...bibliogramNormalRedirectsChecks, ...bibliogramNormalCustomRedirects]
|
|
||||||
},
|
|
||||||
};
|
|
||||||
};
|
|
||||||
function setRedirects(val) {
|
function setRedirects(val) {
|
||||||
redirects.bibliogram = val;
|
redirects.bibliogram = val;
|
||||||
browser.storage.local.set({ instagramRedirects: redirects })
|
browser.storage.local.set({ instagramRedirects: redirects })
|
||||||
|
@ -28,40 +21,13 @@ function setRedirects(val) {
|
||||||
var index = bibliogramNormalRedirectsChecks.indexOf(item);
|
var index = bibliogramNormalRedirectsChecks.indexOf(item);
|
||||||
if (index !== -1) bibliogramNormalRedirectsChecks.splice(index, 1);
|
if (index !== -1) bibliogramNormalRedirectsChecks.splice(index, 1);
|
||||||
}
|
}
|
||||||
setBibliogramNormalRedirectsChecks(bibliogramNormalRedirectsChecks);
|
browser.storage.local.set({ bibliogramNormalRedirectsChecks });
|
||||||
}
|
}
|
||||||
|
|
||||||
let bibliogramNormalRedirectsChecks;
|
let bibliogramNormalRedirectsChecks;
|
||||||
const getBibliogramNormalRedirectsChecks = () => bibliogramNormalRedirectsChecks;
|
|
||||||
function setBibliogramNormalRedirectsChecks(val) {
|
|
||||||
bibliogramNormalRedirectsChecks = val;
|
|
||||||
browser.storage.local.set({ bibliogramNormalRedirectsChecks })
|
|
||||||
console.log("bibliogramNormalRedirectsChecks: ", val)
|
|
||||||
}
|
|
||||||
|
|
||||||
let bibliogramTorRedirectsChecks;
|
let bibliogramTorRedirectsChecks;
|
||||||
const getBibliogramTorRedirectsChecks = () => bibliogramTorRedirectsChecks;
|
|
||||||
function setBibliogramTorRedirectsChecks(val) {
|
|
||||||
bibliogramTorRedirectsChecks = val;
|
|
||||||
browser.storage.local.set({ bibliogramTorRedirectsChecks })
|
|
||||||
console.log("bibliogramTorRedirectsChecks: ", val)
|
|
||||||
}
|
|
||||||
|
|
||||||
let bibliogramNormalCustomRedirects = [];
|
let bibliogramNormalCustomRedirects = [];
|
||||||
const getBibliogramNormalCustomRedirects = () => bibliogramNormalCustomRedirects;
|
|
||||||
function setBibliogramNormalCustomRedirects(val) {
|
|
||||||
bibliogramNormalCustomRedirects = val;
|
|
||||||
browser.storage.local.set({ bibliogramNormalCustomRedirects })
|
|
||||||
console.log("bibliogramNormalCustomRedirects: ", val)
|
|
||||||
}
|
|
||||||
|
|
||||||
let bibliogramTorCustomRedirects = [];
|
let bibliogramTorCustomRedirects = [];
|
||||||
const getBibliogramTorCustomRedirects = () => bibliogramTorCustomRedirects;
|
|
||||||
function setBibliogramTorCustomRedirects(val) {
|
|
||||||
bibliogramTorCustomRedirects = val;
|
|
||||||
browser.storage.local.set({ bibliogramTorCustomRedirects })
|
|
||||||
console.log("bibliogramTorCustomRedirects: ", val)
|
|
||||||
}
|
|
||||||
|
|
||||||
const reservedPaths = [
|
const reservedPaths = [
|
||||||
"u",
|
"u",
|
||||||
|
@ -81,20 +47,8 @@ const bypassPaths = [
|
||||||
/\/(accounts\/|embeds?.js)/
|
/\/(accounts\/|embeds?.js)/
|
||||||
];
|
];
|
||||||
|
|
||||||
let disable;
|
let disable; //disableInstagram
|
||||||
const getDisable = () => disable;
|
let protocol; //instagramProtocol
|
||||||
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)
|
|
||||||
}
|
|
||||||
|
|
||||||
function redirect(url, type, initiator) {
|
function redirect(url, type, initiator) {
|
||||||
if (disable) return;
|
if (disable) return;
|
||||||
|
@ -189,10 +143,7 @@ let applyThemeToSites;
|
||||||
function initBibliogramCookies(url) {
|
function initBibliogramCookies(url) {
|
||||||
let protocolHost = commonHelper.protocolHost(url);
|
let protocolHost = commonHelper.protocolHost(url);
|
||||||
browser.cookies.get(
|
browser.cookies.get(
|
||||||
{
|
{ url: protocolHost, name: "settings" },
|
||||||
url: protocolHost,
|
|
||||||
name: "settings"
|
|
||||||
},
|
|
||||||
cookie => {
|
cookie => {
|
||||||
if (!cookie || !instancesCookies.includes(protocolHost)) {
|
if (!cookie || !instancesCookies.includes(protocolHost)) {
|
||||||
console.log(`initing cookie for ${protocolHost}`);
|
console.log(`initing cookie for ${protocolHost}`);
|
||||||
|
@ -211,89 +162,94 @@ function initBibliogramCookies(url) {
|
||||||
browser.storage.local.set({ instancesCookies })
|
browser.storage.local.set({ instancesCookies })
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
}
|
||||||
console.log("cookie url", protocolHost);
|
|
||||||
console.log("instancesCookies", instancesCookies);
|
|
||||||
};
|
|
||||||
})
|
})
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
async function init() {
|
|
||||||
return new Promise((resolve) => {
|
async function initDefaults() {
|
||||||
fetch('/instances/data.json').then(response => response.text()).then(data => {
|
return new Promise(async resolve => {
|
||||||
|
fetch('/instances/data.json').then(response => response.text()).then(async data => {
|
||||||
let dataJson = JSON.parse(data);
|
let dataJson = JSON.parse(data);
|
||||||
browser.storage.local.get(
|
redirects.bibliogram = dataJson.bibliogram;
|
||||||
[
|
await browser.storage.local.set({
|
||||||
"disableInstagram",
|
disableInstagram: false,
|
||||||
"instagramRedirects",
|
instagramRedirects: {
|
||||||
|
'bibliogram': redirects.bibliogram
|
||||||
|
},
|
||||||
|
|
||||||
"theme",
|
theme: 'DEFAULT',
|
||||||
"applyThemeToSites",
|
applyThemeToSites: false,
|
||||||
|
|
||||||
"instancesCookies",
|
instancesCookies: [],
|
||||||
|
|
||||||
"bibliogramNormalRedirectsChecks",
|
bibliogramNormalRedirectsChecks: [...redirects.bibliogram.normal],
|
||||||
"bibliogramTorRedirectsChecks",
|
bibliogramTorRedirectsChecks: [],
|
||||||
|
|
||||||
"bibliogramNormalCustomRedirects",
|
bibliogramNormalCustomRedirects: [...redirects.bibliogram.tor],
|
||||||
"bibliogramTorCustomRedirects",
|
bibliogramTorCustomRedirects: [],
|
||||||
"instagramProtocol"
|
instagramProtocol: "normal",
|
||||||
],
|
})
|
||||||
r => {
|
resolve();
|
||||||
disable = r.disableInstagram ?? false;
|
}
|
||||||
|
)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
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';
|
"instancesCookies",
|
||||||
applyThemeToSites = r.applyThemeToSites ?? false;
|
|
||||||
|
|
||||||
instancesCookies = r.instancesCookies ?? [];
|
"bibliogramNormalRedirectsChecks",
|
||||||
|
"bibliogramTorRedirectsChecks",
|
||||||
|
|
||||||
bibliogramNormalRedirectsChecks = r.bibliogramNormalRedirectsChecks ?? [...redirects.bibliogram.normal];
|
"bibliogramNormalCustomRedirects",
|
||||||
bibliogramNormalCustomRedirects = r.bibliogramNormalCustomRedirects ?? [];
|
"bibliogramTorCustomRedirects",
|
||||||
|
"instagramProtocol"
|
||||||
|
],
|
||||||
|
r => {
|
||||||
|
disable = r.disableInstagram;
|
||||||
|
if (r.instagramRedirects) redirects = r.instagramRedirects
|
||||||
|
|
||||||
bibliogramTorRedirectsChecks = r.bibliogramTorRedirectsChecks ?? [...redirects.bibliogram.tor];
|
theme = r.theme;
|
||||||
bibliogramTorCustomRedirects = r.bibliogramTorCustomRedirects ?? [];
|
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 {
|
export default {
|
||||||
getRedirects,
|
getRedirects,
|
||||||
getCustomRedirects,
|
|
||||||
setRedirects,
|
setRedirects,
|
||||||
|
|
||||||
getDisable,
|
|
||||||
setDisable,
|
|
||||||
|
|
||||||
reverse,
|
reverse,
|
||||||
|
|
||||||
getProtocol,
|
|
||||||
setProtocol,
|
|
||||||
|
|
||||||
isBibliogram,
|
isBibliogram,
|
||||||
initBibliogramCookies,
|
initBibliogramCookies,
|
||||||
|
|
||||||
getBibliogramNormalRedirectsChecks,
|
|
||||||
setBibliogramNormalRedirectsChecks,
|
|
||||||
getBibliogramTorRedirectsChecks,
|
|
||||||
setBibliogramTorRedirectsChecks,
|
|
||||||
|
|
||||||
getBibliogramNormalCustomRedirects,
|
|
||||||
setBibliogramNormalCustomRedirects,
|
|
||||||
getBibliogramTorCustomRedirects,
|
|
||||||
setBibliogramTorCustomRedirects,
|
|
||||||
|
|
||||||
redirect,
|
redirect,
|
||||||
init,
|
init,
|
||||||
|
initDefaults,
|
||||||
switchInstance,
|
switchInstance,
|
||||||
};
|
};
|
||||||
|
|
|
@ -393,6 +393,7 @@ function switchInstance(url) {
|
||||||
}
|
}
|
||||||
|
|
||||||
async function initDefaults() {
|
async function initDefaults() {
|
||||||
|
console.log('init redditDefault')
|
||||||
return new Promise(async resolve => {
|
return new Promise(async resolve => {
|
||||||
fetch('/instances/data.json').then(response => response.text()).then(async data => {
|
fetch('/instances/data.json').then(response => response.text()).then(async data => {
|
||||||
let dataJson = JSON.parse(data);
|
let dataJson = JSON.parse(data);
|
||||||
|
|
|
@ -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,
|
||||||
|
}
|
|
@ -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();
|
|
||||||
}
|
|
||||||
)
|
|
||||||
}
|
|
||||||
)
|
|
||||||
}
|
|
|
@ -2,7 +2,6 @@ window.browser = window.browser || window.chrome;
|
||||||
|
|
||||||
browser.storage.local.get(
|
browser.storage.local.get(
|
||||||
[
|
[
|
||||||
"theme",
|
|
||||||
"youtubeVolume",
|
"youtubeVolume",
|
||||||
"youtubeAutoplay",
|
"youtubeAutoplay",
|
||||||
"youtubeListen",
|
"youtubeListen",
|
||||||
|
@ -22,40 +21,21 @@ browser.storage.local.get(
|
||||||
"pipedWatchHistory",
|
"pipedWatchHistory",
|
||||||
],
|
],
|
||||||
r => {
|
r => {
|
||||||
let theme = r.theme ?? "dark";
|
localStorage.setItem("bufferGoal", r.pipedBufferGoal.toString());
|
||||||
let youtubeAutoplay = r.youtubeAutoplay ?? false;
|
localStorage.setItem("comments", r.pipedComments);
|
||||||
let youtubeVolume = r.youtubeVolume ?? 100;
|
localStorage.setItem("disableLBRY", r.pipedDisableLBRY);
|
||||||
let youtubeListen = r.youtubeListen ?? false;
|
localStorage.setItem("enabledCodecs", r.pipedEnabledCodecs);
|
||||||
|
localStorage.setItem("homepage", r.pipedHomepage);
|
||||||
let pipedBufferGoal = r.pipedBufferGoal ?? 300;
|
localStorage.setItem("listen", r.youtubeListen);
|
||||||
let pipedComments = r.pipedComments ?? true;
|
localStorage.setItem("minimizeDescription", r.pipedMinimizeDescription);
|
||||||
let pipedDisableLBRY = r.pipedDisableLBRY ?? false;
|
localStorage.setItem("playerAutoPlay", r.youtubeAutoplay);
|
||||||
let pipedEnabledCodecs = r.pipedEnabledCodecs ?? ["av1", "vp9", "avc"];
|
localStorage.setItem("proxyLBRY", r.pipedProxyLBRY);
|
||||||
let pipedHomepage = r.pipedHomepage ?? "trending";
|
localStorage.setItem("quality", r.pipedQuality);
|
||||||
let pipedMinimizeDescription = r.pipedMinimizeDescription ?? false;
|
localStorage.setItem("region", r.pipedRegion);
|
||||||
let pipedProxyLBRY = r.pipedProxyLBRY ?? false;
|
localStorage.setItem("selectedSkip", r.pipedSelectedSkip);
|
||||||
let pipedQuality = r.pipedQuality ?? 0;
|
localStorage.setItem("sponsorblock", r.pipedSponsorblock);
|
||||||
let pipedRegion = r.pipedRegion ?? "US";
|
localStorage.setItem("theme", r.pipedDdlTheme);
|
||||||
let pipedSelectedSkip = r.pipedSelectedSkip ?? ["sponsor", "interaction", "selfpromo", "music_offtopic"];
|
localStorage.setItem("volume", r.youtubeVolume / 100);
|
||||||
let pipedSponsorblock = r.pipedSponsorblock ?? true;
|
localStorage.setItem("watchHistory", r.pipedWatchHistory);
|
||||||
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);
|
|
||||||
}
|
}
|
||||||
)
|
)
|
|
@ -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
|
||||||
|
}
|
|
@ -15,33 +15,22 @@ browser.storage.local.get(
|
||||||
"pipedMaterialSkipToLastPoint",
|
"pipedMaterialSkipToLastPoint",
|
||||||
],
|
],
|
||||||
r => {
|
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 = {};
|
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 (r.theme == 'dark') prefs.darkMode = true;
|
||||||
if (theme == 'light') prefs.darkMode = false;
|
if (r.theme == 'light') prefs.darkMode = false;
|
||||||
|
|
||||||
prefs.volume = youtubeVolume / 100;
|
prefs.volume = r.youtubeVolume / 100;
|
||||||
prefs.playerAutoplay = youtubeAutoplay;
|
prefs.playerAutoplay = r.youtubeAutoplay;
|
||||||
|
|
||||||
prefs.listen = youtubeListen;
|
prefs.listen = r.youtubeListen;
|
||||||
prefs.disableLBRY = pipedDisableLBRY;
|
prefs.disableLBRY = r.pipedDisableLBRY;
|
||||||
prefs.proxyLBRY = pipedProxyLBRY;
|
prefs.proxyLBRY = r.pipedProxyLBRY;
|
||||||
prefs.sponsorblock = pipedSponsorblock;
|
prefs.sponsorblock = r.pipedSponsorblock;
|
||||||
prefs.skipToLastPoint = pipedMaterialSkipToLastPoint;
|
prefs.skipToLastPoint = r.pipedMaterialSkipToLastPoint;
|
||||||
prefs.selectedSkip = pipedSelectedSkip;
|
prefs.selectedSkip = r.pipedSelectedSkip;
|
||||||
|
|
||||||
localStorage.setItem("PREFERENCES", JSON.stringify(prefs));
|
localStorage.setItem("PREFERENCES", JSON.stringify(prefs));
|
||||||
}
|
}
|
||||||
|
|
|
@ -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,
|
||||||
|
}
|
|
@ -3,46 +3,9 @@
|
||||||
window.browser = window.browser || window.chrome;
|
window.browser = window.browser || window.chrome;
|
||||||
|
|
||||||
import commonHelper from '../common.js'
|
import commonHelper from '../common.js'
|
||||||
import {
|
import invidious from './invidious.js'
|
||||||
youtubeListen, getYoutubeListen,
|
import piped from './piped.js';
|
||||||
invidiousQuality, getInvidiousQuality,
|
import pipedMaterial from './pipedMaterial.js';
|
||||||
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';
|
|
||||||
|
|
||||||
const targets = [
|
const targets = [
|
||||||
/^https?:\/{2}(www\.|music\.|m\.|)youtube\.com(\/.*|$)/,
|
/^https?:\/{2}(www\.|music\.|m\.|)youtube\.com(\/.*|$)/,
|
||||||
|
@ -89,164 +52,29 @@ let redirects = {
|
||||||
|
|
||||||
const getRedirects = () => 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;
|
let invidiousNormalRedirectsChecks;
|
||||||
const getInvidiousNormalRedirectsChecks = () => invidiousNormalRedirectsChecks;
|
|
||||||
function setInvidiousNormalRedirectsChecks(val) {
|
|
||||||
invidiousNormalRedirectsChecks = val;
|
|
||||||
browser.storage.local.set({ invidiousNormalRedirectsChecks })
|
|
||||||
console.log("invidiousNormalRedirectsChecks: ", val)
|
|
||||||
}
|
|
||||||
|
|
||||||
let invidiousNormalCustomRedirects = [];
|
let invidiousNormalCustomRedirects = [];
|
||||||
const getInvidiousNormalCustomRedirects = () => invidiousNormalCustomRedirects;
|
|
||||||
function setInvidiousNormalCustomRedirects(val) {
|
|
||||||
invidiousNormalCustomRedirects = val;
|
|
||||||
browser.storage.local.set({ invidiousNormalCustomRedirects })
|
|
||||||
console.log("invidiousNormalCustomRedirects: ", val)
|
|
||||||
}
|
|
||||||
|
|
||||||
let invidiousTorRedirectsChecks;
|
let invidiousTorRedirectsChecks;
|
||||||
const getInvidiousTorRedirectsChecks = () => invidiousTorRedirectsChecks;
|
|
||||||
function setInvidiousTorRedirectsChecks(val) {
|
|
||||||
invidiousTorRedirectsChecks = val;
|
|
||||||
browser.storage.local.set({ invidiousTorRedirectsChecks })
|
|
||||||
console.log("invidiousTorRedirectsChecks: ", val)
|
|
||||||
}
|
|
||||||
|
|
||||||
let invidiousTorCustomRedirects = [];
|
let invidiousTorCustomRedirects = [];
|
||||||
const getInvidiousTorCustomRedirects = () => invidiousTorCustomRedirects;
|
|
||||||
function setInvidiousTorCustomRedirects(val) {
|
|
||||||
invidiousTorCustomRedirects = val;
|
|
||||||
browser.storage.local.set({ invidiousTorCustomRedirects })
|
|
||||||
console.log("invidiousTorCustomRedirects: ", val)
|
|
||||||
}
|
|
||||||
|
|
||||||
let pipedNormalRedirectsChecks;
|
let pipedNormalRedirectsChecks;
|
||||||
const getPipedNormalRedirectsChecks = () => pipedNormalRedirectsChecks;
|
|
||||||
function setPipedNormalRedirectsChecks(val) {
|
|
||||||
pipedNormalRedirectsChecks = val;
|
|
||||||
browser.storage.local.set({ pipedNormalRedirectsChecks })
|
|
||||||
console.log("pipedNormalRedirectsChecks: ", val)
|
|
||||||
}
|
|
||||||
|
|
||||||
let pipedNormalCustomRedirects = [];
|
let pipedNormalCustomRedirects = [];
|
||||||
const getPipedNormalCustomRedirects = () => pipedNormalCustomRedirects;
|
|
||||||
function setPipedNormalCustomRedirects(val) {
|
|
||||||
pipedNormalCustomRedirects = val;
|
|
||||||
browser.storage.local.set({ pipedNormalCustomRedirects })
|
|
||||||
console.log("pipedNormalCustomRedirects: ", val)
|
|
||||||
}
|
|
||||||
|
|
||||||
let pipedTorRedirectsChecks;
|
let pipedTorRedirectsChecks;
|
||||||
const getPipedTorRedirectsChecks = () => pipedTorRedirectsChecks;
|
|
||||||
function setPipedTorRedirectsChecks(val) {
|
|
||||||
pipedTorRedirectsChecks = val;
|
|
||||||
browser.storage.local.set({ pipedTorRedirectsChecks })
|
|
||||||
console.log("pipedTorRedirectsChecks: ", val)
|
|
||||||
}
|
|
||||||
|
|
||||||
let pipedTorCustomRedirects = [];
|
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;
|
let pipedMaterialNormalRedirectsChecks;
|
||||||
const getPipedMaterialNormalRedirectsChecks = () => pipedMaterialNormalRedirectsChecks;
|
|
||||||
function setPipedMaterialNormalRedirectsChecks(val) {
|
|
||||||
pipedMaterialNormalRedirectsChecks = val;
|
|
||||||
browser.storage.local.set({ pipedMaterialNormalRedirectsChecks })
|
|
||||||
console.log("pipedMaterialNormalRedirectsChecks: ", val)
|
|
||||||
}
|
|
||||||
|
|
||||||
let pipedMaterialNormalCustomRedirects = [];
|
let pipedMaterialNormalCustomRedirects = [];
|
||||||
const getPipedMaterialNormalCustomRedirects = () => pipedMaterialNormalCustomRedirects;
|
|
||||||
function setPipedMaterialNormalCustomRedirects(val) {
|
|
||||||
pipedMaterialNormalCustomRedirects = val;
|
|
||||||
browser.storage.local.set({ pipedMaterialNormalCustomRedirects })
|
|
||||||
console.log("pipedMaterialNormalCustomRedirects: ", val)
|
|
||||||
}
|
|
||||||
|
|
||||||
let pipedMaterialTorRedirectsChecks;
|
let pipedMaterialTorRedirectsChecks;
|
||||||
const getPipedMaterialTorRedirectsChecks = () => pipedMaterialTorRedirectsChecks;
|
|
||||||
function setPipedMaterialTorRedirectsChecks(val) {
|
|
||||||
pipedMaterialTorRedirectsChecks = val;
|
|
||||||
browser.storage.local.set({ pipedMaterialTorRedirectsChecks })
|
|
||||||
console.log("pipedMaterialTorRedirectsChecks: ", val)
|
|
||||||
}
|
|
||||||
|
|
||||||
let pipedMaterialTorCustomRedirects = [];
|
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;
|
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;
|
let protocol;
|
||||||
const getProtocol = () => protocol;
|
|
||||||
let OnlyEmbeddedVideo;
|
let OnlyEmbeddedVideo;
|
||||||
const getOnlyEmbeddedVideo = () => OnlyEmbeddedVideo;
|
|
||||||
let frontend;
|
let frontend;
|
||||||
const getFrontend = () => frontend;
|
|
||||||
let youtubeEmbedFrontend;
|
let youtubeEmbedFrontend;
|
||||||
const getYoutubeEmbedFrontend = () => youtubeEmbedFrontend;
|
|
||||||
let bypassWatchOnYoutube;
|
let bypassWatchOnYoutube;
|
||||||
const getBypassWatchOnYoutube = () => bypassWatchOnYoutube;
|
|
||||||
|
|
||||||
let alwaysUsePreferred;
|
let alwaysUsePreferred;
|
||||||
|
|
||||||
function redirect(url, details, initiator) {
|
function redirect(url, details, initiator) {
|
||||||
if (disable) return null;
|
if (disable) return null;
|
||||||
|
|
||||||
|
@ -373,7 +201,6 @@ function redirect(url, details, initiator) {
|
||||||
|
|
||||||
function reverse(url) {
|
function reverse(url) {
|
||||||
let protocolHost = commonHelper.protocolHost(url);
|
let protocolHost = commonHelper.protocolHost(url);
|
||||||
|
|
||||||
if (![
|
if (![
|
||||||
...redirects.invidious.normal,
|
...redirects.invidious.normal,
|
||||||
...redirects.invidious.tor,
|
...redirects.invidious.tor,
|
||||||
|
@ -428,13 +255,11 @@ function switchInstance(url) {
|
||||||
if (protocol == 'normal') instancesList = [...pipedMaterialNormalRedirectsChecks, ...pipedMaterialNormalCustomRedirects];
|
if (protocol == 'normal') instancesList = [...pipedMaterialNormalRedirectsChecks, ...pipedMaterialNormalCustomRedirects];
|
||||||
else if (protocol == 'tor') instancesList = [...pipedMaterialTorRedirectsChecks, ...pipedMaterialTorCustomRedirects];
|
else if (protocol == 'tor') instancesList = [...pipedMaterialTorRedirectsChecks, ...pipedMaterialTorCustomRedirects];
|
||||||
}
|
}
|
||||||
else return null;
|
|
||||||
|
|
||||||
console.log("instancesList", instancesList);
|
|
||||||
let index = instancesList.indexOf(protocolHost);
|
let index = instancesList.indexOf(protocolHost);
|
||||||
if (index > -1) instancesList.splice(index, 1);
|
if (index > -1) instancesList.splice(index, 1);
|
||||||
|
|
||||||
if (instancesList.length === 0) return null;
|
if (instancesList.length == 0) return null;
|
||||||
let randomInstance = commonHelper.getRandomInstance(instancesList);
|
let randomInstance = commonHelper.getRandomInstance(instancesList);
|
||||||
return `${randomInstance}${url.pathname}${url.search}`;
|
return `${randomInstance}${url.pathname}${url.search}`;
|
||||||
}
|
}
|
||||||
|
@ -481,272 +306,147 @@ function isPipedorInvidious(url, type, frontend) {
|
||||||
].includes(protocolHost);
|
].includes(protocolHost);
|
||||||
}
|
}
|
||||||
|
|
||||||
function initPipedLocalStorage(tabId) {
|
async function initDefaults() {
|
||||||
if (!disable && frontend == 'piped' && enableCustomSettings)
|
console.log('youtube initDefaults')
|
||||||
browser.tabs.executeScript(
|
return new Promise(async resolve => {
|
||||||
tabId,
|
fetch('/instances/data.json').then(response => response.text()).then(async data => {
|
||||||
{
|
let dataJson = JSON.parse(data);
|
||||||
file: "/assets/javascripts/helpers/youtube/piped-preferences.js",
|
redirects.invidious = dataJson.invidious;
|
||||||
runAt: "document_start"
|
await browser.storage.local.set({
|
||||||
}
|
disableYoutube: false,
|
||||||
);
|
enableYoutubeCustomSettings: false,
|
||||||
}
|
OnlyEmbeddedVideo: 'both',
|
||||||
|
|
||||||
function initPipedMaterialLocalStorage(tabId) {
|
youtubeRedirects: {
|
||||||
if (!disable && frontend == 'pipedMaterial' && enableCustomSettings)
|
'invidious': dataJson.invidious,
|
||||||
browser.tabs.executeScript(
|
'piped': redirects.piped,
|
||||||
tabId,
|
'pipedMaterial': redirects.pipedMaterial
|
||||||
{
|
|
||||||
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",
|
|
||||||
},
|
},
|
||||||
cookie => {
|
|
||||||
let prefs = {};
|
|
||||||
if (cookie) {
|
|
||||||
prefs = JSON.parse(decodeURIComponent(cookie.value));
|
|
||||||
browser.cookies.remove({ url: instanceUrl, name: "PREFS" });
|
|
||||||
}
|
|
||||||
|
|
||||||
prefs.local = invidiousAlwaysProxy;
|
youtubeFrontend: 'invidious',
|
||||||
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;
|
|
||||||
|
|
||||||
prefs.comments = invidiousComments;
|
invidiousNormalRedirectsChecks: [...redirects.invidious.normal],
|
||||||
prefs.captions = invidiousCaptions;
|
invidiousNormalCustomRedirects: [],
|
||||||
|
|
||||||
prefs.related_videos = invidiousRelatedVideos;
|
invidiousTorRedirectsChecks: [...redirects.invidious.tor],
|
||||||
prefs.annotations = invidiousAnnotations
|
invidiousTorCustomRedirects: [],
|
||||||
prefs.extend_desc = invidiousExtendDesc;
|
|
||||||
prefs.vr_mode = invidiousVrMode;
|
|
||||||
prefs.save_player_pos = invidiousSavePlayerPos;
|
|
||||||
|
|
||||||
prefs.volume = parseInt(volume);
|
pipedNormalRedirectsChecks: [...redirects.piped.normal],
|
||||||
prefs.player_style = invidiousPlayerStyle;
|
pipedNormalCustomRedirects: [],
|
||||||
prefs.autoplay = youtubeAutoplay;
|
|
||||||
|
|
||||||
prefs.region = invidiousRegion;
|
pipedTorRedirectsChecks: [...redirects.piped.tor],
|
||||||
prefs.dark_mode = invidiousDarkMode;
|
pipedTorCustomRedirects: [],
|
||||||
prefs.thin_mode = invidiousThinMode;
|
|
||||||
prefs.default_home = invidiousDefaultHome;
|
|
||||||
prefs.feed_menu = invidiousFeedMenuList;
|
|
||||||
|
|
||||||
browser.cookies.set({
|
pipedMaterialNormalRedirectsChecks: [...redirects.pipedMaterial.normal],
|
||||||
url: instanceUrl,
|
pipedMaterialNormalCustomRedirects: [],
|
||||||
name: "PREFS",
|
|
||||||
value: encodeURIComponent(JSON.stringify(prefs))
|
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() {
|
async function init() {
|
||||||
await initOptions();
|
|
||||||
return new Promise(
|
return new Promise(
|
||||||
resolve => {
|
resolve => {
|
||||||
fetch('/instances/data.json').then(response => response.text()).then(data => {
|
browser.storage.local.get(
|
||||||
let dataJson = JSON.parse(data);
|
[
|
||||||
browser.storage.local.get(
|
"disableYoutube",
|
||||||
[
|
"OnlyEmbeddedVideo",
|
||||||
"theme",
|
"youtubeRedirects",
|
||||||
"disableYoutube",
|
"youtubeFrontend",
|
||||||
"enableYoutubeCustomSettings",
|
|
||||||
"OnlyEmbeddedVideo",
|
|
||||||
"youtubeRedirects",
|
|
||||||
"youtubeFrontend",
|
|
||||||
|
|
||||||
"invidiousNormalRedirectsChecks",
|
"invidiousNormalRedirectsChecks",
|
||||||
"invidiousNormalCustomRedirects",
|
"invidiousNormalCustomRedirects",
|
||||||
|
|
||||||
"invidiousTorRedirectsChecks",
|
"invidiousTorRedirectsChecks",
|
||||||
"invidiousTorCustomRedirects",
|
"invidiousTorCustomRedirects",
|
||||||
|
|
||||||
"pipedNormalRedirectsChecks",
|
"pipedNormalRedirectsChecks",
|
||||||
"pipedNormalCustomRedirects",
|
"pipedNormalCustomRedirects",
|
||||||
|
|
||||||
"pipedMaterialNormalRedirectsChecks",
|
"pipedTorRedirectsChecks",
|
||||||
"pipedMaterialNormalCustomRedirects",
|
"pipedTorCustomRedirects",
|
||||||
|
|
||||||
"pipedMaterialTorRedirectsChecks",
|
"pipedMaterialNormalRedirectsChecks",
|
||||||
"pipedMaterialTorCustomRedirects",
|
"pipedMaterialNormalCustomRedirects",
|
||||||
|
|
||||||
"pipedTorRedirectsChecks",
|
"pipedMaterialTorRedirectsChecks",
|
||||||
"pipedTorCustomRedirects",
|
"pipedMaterialTorCustomRedirects",
|
||||||
"alwaysUsePreferred",
|
|
||||||
"youtubeEmbedFrontend",
|
|
||||||
|
|
||||||
"youtubeProtocol",
|
"alwaysUsePreferred",
|
||||||
|
"youtubeEmbedFrontend",
|
||||||
|
"youtubeProtocol",
|
||||||
|
"bypassWatchOnYoutube",
|
||||||
|
],
|
||||||
|
r => {
|
||||||
|
|
||||||
"bypassWatchOnYoutube"
|
console.log('inited r.youtubeRedirects', r.youtubeRedirects);
|
||||||
],
|
redirects = r.youtubeRedirects;
|
||||||
r => {
|
|
||||||
redirects.invidious = dataJson.invidious;
|
|
||||||
if (r.youtubeRedirects) redirects = r.youtubeRedirects;
|
|
||||||
|
|
||||||
disable = r.disableYoutube ?? false;
|
disable = r.disableYoutube;
|
||||||
enableCustomSettings = r.enableYoutubeCustomSettings ?? false;
|
protocol = r.youtubeProtocol;
|
||||||
protocol = r.youtubeProtocol ?? 'normal';
|
frontend = r.youtubeFrontend;
|
||||||
frontend = r.youtubeFrontend ?? 'invidious';
|
|
||||||
youtubeEmbedFrontend = r.youtubeEmbedFrontend ?? 'invidious';
|
|
||||||
|
|
||||||
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];
|
pipedNormalRedirectsChecks = r.pipedNormalRedirectsChecks;
|
||||||
invidiousNormalCustomRedirects = r.invidiousNormalCustomRedirects ?? [];
|
pipedNormalCustomRedirects = r.pipedNormalCustomRedirects;
|
||||||
|
|
||||||
invidiousTorRedirectsChecks = r.invidiousTorRedirectsChecks ?? [...redirects.invidious.tor];
|
pipedTorRedirectsChecks = r.pipedTorRedirectsChecks;
|
||||||
invidiousTorCustomRedirects = r.invidiousTorCustomRedirects ?? [];
|
pipedTorCustomRedirects = r.pipedTorCustomRedirects;
|
||||||
|
|
||||||
pipedNormalRedirectsChecks = r.pipedNormalRedirectsChecks ?? [...redirects.piped.normal];
|
pipedMaterialNormalRedirectsChecks = r.pipedMaterialNormalRedirectsChecks;
|
||||||
pipedNormalCustomRedirects = r.pipedNormalCustomRedirects ?? [];
|
pipedMaterialNormalCustomRedirects = r.pipedMaterialNormalCustomRedirects;
|
||||||
|
|
||||||
pipedTorRedirectsChecks = r.pipedTorRedirectsChecks ?? [...redirects.piped.tor];
|
pipedMaterialTorRedirectsChecks = r.pipedMaterialTorRedirectsChecks;
|
||||||
pipedTorCustomRedirects = r.pipedTorCustomRedirects ?? [];
|
pipedMaterialTorCustomRedirects = r.pipedMaterialTorCustomRedirects;
|
||||||
|
|
||||||
pipedMaterialNormalRedirectsChecks = r.pipedMaterialNormalRedirectsChecks ?? [...redirects.pipedMaterial.normal];
|
youtubeEmbedFrontend = r.youtubeEmbedFrontend;
|
||||||
pipedMaterialNormalCustomRedirects = r.pipedMaterialNormalCustomRedirects ?? [];
|
OnlyEmbeddedVideo = r.OnlyEmbeddedVideo;
|
||||||
|
alwaysUsePreferred = r.alwaysUsePreferred;
|
||||||
|
bypassWatchOnYoutube = r.bypassWatchOnYoutube;
|
||||||
|
|
||||||
pipedMaterialTorRedirectsChecks = r.pipedMaterialTorRedirectsChecks ?? [...redirects.pipedMaterial.tor];
|
resolve();
|
||||||
pipedMaterialTorCustomRedirects = r.pipedMaterialTorCustomRedirects ?? [];
|
});
|
||||||
|
|
||||||
alwaysUsePreferred = r.alwaysUsePreferred ?? false;
|
|
||||||
|
|
||||||
bypassWatchOnYoutube = r.bypassWatchOnYoutube ?? true;
|
|
||||||
|
|
||||||
initInvidiousCookies();
|
|
||||||
|
|
||||||
resolve();
|
|
||||||
|
|
||||||
});
|
|
||||||
});
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let
|
||||||
|
initPipedLocalStorage = piped.initPipedLocalStorage,
|
||||||
|
initPipedMaterialLocalStorage = pipedMaterial.initPipedMaterialLocalStorage,
|
||||||
|
initInvidiousCookies = invidious.initInvidiousCookies;
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
setYoutubeSettings,
|
|
||||||
getBypassWatchOnYoutube,
|
|
||||||
initPipedLocalStorage,
|
initPipedLocalStorage,
|
||||||
initPipedMaterialLocalStorage,
|
initPipedMaterialLocalStorage,
|
||||||
getFrontend,
|
|
||||||
getYoutubeEmbedFrontend,
|
|
||||||
getRedirects,
|
|
||||||
getCustomRedirects,
|
|
||||||
setInvidiousRedirects,
|
|
||||||
setPipedRedirects,
|
|
||||||
redirect,
|
|
||||||
switchInstance,
|
|
||||||
isPipedorInvidious,
|
|
||||||
initInvidiousCookies,
|
initInvidiousCookies,
|
||||||
getInvidiousAlwaysProxy,
|
getRedirects,
|
||||||
getInvidiousQuality,
|
|
||||||
getInvidiousPlayerStyle,
|
|
||||||
getInvidiousVideoLoop,
|
|
||||||
getInvidiousRegion,
|
|
||||||
getInvidiousDarkMode,
|
|
||||||
getInvidiousThinMode,
|
|
||||||
getInvidiousDefaultHome,
|
|
||||||
getInvidiousFeedMenuList,
|
|
||||||
|
|
||||||
getDisable,
|
|
||||||
setDisable,
|
|
||||||
|
|
||||||
|
redirect,
|
||||||
reverse,
|
reverse,
|
||||||
|
|
||||||
getEnableCustomSettings,
|
switchInstance,
|
||||||
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,
|
isPipedorInvidious,
|
||||||
setInvidiousNormalRedirectsChecks,
|
|
||||||
|
|
||||||
getInvidiousNormalCustomRedirects,
|
initDefaults,
|
||||||
setInvidiousNormalCustomRedirects,
|
|
||||||
|
|
||||||
getPipedNormalRedirectsChecks,
|
|
||||||
setPipedNormalRedirectsChecks,
|
|
||||||
|
|
||||||
getPipedNormalCustomRedirects,
|
|
||||||
setPipedNormalCustomRedirects,
|
|
||||||
|
|
||||||
getInvidiousTorRedirectsChecks,
|
|
||||||
setInvidiousTorRedirectsChecks,
|
|
||||||
|
|
||||||
getInvidiousTorCustomRedirects,
|
|
||||||
setInvidiousTorCustomRedirects,
|
|
||||||
|
|
||||||
getPipedTorRedirectsChecks,
|
|
||||||
setPipedTorRedirectsChecks,
|
|
||||||
|
|
||||||
getPipedTorCustomRedirects,
|
|
||||||
setPipedTorCustomRedirects,
|
|
||||||
|
|
||||||
getPipedMaterialNormalRedirectsChecks,
|
|
||||||
setPipedMaterialNormalRedirectsChecks,
|
|
||||||
|
|
||||||
getPipedMaterialNormalCustomRedirects,
|
|
||||||
setPipedMaterialNormalCustomRedirects,
|
|
||||||
|
|
||||||
getPipedMaterialTorRedirectsChecks,
|
|
||||||
setPipedMaterialTorRedirectsChecks,
|
|
||||||
|
|
||||||
getPipedMaterialTorCustomRedirects,
|
|
||||||
setPipedMaterialTorCustomRedirects,
|
|
||||||
|
|
||||||
setPipedMaterialRedirects,
|
|
||||||
|
|
||||||
init,
|
init,
|
||||||
};
|
};
|
||||||
|
|
|
@ -22,14 +22,25 @@ import youtubeMusicHelper from "../../assets/javascripts/helpers/youtubeMusic.js
|
||||||
|
|
||||||
window.browser = window.browser || window.chrome;
|
window.browser = window.browser || window.chrome;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
browser.runtime.onInstalled.addListener(async details => {
|
browser.runtime.onInstalled.addListener(async details => {
|
||||||
if (details.reason == 'install') {
|
if (details.reason == 'install') {
|
||||||
|
await instagramHelper.initDefaults();
|
||||||
await redditHelper.initDefaults();
|
await redditHelper.initDefaults();
|
||||||
|
await youtubeHelper.initDefaults();
|
||||||
await tiktokHelper.initDefaults();
|
await tiktokHelper.initDefaults();
|
||||||
|
await imgurHelper.initDefaults();
|
||||||
await wholeInit();
|
await wholeInit();
|
||||||
|
browser.storage.local.set({ initDefaults: true })
|
||||||
|
initListener();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
function initListener() {
|
||||||
|
browser.storage.onChanged.addListener(wholeInit);
|
||||||
|
}
|
||||||
|
|
||||||
async function wholeInit() {
|
async function wholeInit() {
|
||||||
await youtubeHelper.init();
|
await youtubeHelper.init();
|
||||||
await youtubeMusicHelper.init();
|
await youtubeMusicHelper.init();
|
||||||
|
@ -51,9 +62,15 @@ async function wholeInit() {
|
||||||
await spotifyHelper.init();
|
await spotifyHelper.init();
|
||||||
await generalHelper.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;
|
let incognitoInit = false;
|
||||||
browser.tabs.onCreated.addListener(
|
browser.tabs.onCreated.addListener(
|
||||||
|
@ -79,7 +96,7 @@ browser.webRequest.onBeforeRequest.addListener(
|
||||||
else if (details.initiator)
|
else if (details.initiator)
|
||||||
initiator = new URL(details.initiator);
|
initiator = new URL(details.initiator);
|
||||||
|
|
||||||
var newUrl;
|
let newUrl;
|
||||||
|
|
||||||
if (!newUrl) newUrl = youtubeHelper.redirect(url, details, initiator)
|
if (!newUrl) newUrl = youtubeHelper.redirect(url, details, initiator)
|
||||||
if (youtubeMusicHelper.isYoutubeMusic(url, initiator)) newUrl = youtubeMusicHelper.redirect(url, details.type)
|
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 (!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);
|
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 (BYPASSTABs.includes(details.tabId)) newUrl = null;
|
||||||
|
|
||||||
if (newUrl) {
|
if (newUrl) {
|
||||||
if (newUrl == 'CANCEL') {
|
if (newUrl === 'CANCEL') {
|
||||||
console.log(`Canceled ${url}`);
|
console.log(`Canceled ${url}`);
|
||||||
return { cancel: true };
|
return { cancel: true };
|
||||||
}
|
}
|
||||||
else if (newUrl == 'BYPASSTAB') {
|
else if (newUrl === 'BYPASSTAB') {
|
||||||
console.log(`Bybassed ${details.tabId} ${url}`);
|
console.log(`Bybassed ${details.tabId} ${url}`);
|
||||||
if (!BYPASSTABs.includes(details.tabId)) BYPASSTABs.push(details.tabId);
|
if (!BYPASSTABs.includes(details.tabId)) BYPASSTABs.push(details.tabId);
|
||||||
return null;
|
return null;
|
||||||
|
|
|
@ -2,18 +2,15 @@ import imgurHelper from "../../../assets/javascripts/helpers/imgur.js";
|
||||||
import commonHelper from "../../../assets/javascripts/helpers/common.js";
|
import commonHelper from "../../../assets/javascripts/helpers/common.js";
|
||||||
|
|
||||||
let disableImgurElement = document.getElementById("disable-imgur");
|
let disableImgurElement = document.getElementById("disable-imgur");
|
||||||
disableImgurElement.addEventListener("change",
|
|
||||||
(event) => imgurHelper.setDisable(!event.target.checked)
|
|
||||||
);
|
|
||||||
|
|
||||||
let protocolElement = document.getElementById("protocol")
|
let protocolElement = document.getElementById("protocol")
|
||||||
protocolElement.addEventListener("change",
|
|
||||||
event => {
|
document.addEventListener("change", async () => {
|
||||||
let protocol = event.target.options[protocolElement.selectedIndex].value
|
await browser.storage.local.set({
|
||||||
imgurHelper.setProtocol(protocol);
|
disableImgur: !disableImgurElement.checked,
|
||||||
changeProtocolSettings(protocol);
|
imgurProtocol: protocolElement.value,
|
||||||
}
|
});
|
||||||
);
|
init();
|
||||||
|
})
|
||||||
|
|
||||||
function changeProtocolSettings(protocol) {
|
function changeProtocolSettings(protocol) {
|
||||||
let normalDiv = document.getElementsByClassName("normal")[0];
|
let normalDiv = document.getElementsByClassName("normal")[0];
|
||||||
|
@ -36,50 +33,45 @@ function changeProtocolSettings(protocol) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
imgurHelper.init().then(() => {
|
function init() {
|
||||||
disableImgurElement.checked = !imgurHelper.getDisable();
|
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(
|
commonHelper.processDefaultCustomInstances(
|
||||||
'rimgo',
|
'rimgo',
|
||||||
'normal',
|
'normal',
|
||||||
imgurHelper,
|
imgurHelper,
|
||||||
document,
|
document
|
||||||
imgurHelper.getRimgoNormalRedirectsChecks,
|
);
|
||||||
imgurHelper.setRimgoNormalRedirectsChecks,
|
|
||||||
imgurHelper.getRimgoNormalCustomRedirects,
|
commonHelper.processDefaultCustomInstances(
|
||||||
imgurHelper.setRimgoNormalCustomRedirects,
|
'rimgo',
|
||||||
r.rimgoLatency
|
'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 latencyElement = document.getElementById("latency");
|
||||||
let latencyLabel = document.getElementById("latency-label");
|
let latencyLabel = document.getElementById("latency-label");
|
||||||
|
|
|
@ -2,18 +2,15 @@ import instagramHelper from "../../../assets/javascripts/helpers/instagram.js";
|
||||||
import commonHelper from "../../../assets/javascripts/helpers/common.js";
|
import commonHelper from "../../../assets/javascripts/helpers/common.js";
|
||||||
|
|
||||||
let disableInstagramElement = document.getElementById("disable-bibliogram");
|
let disableInstagramElement = document.getElementById("disable-bibliogram");
|
||||||
disableInstagramElement.addEventListener("change",
|
let protocolElement = document.getElementById("protocol");
|
||||||
(event) => instagramHelper.setDisable(!event.target.checked)
|
|
||||||
);
|
|
||||||
|
|
||||||
let protocolElement = document.getElementById("protocol")
|
document.addEventListener("change", async () => {
|
||||||
protocolElement.addEventListener("change",
|
await browser.storage.local.set({
|
||||||
(event) => {
|
disableInstagram: disableInstagramElement.checked,
|
||||||
let protocol = event.target.options[protocolElement.selectedIndex].value
|
instagramProtocol: protocolElement.value,
|
||||||
instagramHelper.setProtocol(protocol);
|
})
|
||||||
changeProtocolSettings(protocol);
|
changeProtocolSettings(protocolElement.value);
|
||||||
}
|
})
|
||||||
);
|
|
||||||
|
|
||||||
function changeProtocolSettings(protocol) {
|
function changeProtocolSettings(protocol) {
|
||||||
let normalDiv = document.getElementsByClassName("normal")[0];
|
let normalDiv = document.getElementsByClassName("normal")[0];
|
||||||
|
@ -28,41 +25,23 @@ function changeProtocolSettings(protocol) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
instagramHelper.init().then(() => {
|
browser.storage.local.get(
|
||||||
disableInstagramElement.checked = !instagramHelper.getDisable();
|
[
|
||||||
|
"disableInstagram",
|
||||||
|
"instagramProtocol"
|
||||||
|
],
|
||||||
|
r => {
|
||||||
|
|
||||||
let protocol = instagramHelper.getProtocol();
|
disableInstagramElement.checked = !r.disableInstagram;
|
||||||
protocolElement.value = protocol;
|
|
||||||
changeProtocolSettings(protocol);
|
|
||||||
|
|
||||||
|
let protocol = r.instagramProtocol;
|
||||||
|
protocolElement.value = protocol;
|
||||||
|
changeProtocolSettings(protocol);
|
||||||
|
|
||||||
browser.storage.local.get("bibliogramLatency").then(r => {
|
commonHelper.processDefaultCustomInstances('bibliogram', 'normal', instagramHelper, document)
|
||||||
commonHelper.processDefaultCustomInstances(
|
commonHelper.processDefaultCustomInstances('bibliogram', 'tor', instagramHelper, document)
|
||||||
'bibliogram',
|
|
||||||
'normal',
|
|
||||||
instagramHelper,
|
|
||||||
document,
|
|
||||||
instagramHelper.getBibliogramNormalRedirectsChecks,
|
|
||||||
instagramHelper.setBibliogramNormalRedirectsChecks,
|
|
||||||
instagramHelper.getBibliogramNormalCustomRedirects,
|
|
||||||
instagramHelper.setBibliogramNormalCustomRedirects,
|
|
||||||
r.bibliogramLatency,
|
|
||||||
)
|
|
||||||
})
|
})
|
||||||
|
|
||||||
commonHelper.processDefaultCustomInstances(
|
|
||||||
'bibliogram',
|
|
||||||
'tor',
|
|
||||||
instagramHelper,
|
|
||||||
document,
|
|
||||||
instagramHelper.getBibliogramTorRedirectsChecks,
|
|
||||||
instagramHelper.setBibliogramTorRedirectsChecks,
|
|
||||||
instagramHelper.getBibliogramTorCustomRedirects,
|
|
||||||
instagramHelper.setBibliogramTorCustomRedirects
|
|
||||||
)
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
let latencyElement = document.getElementById("latency");
|
let latencyElement = document.getElementById("latency");
|
||||||
let latencyLabel = document.getElementById("latency-label");
|
let latencyLabel = document.getElementById("latency-label");
|
||||||
latencyElement.addEventListener("click",
|
latencyElement.addEventListener("click",
|
||||||
|
@ -76,17 +55,7 @@ latencyElement.addEventListener("click",
|
||||||
commonHelper.testLatency(latencyLabel, redirects.bibliogram.normal).then(r => {
|
commonHelper.testLatency(latencyLabel, redirects.bibliogram.normal).then(r => {
|
||||||
browser.storage.local.set({ bibliogramLatency: r });
|
browser.storage.local.set({ bibliogramLatency: r });
|
||||||
latencyLabel.innerHTML = oldHtml;
|
latencyLabel.innerHTML = oldHtml;
|
||||||
commonHelper.processDefaultCustomInstances(
|
commonHelper.processDefaultCustomInstances('bibliogram', 'normal', instagramHelper, document);
|
||||||
'bibliogram',
|
|
||||||
'normal',
|
|
||||||
instagramHelper,
|
|
||||||
document,
|
|
||||||
instagramHelper.getBibliogramNormalRedirectsChecks,
|
|
||||||
instagramHelper.setBibliogramNormalRedirectsChecks,
|
|
||||||
instagramHelper.getBibliogramNormalCustomRedirects,
|
|
||||||
instagramHelper.setBibliogramNormalCustomRedirects,
|
|
||||||
r,
|
|
||||||
);
|
|
||||||
latencyElement.removeEventListener("click", reloadWindow);
|
latencyElement.removeEventListener("click", reloadWindow);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -45,7 +45,6 @@ document.addEventListener("change", async () => {
|
||||||
init();
|
init();
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
window.onblur = () => {
|
window.onblur = () => {
|
||||||
redditHelper.initLibredditCookies();
|
redditHelper.initLibredditCookies();
|
||||||
redditHelper.initTedditCookies();
|
redditHelper.initTedditCookies();
|
||||||
|
@ -93,100 +92,53 @@ function changeFrontendsSettings(frontend) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
function init() {
|
function init() {
|
||||||
redditHelper.init().then(() => {
|
browser.storage.local.get(
|
||||||
browser.storage.local.get(
|
[
|
||||||
[
|
"disableReddit",
|
||||||
"disableReddit",
|
"bypassWatchOnReddit",
|
||||||
"bypassWatchOnReddit",
|
"redditProtocol",
|
||||||
"redditProtocol",
|
"redditFrontend",
|
||||||
"redditFrontend",
|
|
||||||
|
|
||||||
"enableLibredditCustomSettings",
|
"enableLibredditCustomSettings",
|
||||||
|
|
||||||
"redditTheme",
|
"redditTheme",
|
||||||
"redditFrontPage",
|
"redditFrontPage",
|
||||||
"redditLayout",
|
"redditLayout",
|
||||||
"redditWide",
|
"redditWide",
|
||||||
"redditPostSort",
|
"redditPostSort",
|
||||||
"redditCommentSort",
|
"redditCommentSort",
|
||||||
"redditShowNsfw",
|
"redditShowNsfw",
|
||||||
"redditAutoplayVideos",
|
"redditAutoplayVideos",
|
||||||
"redditUseHls",
|
"redditUseHls",
|
||||||
"redditHideHlsNotification",
|
"redditHideHlsNotification",
|
||||||
],
|
],
|
||||||
r => {
|
r => {
|
||||||
disableRedditElement.checked = !r.disableReddit
|
disableRedditElement.checked = !r.disableReddit
|
||||||
bypassWatchOnRedditElement.checked = r.bypassWatchOnReddit
|
bypassWatchOnRedditElement.checked = r.bypassWatchOnReddit
|
||||||
protocolElement.value = r.redditProtocol
|
protocolElement.value = r.redditProtocol
|
||||||
redditFrontendElement.value = r.redditFrontend
|
redditFrontendElement.value = r.redditFrontend
|
||||||
enableLibredditSettingsElement.checked = r.enableLibredditCustomSettings
|
enableLibredditSettingsElement.checked = r.enableLibredditCustomSettings
|
||||||
changeFrontendsSettings(r.redditFrontend);
|
changeFrontendsSettings(r.redditFrontend);
|
||||||
changeProtocolSettings(r.redditProtocol);
|
changeProtocolSettings(r.redditProtocol);
|
||||||
|
|
||||||
theme.value = r.redditTheme;
|
theme.value = r.redditTheme;
|
||||||
front_page.value = r.redditFrontPage;
|
front_page.value = r.redditFrontPage;
|
||||||
layout.value = r.redditLayout;
|
layout.value = r.redditLayout;
|
||||||
wide.checked = r.redditWide;
|
wide.checked = r.redditWide;
|
||||||
post_sort.value = r.redditPostSort;
|
post_sort.value = r.redditPostSort;
|
||||||
comment_sort.value = r.redditCommentSort;
|
comment_sort.value = r.redditCommentSort;
|
||||||
show_nsfw.checked = r.redditShowNsfw;
|
show_nsfw.checked = r.redditShowNsfw;
|
||||||
autoplay_videos.checked = r.redditAutoplayVideos;
|
autoplay_videos.checked = r.redditAutoplayVideos;
|
||||||
use_hls.checked = r.redditUseHls;
|
use_hls.checked = r.redditUseHls;
|
||||||
hide_hls_notification.checked = r.redditHideHlsNotification;
|
hide_hls_notification.checked = r.redditHideHlsNotification;
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
browser.storage.local.get("libredditLatency").then(r => {
|
commonHelper.processDefaultCustomInstances('libreddit', 'normal', redditHelper, document)
|
||||||
commonHelper.processDefaultCustomInstances(
|
commonHelper.processDefaultCustomInstances('libreddit', 'tor', redditHelper, document)
|
||||||
'libreddit',
|
|
||||||
'normal',
|
|
||||||
redditHelper,
|
|
||||||
document,
|
|
||||||
redditHelper.getLibredditNormalRedirectsChecks,
|
|
||||||
redditHelper.setLibredditNormalRedirectsChecks,
|
|
||||||
redditHelper.getLibredditNormalCustomRedirects,
|
|
||||||
redditHelper.setLibredditNormalCustomRedirects,
|
|
||||||
r.libredditLatency,
|
|
||||||
)
|
|
||||||
})
|
|
||||||
|
|
||||||
commonHelper.processDefaultCustomInstances(
|
commonHelper.processDefaultCustomInstances('teddit', 'normal', redditHelper, document);
|
||||||
'libreddit',
|
commonHelper.processDefaultCustomInstances('teddit', 'tor', redditHelper, document);
|
||||||
'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
|
|
||||||
);
|
|
||||||
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
init();
|
init();
|
||||||
|
|
||||||
|
@ -203,17 +155,7 @@ latencyLibredditElement.addEventListener("click",
|
||||||
commonHelper.testLatency(latencyLibredditLabel, redirects.libreddit.normal).then(r => {
|
commonHelper.testLatency(latencyLibredditLabel, redirects.libreddit.normal).then(r => {
|
||||||
browser.storage.local.set({ libredditLatency: r });
|
browser.storage.local.set({ libredditLatency: r });
|
||||||
latencyLibredditLabel.innerHTML = oldHtml;
|
latencyLibredditLabel.innerHTML = oldHtml;
|
||||||
commonHelper.processDefaultCustomInstances(
|
commonHelper.processDefaultCustomInstances('libreddit', 'normal', redditHelper, document);
|
||||||
'libreddit',
|
|
||||||
'normal',
|
|
||||||
redditHelper,
|
|
||||||
document,
|
|
||||||
redditHelper.getLibredditNormalRedirectsChecks,
|
|
||||||
redditHelper.setLibredditNormalRedirectsChecks,
|
|
||||||
redditHelper.getLibredditNormalCustomRedirects,
|
|
||||||
redditHelper.setLibredditNormalCustomRedirects,
|
|
||||||
r,
|
|
||||||
);
|
|
||||||
latencyLibredditElement.removeEventListener("click", reloadWindow);
|
latencyLibredditElement.removeEventListener("click", reloadWindow);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -232,17 +174,7 @@ latencyTedditElement.addEventListener("click",
|
||||||
commonHelper.testLatency(latencyTedditLabel, redirects.teddit.normal).then(r => {
|
commonHelper.testLatency(latencyTedditLabel, redirects.teddit.normal).then(r => {
|
||||||
browser.storage.local.set({ tedditLatency: r });
|
browser.storage.local.set({ tedditLatency: r });
|
||||||
latencyTedditLabel.innerHTML = oldHtml;
|
latencyTedditLabel.innerHTML = oldHtml;
|
||||||
commonHelper.processDefaultCustomInstances(
|
commonHelper.processDefaultCustomInstances('teddit', 'normal', redditHelper, document);
|
||||||
'teddit',
|
|
||||||
'normal',
|
|
||||||
redditHelper,
|
|
||||||
document,
|
|
||||||
redditHelper.getTedditNormalRedirectsChecks,
|
|
||||||
redditHelper.setTedditNormalRedirectsChecks,
|
|
||||||
redditHelper.getTedditNormalCustomRedirects,
|
|
||||||
redditHelper.setTedditNormalCustomRedirects,
|
|
||||||
r,
|
|
||||||
);
|
|
||||||
latencyTedditElement.removeEventListener("click", reloadWindow);
|
latencyTedditElement.removeEventListener("click", reloadWindow);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -34,21 +34,27 @@ let feed_menu1 = invidious.getElementsByClassName("feed_menu[1]")[0];
|
||||||
volume.addEventListener("input", () => volumeValue.textContent = `${volume.value}%`);
|
volume.addEventListener("input", () => volumeValue.textContent = `${volume.value}%`);
|
||||||
|
|
||||||
invidious.addEventListener("change", async _ => {
|
invidious.addEventListener("change", async _ => {
|
||||||
console.log('changed invidious settings');
|
browser.storage.local.get(
|
||||||
let commentsList = youtubeHelper.getInvidiousComments();
|
[
|
||||||
commentsList[0] = comments0.value;
|
"invidiousComments",
|
||||||
commentsList[1] = comments1.value;
|
"invidiousCaptions",
|
||||||
|
"invidiousFeedMenuList",
|
||||||
|
],
|
||||||
|
async r => {
|
||||||
|
let commentsList = r.invidiousComments;
|
||||||
|
commentsList[0] = comments0.value;
|
||||||
|
commentsList[1] = comments1.value;
|
||||||
|
|
||||||
let captionsList = youtubeHelper.getInvidiousCaptions();
|
let captionsList = r.invidiousCaptions;
|
||||||
captionsList[0] = captions0.value;
|
captionsList[0] = captions0.value;
|
||||||
captionsList[1] = captions1.value;
|
captionsList[1] = captions1.value;
|
||||||
captionsList[2] = captions2.value;
|
captionsList[2] = captions2.value;
|
||||||
|
|
||||||
let feedMenuList = youtubeHelper.getInvidiousFeedMenuList();
|
let feedMenuList = r.invidiousFeedMenuList;
|
||||||
feedMenuList[0] = feed_menu0.value;
|
feedMenuList[0] = feed_menu0.value;
|
||||||
feedMenuList[1] = feed_menu1.value;
|
feedMenuList[1] = feed_menu1.value;
|
||||||
|
|
||||||
await youtubeHelper.setYoutubeSettings({
|
await browser.storage.local.set({
|
||||||
invidiousAlwaysProxy: alwaysProxy.checked,
|
invidiousAlwaysProxy: alwaysProxy.checked,
|
||||||
youtubeAutoplay: autoplay.checked,
|
youtubeAutoplay: autoplay.checked,
|
||||||
invidiousPlayerStyle: playerStyle.value,
|
invidiousPlayerStyle: playerStyle.value,
|
||||||
|
@ -73,79 +79,85 @@ invidious.addEventListener("change", async _ => {
|
||||||
invidiousThinMode: thin_mode.checked,
|
invidiousThinMode: thin_mode.checked,
|
||||||
invidiousDefaultHome: default_home.value,
|
invidiousDefaultHome: default_home.value,
|
||||||
invidiousFeedMenuList: feedMenuList,
|
invidiousFeedMenuList: feedMenuList,
|
||||||
});
|
});
|
||||||
init();
|
init();
|
||||||
|
}
|
||||||
|
)
|
||||||
});
|
});
|
||||||
|
|
||||||
function init() {
|
function init() {
|
||||||
youtubeHelper.init().then(() => {
|
browser.storage.local.get(
|
||||||
videoLoop.checked = youtubeHelper.getInvidiousVideoLoop();
|
[
|
||||||
|
"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();
|
volume.value = r.youtubeVolume;
|
||||||
invidiousContinue.checked = youtubeHelper.getInvidiousContinue();
|
volumeValue.textContent = `${r.youtubeVolume}%`;
|
||||||
alwaysProxy.checked = youtubeHelper.getInvidiousAlwaysProxy();
|
|
||||||
youtubeListen.checked = youtubeHelper.getYoutubeListen();
|
|
||||||
|
|
||||||
speed.value = youtubeHelper.getInvidiousSpeed();
|
comments0.value = r.invidiousComments[0];
|
||||||
quality.value = youtubeHelper.getInvidiousQuality();
|
comments1.value = r.invidiousComments[1];
|
||||||
qualityDash.value = youtubeHelper.getInvidiousQualityDash();
|
|
||||||
|
|
||||||
volume.value = youtubeHelper.getVolume();
|
captions0.value = r.invidiousCaptions[0];
|
||||||
volumeValue.textContent = `${youtubeHelper.getVolume()}%`;
|
captions1.value = r.invidiousCaptions[1];
|
||||||
|
captions2.value = r.invidiousCaptions[2];
|
||||||
|
|
||||||
comments0.value = youtubeHelper.getInvidiousComments()[0];
|
relatedVideo.checked = r.invidiousRelatedVideos;
|
||||||
comments1.value = youtubeHelper.getInvidiousComments()[1];
|
annotations.checked = r.invidiousAnnotations;
|
||||||
|
extendDesc.checked = r.invidiousExtendDesc;
|
||||||
|
vrMode.checked = r.invidiousVrMode;
|
||||||
|
savePlayerPos.checked = r.invidiousSavePlayerPos;
|
||||||
|
|
||||||
captions0.value = youtubeHelper.getInvidiousCaptions()[0];
|
region.value = r.invidiousRegion;
|
||||||
captions1.value = youtubeHelper.getInvidiousCaptions()[1];
|
darkMode.value = r.invidiousDarkMode;
|
||||||
captions2.value = youtubeHelper.getInvidiousCaptions()[2];
|
thin_mode.checked = r.invidiousThinMode;
|
||||||
|
default_home.value = r.invidiousDefaultHome;
|
||||||
|
|
||||||
relatedVideo.checked = youtubeHelper.getInvidiousRelatedVideos();
|
feed_menu0.value = r.invidiousFeedMenuList[0];
|
||||||
annotations.checked = youtubeHelper.getInvidiousAnnotations();
|
feed_menu1.value = r.invidiousFeedMenuList[1];
|
||||||
extendDesc.checked = youtubeHelper.getInvidiousExtendDesc();
|
|
||||||
vrMode.checked = youtubeHelper.getInvidiousVrMode();
|
|
||||||
savePlayerPos.checked = youtubeHelper.getInvidiousSavePlayerPos();
|
|
||||||
|
|
||||||
region.value = youtubeHelper.getInvidiousRegion();
|
commonHelper.processDefaultCustomInstances('invidious', 'normal', youtubeHelper, document);
|
||||||
darkMode.value = youtubeHelper.getInvidiousDarkMode();
|
commonHelper.processDefaultCustomInstances('invidious', 'tor', youtubeHelper, document);
|
||||||
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
|
|
||||||
);
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
init()
|
init();
|
||||||
|
|
||||||
let latencyInvidiousElement = document.getElementById("latency-invidious");
|
let latencyInvidiousElement = document.getElementById("latency-invidious");
|
||||||
let latencyInvidiousLabel = document.getElementById("latency-invidious-label");
|
let latencyInvidiousLabel = document.getElementById("latency-invidious-label");
|
||||||
|
@ -160,17 +172,7 @@ latencyInvidiousElement.addEventListener("click",
|
||||||
commonHelper.testLatency(latencyInvidiousLabel, redirects.invidious.normal).then(r => {
|
commonHelper.testLatency(latencyInvidiousLabel, redirects.invidious.normal).then(r => {
|
||||||
browser.storage.local.set({ invidiousLatency: r });
|
browser.storage.local.set({ invidiousLatency: r });
|
||||||
latencyInvidiousLabel.innerHTML = oldHtml;
|
latencyInvidiousLabel.innerHTML = oldHtml;
|
||||||
commonHelper.processDefaultCustomInstances(
|
commonHelper.processDefaultCustomInstances('invidious', 'normal', youtubeHelper, document);
|
||||||
'invidious',
|
|
||||||
'normal',
|
|
||||||
youtubeHelper,
|
|
||||||
document,
|
|
||||||
youtubeHelper.getInvidiousNormalRedirectsChecks,
|
|
||||||
youtubeHelper.setInvidiousNormalRedirectsChecks,
|
|
||||||
youtubeHelper.getInvidiousNormalCustomRedirects,
|
|
||||||
youtubeHelper.setInvidiousNormalCustomRedirects,
|
|
||||||
r,
|
|
||||||
);
|
|
||||||
latencyInvidiousElement.removeEventListener("click", reloadWindow);
|
latencyInvidiousElement.removeEventListener("click", reloadWindow);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -44,7 +44,6 @@ function selectSkipModify(value, boolean) {
|
||||||
}
|
}
|
||||||
let selectSkip = [];
|
let selectSkip = [];
|
||||||
piped.addEventListener("change", async () => {
|
piped.addEventListener("change", async () => {
|
||||||
console.log("changed piped settings");
|
|
||||||
let pipedEnabledCodecsResult = [];
|
let pipedEnabledCodecsResult = [];
|
||||||
for (const opt of pipedEnabledCodecs.options)
|
for (const opt of pipedEnabledCodecs.options)
|
||||||
if (opt.selected) pipedEnabledCodecsResult.push(opt.value);
|
if (opt.selected) pipedEnabledCodecsResult.push(opt.value);
|
||||||
|
@ -59,7 +58,7 @@ piped.addEventListener("change", async () => {
|
||||||
selectSkipModify('poi_highlight', pipedSelectedSkipPoiHighlight.checked);
|
selectSkipModify('poi_highlight', pipedSelectedSkipPoiHighlight.checked);
|
||||||
selectSkipModify('filler', pipedSelectedSkipFiller.checked);
|
selectSkipModify('filler', pipedSelectedSkipFiller.checked);
|
||||||
|
|
||||||
await youtubeHelper.setYoutubeSettings({
|
await browser.storage.local.set({
|
||||||
pipedQuality: pipedQuality.value,
|
pipedQuality: pipedQuality.value,
|
||||||
pipedBufferGoal: pipedBufferGoal.value,
|
pipedBufferGoal: pipedBufferGoal.value,
|
||||||
pipedRegion: pipedRegion.value,
|
pipedRegion: pipedRegion.value,
|
||||||
|
@ -80,89 +79,78 @@ piped.addEventListener("change", async () => {
|
||||||
init();
|
init();
|
||||||
});
|
});
|
||||||
|
|
||||||
function init() {
|
async function init() {
|
||||||
youtubeHelper.init().then(() => {
|
await browser.storage.local.get(
|
||||||
pipedSponsorblock.checked = youtubeHelper.getPipedSponsorblock();
|
[
|
||||||
pipedDdlTheme.value = youtubeHelper.getPipedDdlTheme();
|
"youtubeVolume",
|
||||||
selectSkip = youtubeHelper.getPipedSelectedSkip();
|
"youtubeAutoplay",
|
||||||
pipedSelectedSkipSponsor.checked = selectSkip.includes('sponsor');
|
"youtubeListen",
|
||||||
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();
|
|
||||||
|
|
||||||
volume.value = youtubeHelper.getVolume();
|
"pipedBufferGoal",
|
||||||
volumeValue.textContent = `${youtubeHelper.getVolume()}%`;
|
"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 => {
|
volume.value = r.youtubeVolume;
|
||||||
commonHelper.processDefaultCustomInstances(
|
volumeValue.textContent = `${r.youtubeVolume}%`;
|
||||||
'piped',
|
|
||||||
'normal',
|
|
||||||
youtubeHelper,
|
|
||||||
document,
|
|
||||||
youtubeHelper.getPipedNormalRedirectsChecks,
|
|
||||||
youtubeHelper.setPipedNormalRedirectsChecks,
|
|
||||||
youtubeHelper.getPipedNormalCustomRedirects,
|
|
||||||
youtubeHelper.setPipedNormalCustomRedirects,
|
|
||||||
r.pipedLatency,
|
|
||||||
);
|
|
||||||
});
|
|
||||||
|
|
||||||
commonHelper.processDefaultCustomInstances(
|
commonHelper.processDefaultCustomInstances('piped', 'normal', youtubeHelper, document);
|
||||||
'piped',
|
commonHelper.processDefaultCustomInstances('piped', 'tor', youtubeHelper, document);
|
||||||
'tor',
|
}
|
||||||
youtubeHelper,
|
);
|
||||||
document,
|
|
||||||
youtubeHelper.getPipedTorRedirectsChecks,
|
|
||||||
youtubeHelper.setPipedTorRedirectsChecks,
|
|
||||||
youtubeHelper.getPipedTorCustomRedirects,
|
|
||||||
youtubeHelper.setPipedTorCustomRedirects
|
|
||||||
);
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
init();
|
init();
|
||||||
|
|
||||||
let latencyPipedElement = document.getElementById("latency-piped");
|
let latencyPipedElement = document.getElementById("latency-piped");
|
||||||
let latencyPipedLabel = document.getElementById("latency-piped-label");
|
let latencyPipedLabel = document.getElementById("latency-piped-label");
|
||||||
latencyPipedElement.addEventListener("click",
|
latencyPipedElement.addEventListener("click",
|
||||||
async () => {
|
async () => {
|
||||||
let reloadWindow = () => location.reload();
|
let reloadWindow = () => location.reload();
|
||||||
latencyPipedElement.addEventListener("click", reloadWindow);
|
latencyPipedElement.addEventListener("click", reloadWindow);
|
||||||
await youtubeHelper.init();
|
await youtubeHelper.init();
|
||||||
let redirects = youtubeHelper.getRedirects();
|
let redirects = youtubeHelper.getRedirects();
|
||||||
const oldHtml = latencyPipedLabel.innerHTML;
|
const oldHtml = latencyPipedLabel.innerHTML;
|
||||||
latencyPipedLabel.innerHTML = '...';
|
latencyPipedLabel.innerHTML = '...';
|
||||||
commonHelper.testLatency(latencyPipedLabel, redirects.piped.normal).then(r => {
|
commonHelper.testLatency(latencyPipedLabel, redirects.piped.normal).then(r => {
|
||||||
browser.storage.local.set({ pipedLatency: r });
|
browser.storage.local.set({ pipedLatency: r });
|
||||||
latencyPipedLabel.innerHTML = oldHtml;
|
latencyPipedLabel.innerHTML = oldHtml;
|
||||||
commonHelper.processDefaultCustomInstances(
|
commonHelper.processDefaultCustomInstances('piped', 'normal', youtubeHelper, document);
|
||||||
'piped',
|
latencyPipedElement.removeEventListener("click", reloadWindow);
|
||||||
'normal',
|
});
|
||||||
youtubeHelper,
|
}
|
||||||
document,
|
|
||||||
youtubeHelper.getPipedNormalRedirectsChecks,
|
|
||||||
youtubeHelper.setPipedNormalRedirectsChecks,
|
|
||||||
youtubeHelper.getPipedNormalCustomRedirects,
|
|
||||||
youtubeHelper.setPipedNormalCustomRedirects,
|
|
||||||
r,
|
|
||||||
);
|
|
||||||
latencyPipedElement.removeEventListener("click", reloadWindow);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
);
|
);
|
||||||
|
|
|
@ -44,7 +44,7 @@ pipedMaterialElement.addEventListener("change", async () => {
|
||||||
selectSkipModify('selfpromo', selectedSkipSelfpromoElement.checked);
|
selectSkipModify('selfpromo', selectedSkipSelfpromoElement.checked);
|
||||||
selectSkipModify('music_offtopic', selectedSkipMusicOfftopicElement.checked);
|
selectSkipModify('music_offtopic', selectedSkipMusicOfftopicElement.checked);
|
||||||
|
|
||||||
await youtubeHelper.setYoutubeSettings({
|
await browser.storage.local.set({
|
||||||
youtubeListen: listenElement.checked,
|
youtubeListen: listenElement.checked,
|
||||||
pipedDisableLBRY: disableLBRYElement.checked,
|
pipedDisableLBRY: disableLBRYElement.checked,
|
||||||
pipedProxyLBRY: proxyLBRYElement.checked,
|
pipedProxyLBRY: proxyLBRYElement.checked,
|
||||||
|
@ -68,77 +68,61 @@ pipedMaterialElement.addEventListener("change", async () => {
|
||||||
});
|
});
|
||||||
|
|
||||||
function init() {
|
function init() {
|
||||||
youtubeHelper.init().then(() => {
|
browser.storage.local.get(
|
||||||
autoplayElement.checked = youtubeHelper.getAutoplay();
|
[
|
||||||
|
"youtubeAutoplay",
|
||||||
|
"youtubeVolume",
|
||||||
|
"youtubeListen",
|
||||||
|
|
||||||
listenElement.checked = youtubeHelper.getYoutubeListen();
|
"pipedDisableLBRY",
|
||||||
disableLBRYElement.checked = youtubeHelper.getPipedDisableLBRY();
|
"pipedProxyLBRY",
|
||||||
proxyLBRYElement.checked = youtubeHelper.getPipedProxyLBRY();
|
"pipedSelectedSkip",
|
||||||
sponsorblockElement.checked = youtubeHelper.getPipedSponsorblock();
|
"pipedSponsorblock",
|
||||||
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');
|
|
||||||
|
|
||||||
volumeElement.value = youtubeHelper.getVolume();
|
"pipedMaterialSkipToLastPoint",
|
||||||
volumeValueElement.textContent = `${youtubeHelper.getVolume()}%`;
|
],
|
||||||
browser.storage.local.get("pipedMaterialLatency").then(r => {
|
r => {
|
||||||
commonHelper.processDefaultCustomInstances(
|
autoplayElement.checked = r.youtubeAutoplay;
|
||||||
'pipedMaterial',
|
|
||||||
'normal',
|
listenElement.checked = r.youtubeListen;
|
||||||
youtubeHelper,
|
disableLBRYElement.checked = r.pipedDisableLBRY;
|
||||||
document,
|
proxyLBRYElement.checked = r.pipedProxyLBRY;
|
||||||
youtubeHelper.getPipedMaterialNormalRedirectsChecks,
|
sponsorblockElement.checked = r.pipedSponsorblock;
|
||||||
youtubeHelper.setPipedMaterialNormalRedirectsChecks,
|
skipToLastPointElement.checked = r.pipedMaterialSkipToLastPoint;
|
||||||
youtubeHelper.getPipedMaterialNormalCustomRedirects,
|
|
||||||
youtubeHelper.setPipedMaterialNormalCustomRedirects,
|
selectSkip = r.pipedSelectedSkip;
|
||||||
r.pipedMaterialLatency,
|
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();
|
init();
|
||||||
|
|
||||||
let latencyPipedMaterialElement = document.getElementById("latency-pipedMaterial");
|
let latencyPipedMaterialElement = document.getElementById("latency-pipedMaterial");
|
||||||
let latencyPipedMaterialLabel = document.getElementById("latency-pipedMaterial-label");
|
let latencyPipedMaterialLabel = document.getElementById("latency-pipedMaterial-label");
|
||||||
latencyPipedMaterialElement.addEventListener("click",
|
latencyPipedMaterialElement.addEventListener("click",
|
||||||
async () => {
|
async () => {
|
||||||
let reloadWindow = () => location.reload();
|
let reloadWindow = () => location.reload();
|
||||||
latencyPipedMaterialElement.addEventListener("click", reloadWindow);
|
latencyPipedMaterialElement.addEventListener("click", reloadWindow);
|
||||||
await youtubeHelper.init();
|
await youtubeHelper.init();
|
||||||
let redirects = youtubeHelper.getRedirects();
|
let redirects = youtubeHelper.getRedirects();
|
||||||
const oldHtml = latencyPipedMaterialLabel.innerHTML;
|
const oldHtml = latencyPipedMaterialLabel.innerHTML;
|
||||||
latencyPipedMaterialLabel.innerHTML = '...';
|
latencyPipedMaterialLabel.innerHTML = '...';
|
||||||
commonHelper.testLatency(latencyPipedMaterialLabel, redirects.pipedMaterial.normal).then(r => {
|
commonHelper.testLatency(latencyPipedMaterialLabel, redirects.pipedMaterial.normal).then(r => {
|
||||||
browser.storage.local.set({ pipedMaterialLatency: r });
|
browser.storage.local.set({ pipedMaterialLatency: r });
|
||||||
latencyPipedMaterialLabel.innerHTML = oldHtml;
|
latencyPipedMaterialLabel.innerHTML = oldHtml;
|
||||||
commonHelper.processDefaultCustomInstances(
|
commonHelper.processDefaultCustomInstances('pipedMaterial', 'normal', youtubeHelper, document);
|
||||||
'pipedMaterial',
|
latencyPipedMaterialElement.removeEventListener("click", reloadWindow);
|
||||||
'normal',
|
});
|
||||||
youtubeHelper,
|
}
|
||||||
document,
|
|
||||||
youtubeHelper.getPipedMaterialNormalRedirectsChecks,
|
|
||||||
youtubeHelper.setPipedMaterialNormalRedirectsChecks,
|
|
||||||
youtubeHelper.getPipedMaterialNormalCustomRedirects,
|
|
||||||
youtubeHelper.setPipedMaterialNormalCustomRedirects,
|
|
||||||
r,
|
|
||||||
);
|
|
||||||
latencyPipedMaterialElement.removeEventListener("click", reloadWindow);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
);
|
);
|
|
@ -95,9 +95,8 @@ function changeProtocolSettings(protocol) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
document.addEventListener("change", async () => {
|
||||||
document.addEventListener("change", () => {
|
await browser.storage.local.set({
|
||||||
youtubeHelper.setYoutubeSettings({
|
|
||||||
disableYoutube: !disableYoutubeElement.checked,
|
disableYoutube: !disableYoutubeElement.checked,
|
||||||
youtubeFrontend: youtubeFrontendElement.value,
|
youtubeFrontend: youtubeFrontendElement.value,
|
||||||
youtubeEmbedFrontend: youtubeEmbedFrontendElement.value,
|
youtubeEmbedFrontend: youtubeEmbedFrontendElement.value,
|
||||||
|
@ -111,24 +110,43 @@ document.addEventListener("change", () => {
|
||||||
changeFrontendsSettings();
|
changeFrontendsSettings();
|
||||||
})
|
})
|
||||||
|
|
||||||
youtubeHelper.init().then(() => {
|
browser.storage.local.get(
|
||||||
disableYoutubeElement.checked = !youtubeHelper.getDisable();
|
[
|
||||||
enableYoutubeCustomSettingsElement.checked = youtubeHelper.getEnableCustomSettings();
|
"disableYoutube",
|
||||||
|
"enableYoutubeCustomSettings",
|
||||||
|
"OnlyEmbeddedVideo",
|
||||||
|
"youtubeRedirects",
|
||||||
|
"youtubeFrontend",
|
||||||
|
|
||||||
OnlyEmbeddedVideoElement.value = youtubeHelper.getOnlyEmbeddedVideo();
|
"alwaysUsePreferred",
|
||||||
bypassWatchOnYoutubeElement.checked = youtubeHelper.getBypassWatchOnYoutube();
|
"youtubeEmbedFrontend",
|
||||||
|
"youtubeProtocol",
|
||||||
|
"bypassWatchOnYoutube",
|
||||||
|
],
|
||||||
|
r => {
|
||||||
|
disableYoutubeElement.checked = !r.disableYoutube;
|
||||||
|
enableYoutubeCustomSettingsElement.checked = r.enableYoutubeCustomSettings;
|
||||||
|
|
||||||
let frontend = youtubeHelper.getFrontend();
|
OnlyEmbeddedVideoElement.value = r.OnlyEmbeddedVideo;
|
||||||
youtubeFrontendElement.value = frontend;
|
bypassWatchOnYoutubeElement.checked = r.bypassWatchOnYoutube;
|
||||||
changeFrontendsSettings();
|
|
||||||
|
|
||||||
let protocol = youtubeHelper.getProtocol();
|
let frontend = r.youtubeFrontend;
|
||||||
protocolElement.value = protocol;
|
youtubeFrontendElement.value = frontend;
|
||||||
changeProtocolSettings(protocol);
|
changeFrontendsSettings();
|
||||||
|
|
||||||
let youtubeEmbedFrontend = youtubeHelper.getYoutubeEmbedFrontend()
|
let protocol = r.youtubeProtocol;
|
||||||
youtubeEmbedFrontendElement.value = youtubeEmbedFrontend
|
protocolElement.value = protocol;
|
||||||
if (frontend == "freetube" || frontend == "yatte") {
|
changeProtocolSettings(protocol);
|
||||||
changeYoutubeEmbedFrontendsSettings(youtubeEmbedFrontend)
|
|
||||||
};
|
let youtubeEmbedFrontend = r.youtubeEmbedFrontend;
|
||||||
});
|
youtubeEmbedFrontendElement.value = youtubeEmbedFrontend
|
||||||
|
if (frontend == "freetube" || frontend == "yatte") {
|
||||||
|
changeYoutubeEmbedFrontendsSettings(youtubeEmbedFrontend)
|
||||||
|
};
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
window.onblur = () => {
|
||||||
|
youtubeHelper.initInvidiousCookies();
|
||||||
|
}
|
Loading…
Reference in New Issue