Fixed bug in piped, PipedMaterial, lingva's Unify Settings

This commit is contained in:
ManeraKai 2022-05-23 19:54:04 +03:00
parent 3f9f19356e
commit 5abfe6f9f1
No known key found for this signature in database
GPG Key ID: 5ABC31FFD562E337
9 changed files with 93 additions and 159 deletions

View File

@ -12,5 +12,7 @@ browser.storage.local.get(
if (r.lingva_isauto !== undefined) localStorage.setItem('isauto', r.lingva_isauto);
if (r.lingva_source !== undefined) localStorage.setItem('source', r.lingva_source);
if (r.lingva_target !== undefined) localStorage.setItem('target', r.lingva_target);
window.close();
}
)

View File

@ -47,66 +47,48 @@ function initLingvaLocalStorage(test, url, tabId) {
return new Promise(resolve => {
browser.storage.local.get(
[
"translateDisable",
"translateProtocol",
"translateFrontend",
"lingvaNormalRedirectsChecks",
"lingvaNormalCustomRedirects",
"lingvaTorRedirectsChecks",
"lingvaTorCustomRedirects",
],
r => {
let protocolHost = utils.protocolHost(url);
if (r.translateDisable || r.translateFrontend != 'lingva') { resolve(); return; }
const protocolHost = utils.protocolHost(url);
if (![
...r.lingvaNormalRedirectsChecks,
...r.lingvaTorRedirectsChecks,
...r.lingvaNormalCustomRedirects,
...r.lingvaTorRedirectsChecks,
...r.lingvaTorCustomRedirects,
].includes(protocolHost)) { resolve(); return; }
if (!test)
if (!test) {
browser.tabs.executeScript(
tabId,
{
file: "/assets/javascripts/helpers/translate/get_lingva_preferences.js",
runAt: "document_start"
}
{ file: "/assets/javascripts/helpers/translate/get_lingva_preferences.js", runAt: "document_start" }
);
let checkedInstances;
if (r.translateProtocol == 'normal') checkedInstances = [...r.lingvaNormalRedirectsChecks, ...r.lingvaNormalCustomRedirects];
if (r.translateProtocol == 'tor') checkedInstances = [...r.lingvaTorRedirectsChecks, ...r.lingvaTorCustomRedirects];
const i = checkedInstances.indexOf(protocolHost);
if (i !== -1) checkedInstances.splice(i, 1);
if (checkedInstances.length === 0) { resolve(); return; }
for (const to of checkedInstances)
browser.tabs.create(
{ url: to },
tab => browser.tabs.executeScript(tab.id, { file: "/assets/javascripts/helpers/translate/set_lingva_preferences.js", runAt: "document_start" })
);
}
resolve(true);
}
)
})
}
function setLingvaLocalStorage(url, tabId) {
return new Promise(resolve => {
browser.storage.local.get(
[
"disableYoutube",
"youtubeFrontend",
"lingvaNormalRedirectsChecks",
"lingvaNormalCustomRedirects",
"lingvaTorRedirectsChecks",
"lingvaTorCustomRedirects",
],
r => {
if (r.disableYoutube || r.youtubeFrontend != 'lingva') { resolve(); return; }
let protocolHost = utils.protocolHost(url);
if (![
...r.lingvaNormalRedirectsChecks,
...r.lingvaTorRedirectsChecks,
...r.lingvaNormalCustomRedirects,
...r.lingvaTorCustomRedirects,
].includes(protocolHost)) { resolve(); return; }
browser.tabs.executeScript(
tabId,
{
file: "/assets/javascripts/helpers/youtube/set_lingva_preferences.js",
runAt: "document_start"
}
);
resolve(true);
})
})
}
function initSimplyTranslateCookies(test, from) {
return new Promise(resolve => {
browser.storage.local.get(
@ -233,6 +215,7 @@ function switchInstance(url) {
return new Promise(resolve => {
browser.storage.local.get(
[
"translateDisable",
"translateFrontend",
"translateProtocol",
"translateRedirects",
@ -248,6 +231,7 @@ function switchInstance(url) {
"lingvaTorCustomRedirects",
],
r => {
if (r.translateDisable) { resolve(); return; };
const protocolHost = utils.protocolHost(url);
if (![
...r.translateRedirects.simplyTranslate.normal,
@ -266,14 +250,14 @@ function switchInstance(url) {
let instancesList;
if (r.translateProtocol == 'normal') {
if (r.translateFrontend == 'simplyTranslate') instancesList = [...r.simplyTranslateNormalRedirectsChecks, ...r.simplyTranslateNormalCustomRedirects];
else if (r.translateFrontend == 'lingva') [...r.lingvaNormalRedirectsChecks, ...r.lingvaNormalCustomRedirects];
else if (r.translateFrontend == 'lingva') instancesList = [...r.lingvaNormalRedirectsChecks, ...r.lingvaNormalCustomRedirects];
}
else if (r.translateProtocol == 'tor') {
if (r.translateFrontend == 'simplyTranslate') instancesList = [...r.simplyTranslateTorRedirectsChecks, ...r.simplyTranslateTorCustomRedirects];
else if (r.translateFrontend == 'lingva') instancesList = [...r.lingvaTorRedirectsChecks, ...r.lingvaTorCustomRedirects];
}
let index = instancesList.indexOf(protocolHost);
const index = instancesList.indexOf(protocolHost);
if (index > -1) instancesList.splice(index, 1);
if (instancesList.length === 0) { resolve(); return; }
@ -326,7 +310,6 @@ export default {
initSimplyTranslateCookies,
setSimplyTranslateCookies,
initLingvaLocalStorage,
setLingvaLocalStorage,
setRedirects,

View File

@ -1,7 +1,5 @@
window.browser = window.browser || window.chrome;
console.log('unifying piped');
browser.storage.local.set(
{
'piped_bufferGoal': localStorage.getItem("bufferGoal"),

View File

@ -4,5 +4,7 @@ browser.storage.local.get(
"pipedMaterial_PREFERENCES",
r => {
if (r.pipedMaterial_PREFERENCES !== undefined) localStorage.setItem("PREFERENCES", r.pipedMaterial_PREFERENCES)
window.close();
}
)

View File

@ -38,5 +38,7 @@ browser.storage.local.get(
if (r.piped_theme !== undefined) localStorage.setItem("theme", r.piped_theme);
if (r.piped_volume !== undefined) localStorage.setItem("volume", r.piped_volume);
if (r.piped_watchHistory !== undefined) localStorage.setItem("watchHistory", r.piped_watchHistory);
window.close();
}
)

View File

@ -368,14 +368,17 @@ function initInvidiousCookies(test, from) {
return new Promise(resolve => {
browser.storage.local.get(
[
"disableYoutube",
"youtubeProtocol",
"youtubeFrontend",
"invidiousNormalRedirectsChecks",
"invidiousNormalCustomRedirects",
"invidiousTorRedirectsChecks",
"invidiousTorCustomRedirects",
],
r => {
let protocolHost = utils.protocolHost(from);
if (r.disableYoutube || r.youtubeFrontend != 'invidious') { resolve(); return; }
const protocolHost = utils.protocolHost(from);
if (![
...r.invidiousNormalRedirectsChecks,
...r.invidiousTorRedirectsChecks,
@ -386,6 +389,8 @@ function initInvidiousCookies(test, from) {
let checkedInstances;
if (r.youtubeProtocol == 'normal') checkedInstances = [...r.invidiousNormalRedirectsChecks, ...r.invidiousNormalCustomRedirects]
else if (r.youtubeProtocol == 'tor') checkedInstances = [...r.invidiousTorRedirectsChecks, ...r.invidiousTorCustomRedirects]
const i = checkedInstances.indexOf(protocolHost);
if (i !== -1) checkedInstances.splice(i, 1);
for (const to of checkedInstances)
utils.copyCookie('invidious', from, to, 'PREFS');
}
@ -408,7 +413,7 @@ function setInvidiousCookies() {
"invidiousTorCustomRedirects",
],
r => {
if (r.disableYoutube || r.youtubeFrontend != 'invidious' || r.youtubeProtocol === undefined) { resolve(); return; }
if (r.disableYoutube || r.youtubeFrontend != 'invidious') { resolve(); return; }
let checkedInstances;
if (r.youtubeProtocol == 'normal') checkedInstances = [...r.invidiousNormalRedirectsChecks, ...r.invidiousNormalCustomRedirects]
else if (r.youtubeProtocol == 'tor') checkedInstances = [...r.invidiousTorRedirectsChecks, ...r.invidiousTorCustomRedirects]
@ -421,42 +426,11 @@ function setInvidiousCookies() {
}
function initPipedLocalStorage(test, url, tabId) {
return new Promise(resolve => {
browser.storage.local.get(
[
"pipedNormalRedirectsChecks",
"pipedNormalCustomRedirects",
"pipedTorRedirectsChecks",
"pipedTorCustomRedirects",
],
r => {
let protocolHost = utils.protocolHost(url);
if (![
...r.pipedNormalCustomRedirects,
...r.pipedNormalRedirectsChecks,
...r.pipedTorRedirectsChecks,
...r.pipedTorCustomRedirects,
].includes(protocolHost)) { resolve(); return; }
if (!test)
browser.tabs.executeScript(
tabId,
{
file: "/assets/javascripts/helpers/youtube/get_piped_preferences.js",
runAt: "document_start"
}
);
resolve(true);
}
)
})
}
function setPipedLocalStorage(url, tabId) {
return new Promise(resolve => {
browser.storage.local.get(
[
"disableYoutube",
"youtubeProtocol",
"youtubeFrontend",
"pipedNormalRedirectsChecks",
"pipedNormalCustomRedirects",
@ -464,21 +438,29 @@ function setPipedLocalStorage(url, tabId) {
"pipedTorCustomRedirects",
],
r => {
if (!r.disableYoutube && r.youtubeFrontend == 'pipedMaterial') { resolve(); return; }
let protocolHost = utils.protocolHost(url);
if (r.disableYoutube || r.youtubeFrontend != 'piped') { resolve(); return; }
const protocolHost = utils.protocolHost(url);
if (![
...r.pipedNormalCustomRedirects,
...r.pipedNormalRedirectsChecks,
...r.pipedTorRedirectsChecks,
...r.pipedNormalCustomRedirects,
...r.pipedTorCustomRedirects,
].includes(protocolHost)) { resolve(); return; }
browser.tabs.executeScript(
tabId,
{
file: "/assets/javascripts/helpers/youtube/set_piped_preferences.js",
runAt: "document_start"
}
);
if (!test) {
browser.tabs.executeScript(tabId, { file: "/assets/javascripts/helpers/youtube/get_piped_preferences.js", runAt: "document_start" });
let checkedInstances;
if (r.youtubeProtocol == 'normal') checkedInstances = [...r.pipedNormalCustomRedirects, ...r.pipedNormalRedirectsChecks]
else if (r.youtubeProtocol == 'tor') checkedInstances = [...r.pipedTorRedirectsChecks, ...r.pipedTorCustomRedirects]
const i = checkedInstances.indexOf(protocolHost);
if (i !== -1) checkedInstances.splice(i, 1);
for (const to of checkedInstances)
browser.tabs.create(
{ url: to },
tab => browser.tabs.executeScript(tab.id, { file: "/assets/javascripts/helpers/youtube/set_piped_preferences.js", runAt: "document_start" })
);
}
resolve(true);
}
)
@ -486,46 +468,15 @@ function setPipedLocalStorage(url, tabId) {
}
function initPipedMaterialLocalStorage(test, url, tabId,) {
return new Promise(resolve => {
browser.storage.local.get(
[
"pipedMaterialNormalRedirectsChecks",
"pipedMaterialNormalCustomRedirects",
"pipedMaterialTorRedirectsChecks",
"pipedMaterialTorCustomRedirects",
],
r => {
const protocolHost = utils.protocolHost(url);
if (![
...r.pipedMaterialNormalCustomRedirects,
...r.pipedMaterialNormalRedirectsChecks,
...r.pipedMaterialTorRedirectsChecks,
...r.pipedMaterialTorCustomRedirects,
].includes(protocolHost)) { resolve(); return; }
if (!test)
browser.tabs.executeScript(
tabId,
{
file: "/assets/javascripts/helpers/youtube/get_pipedMaterial_preferences.js",
runAt: "document_start"
}
);
resolve(true);
}
)
})
}
function setPipedMaterialLocalStorage(url, tabId) {
return new Promise(resolve => {
browser.storage.local.get(
[
"disableYoutube",
"youtubeProtocol",
"youtubeFrontend",
"pipedMaterialNormalRedirectsChecks",
"pipedMaterialTorRedirectsChecks",
"pipedMaterialNormalCustomRedirects",
"pipedMaterialTorRedirectsChecks",
"pipedMaterialTorCustomRedirects",
],
r => {
@ -533,17 +484,25 @@ function setPipedMaterialLocalStorage(url, tabId) {
const protocolHost = utils.protocolHost(url);
if (![
...r.pipedMaterialNormalRedirectsChecks,
...r.pipedMaterialTorRedirectsChecks,
...r.pipedMaterialNormalCustomRedirects,
...r.pipedMaterialTorRedirectsChecks,
...r.pipedMaterialTorCustomRedirects,
].includes(protocolHost)) { resolve(); return; }
browser.tabs.executeScript(
tabId,
{
file: "/assets/javascripts/helpers/youtube/set_pipedMaterial_preferences.js",
runAt: "document_start"
}
);
if (!test) {
browser.tabs.executeScript(tabId, { file: "/assets/javascripts/helpers/youtube/get_pipedMaterial_preferences.js", runAt: "document_start" });
let checkedInstances;
if (r.youtubeProtocol == 'normal') checkedInstances = [...r.pipedMaterialNormalRedirectsChecks, ...r.pipedMaterialNormalCustomRedirects]
else if (r.youtubeProtocol == 'tor') checkedInstances = [...r.pipedMaterialTorRedirectsChecks, ...r.pipedMaterialTorCustomRedirects]
const i = checkedInstances.indexOf(protocolHost);
if (i !== -1) checkedInstances.splice(i, 1);
for (const to of checkedInstances)
browser.tabs.create(
{ url: to },
tab => browser.tabs.executeScript(tab.id, { file: "/assets/javascripts/helpers/youtube/set_pipedMaterial_preferences.js", runAt: "document_start" })
);
}
resolve(true);
}
)
@ -555,15 +514,19 @@ function removeXFrameOptions(e) {
browser.storage.local.get(
[
"youtubeRedirects",
"pipedMaterialNormalRedirectsChecks",
"pipedMaterialTorRedirectsChecks",
"invidiousNormalCustomRedirects",
"invidiousTorCustomRedirects",
"pipedNormalCustomRedirects",
"pipedTorCustomRedirects",
"pipedMaterialNormalCustomRedirects",
"pipedMaterialTorCustomRedirects",
],
r => {
const url = new URL(e.url);
let protocolHost = utils.protocolHost(url);
const list = [
if (![
...r.youtubeRedirects.invidious.normal,
...r.youtubeRedirects.invidious.tor,
...r.youtubeRedirects.piped.normal,
@ -573,14 +536,17 @@ function removeXFrameOptions(e) {
...r.invidiousTorCustomRedirects,
...r.pipedNormalCustomRedirects,
...r.pipedTorCustomRedirects
];
if (!list.includes(protocolHost) || e.type != 'sub_frame') { resolve(); return; }
...r.pipedTorCustomRedirects,
...r.pipedMaterialNormalCustomRedirects,
...r.pipedMaterialTorCustomRedirects,
].includes(protocolHost) || e.type != 'sub_frame') { resolve(); return; }
let isChanged = false;
for (const i in e.responseHeaders) if (e.responseHeaders[i].name == 'x-frame-options') {
e.responseHeaders.splice(i, 1);
isChanged = true;
}
for (const i in e.responseHeaders)
if (e.responseHeaders[i].name == 'x-frame-options') {
e.responseHeaders.splice(i, 1);
isChanged = true;
}
if (isChanged) resolve({ responseHeaders: e.responseHeaders });
})
})
@ -589,8 +555,6 @@ function removeXFrameOptions(e) {
export default {
setRedirects,
initPipedMaterialLocalStorage,
setPipedLocalStorage,
setPipedMaterialLocalStorage,
initInvidiousCookies,
setInvidiousCookies,

View File

@ -216,20 +216,6 @@ browser.webRequest.onErrorOccurred.addListener(
{ urls: ["<all_urls>"], }
)
browser.tabs.onUpdated.addListener(
async (tabId, changeInfo, _) => {
await wholeInit();
let url;
try { url = new URL(changeInfo.url); }
catch (_) { return }
let result = await youtubeHelper.setPipedLocalStorage(url, tabId);
if (!result) result = await youtubeHelper.setPipedMaterialLocalStorage(url, tabId);
if (!result) result = await translateHelper.initLingvaLocalStorage(url, tabId);
}
);
browser.commands.onCommand.addListener(
command => {
if (command === 'switchInstance') utils.switchInstance();

View File

@ -80,10 +80,8 @@ function importError() {
setTimeout(() => importSettingsElementText.innerHTML = oldHTML, 1000);
}
let resetSettingsElement = document.getElementById("reset-settings");
resetSettingsElement.addEventListener("click",
document.getElementById("reset-settings").addEventListener("click",
async () => {
console.log("reset");
await browser.storage.local.clear();
fetch('/instances/blocklist.json').then(response => response.text()).then(async data => {
await browser.storage.local.set({ cloudflareList: JSON.parse(data) })

View File

@ -94,7 +94,6 @@ utils.unify(true).then(r => {
if (!r) document.getElementById('unify_div').style.display = 'none';
else {
const unify = document.getElementById('unify');
console.log('addlistner');
unify.addEventListener("click", () => utils.unify(false, unify));
}
})