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