Fixing bugs. Preparing for release

This commit is contained in:
ManeraKai 2022-06-05 15:54:13 +03:00
parent fec9df153e
commit 78dcb36710
No known key found for this signature in database
GPG Key ID: 5ABC31FFD562E337
23 changed files with 206 additions and 148 deletions

View File

@ -24,26 +24,28 @@ init();
browser.storage.onChanged.addListener(init)
async function initDefaults() {
await browser.storage.local.set({
exceptions: {
"url": [],
"regex": [],
},
theme: "DEFAULT",
popupFrontends: [
"youtube",
"twitter",
"instagram",
"tikTok",
"imgur",
"reddit",
"search",
"medium",
"translate",
"maps",
],
autoRedirect: false,
})
return new Promise(resolve =>
browser.storage.local.set({
exceptions: {
"url": [],
"regex": [],
},
theme: "DEFAULT",
popupFrontends: [
"youtube",
"twitter",
"instagram",
"tikTok",
"imgur",
"reddit",
"search",
"medium",
"translate",
"maps",
],
autoRedirect: false,
}, () => resolve())
)
}
const allPopupFrontends = [

View File

@ -32,14 +32,12 @@ function setRedirects() {
if (c > -1) rimgoI2pRedirectsChecks.splice(c, 1);
}
await browser.storage.local.set({
browser.storage.local.set({
imgurRedirects: redirects,
rimgoNormalRedirectsChecks,
rimgoTorRedirectsChecks,
rimgoI2pRedirectsChecks,
});
resolve();
}, () => resolve());
})
})
}
@ -162,7 +160,7 @@ function initDefaults() {
const i = rimgoNormalRedirectsChecks.indexOf(instance);
if (i > -1) rimgoNormalRedirectsChecks.splice(i, 1);
}
await browser.storage.local.set({
browser.storage.local.set({
disableImgur: false,
imgurProtocol: 'normal',
imgurRedirects: redirects,
@ -175,8 +173,7 @@ function initDefaults() {
rimgoI2pRedirectsChecks: [...redirects.rimgo.i2p],
rimgoI2pCustomRedirects: [],
});
resolve();
}, () => resolve());
});
});
});

View File

@ -129,7 +129,7 @@ function initDefaults() {
i = librarianNormalRedirectsChecks.indexOf(instance);
if (i > -1) librarianNormalRedirectsChecks.splice(i, 1);
}
await browser.storage.local.set({
browser.storage.local.set({
disableLbryTargets: true,
lbryTargetsRedirects: {
'librarian': redirects.librarian
@ -142,8 +142,8 @@ function initDefaults() {
librarianTorCustomRedirects: [],
lbryTargetsProtocol: "normal",
})
resolve();
}, () => resolve())
})
})
}

View File

@ -197,13 +197,16 @@ function redirect(url, initiator) {
}
async function initDefaults() {
await browser.storage.local.set({
disableMaps: false,
mapsFrontend: 'osm',
mapsRedirects: redirects,
facilNormalRedirectsChecks: [...redirects.facil.normal],
facilNormalCustomRedirects: [],
})
return new Promise(resolve =>
browser.storage.local.set({
disableMaps: false,
mapsFrontend: 'osm',
mapsRedirects: redirects,
facilNormalRedirectsChecks: [...redirects.facil.normal],
facilNormalCustomRedirects: [],
}, () => resolve())
)
}
export default {

View File

@ -148,7 +148,7 @@ function initDefaults() {
let i = scribeNormalRedirectsChecks.indexOf(instance);
if (i > -1) scribeNormalRedirectsChecks.splice(i, 1);
}
await browser.storage.local.set({
browser.storage.local.set({
disableMedium: false,
mediumRedirects: redirects,
@ -159,8 +159,7 @@ function initDefaults() {
scribeTorCustomRedirects: [],
mediumProtocol: "normal",
})
resolve();
}, () => resolve())
})
})
})

View File

@ -128,7 +128,7 @@ function initDefaults() {
let i = simpleertubeNormalRedirectsChecks.indexOf(instance);
if (i > -1) simpleertubeNormalRedirectsChecks.splice(i, 1);
}
await browser.storage.local.set({
browser.storage.local.set({
peerTubeTargets: ['https://search.joinpeertube.org', ...dataJson.peertube],
disablePeertubeTargets: true,
peertubeRedirects: redirects,
@ -140,8 +140,7 @@ function initDefaults() {
simpleertubeTorCustomRedirects: [],
peertubeTargetsProtocol: "normal",
})
resolve();
}, () => resolve());
})
})
})

View File

@ -334,7 +334,7 @@ function initDefaults() {
i = tedditNormalRedirectsChecks.indexOf(instance);
if (i > -1) tedditNormalRedirectsChecks.splice(i, 1);
}
await browser.storage.local.set({
browser.storage.local.set({
disableReddit: false,
redditProtocol: 'normal',
redditFrontend: 'libreddit',
@ -351,8 +351,7 @@ function initDefaults() {
tedditTorRedirectsChecks: [...redirects.teddit.tor],
tedditTorCustomRedirects: [],
});
resolve();
}, () => resolve());
});
});
});

View File

@ -410,7 +410,7 @@ function initDefaults() {
i = searxngNormalRedirectsChecks.indexOf(instance);
if (i > -1) searxngNormalRedirectsChecks.splice(i, 1);
}
await browser.storage.local.set({
browser.storage.local.set({
disableSearch: false,
searchFrontend: 'searxng',
searchRedirects: redirects,
@ -443,8 +443,7 @@ function initDefaults() {
searxngI2pRedirectsChecks: [...redirects.searxng.i2p],
searxngI2pCustomRedirects: [],
})
resolve();
}, () => resolve())
})
})
})

View File

@ -123,7 +123,7 @@ function initDefaults() {
let i = sendNormalRedirectsChecks.indexOf(instance);
if (i > -1) sendNormalRedirectsChecks.splice(i, 1);
}
await browser.storage.local.set({
browser.storage.local.set({
disableSendTarget: false,
sendTargetsRedirects: redirects,
@ -134,8 +134,7 @@ function initDefaults() {
sendTorCustomRedirects: [],
sendTargetsProtocol: "normal",
})
resolve();
}, () => resolve())
})
})
})

View File

@ -142,7 +142,7 @@ function initDefaults() {
fetch('/instances/data.json').then(response => response.text()).then(async data => {
let dataJson = JSON.parse(data);
redirects.proxiTok = dataJson.proxiTok;
await browser.storage.local.set({
browser.storage.local.set({
disableTiktok: false,
tiktokProtocol: "normal",
@ -153,8 +153,7 @@ function initDefaults() {
proxiTokTorRedirectsChecks: [...redirects.proxiTok.tor],
proxiTokTorCustomRedirects: [],
});
resolve();
}, () => resolve());
});
})
}

View File

@ -264,14 +264,14 @@ function initDefaults() {
const i = lingvaNormalRedirectsChecks.indexOf(instance);
if (i > -1) lingvaNormalRedirectsChecks.splice(i, 1);
}
await browser.storage.local.set({
browser.storage.local.set({
translateDisable: false,
translateFrontend: "simplyTranslate",
translateProtocol: 'normal',
translateRedirects: redirects,
simplyTranslateNormalRedirectsChecks: simplyTranslateNormalRedirectsChecks,
simplyTranslateNormalCustomRedirects: [...redirects.simplyTranslate.normal],
simplyTranslateNormalRedirectsChecks: [...redirects.simplyTranslate.normal],
simplyTranslateNormalCustomRedirects: [],
simplyTranslateTorRedirectsChecks: [...redirects.simplyTranslate.tor],
simplyTranslateTorCustomRedirects: [],
@ -279,8 +279,7 @@ function initDefaults() {
lingvaNormalCustomRedirects: [],
lingvaTorRedirectsChecks: [...redirects.lingva.tor],
lingvaTorCustomRedirects: [],
})
resolve();
}, () => resolve())
})
})
})

View File

@ -210,18 +210,17 @@ function initDefaults() {
let i = nitterNormalRedirectsChecks.indexOf(instance);
if (i > -1) nitterNormalRedirectsChecks.splice(i, 1);
}
await browser.storage.local.set({
browser.storage.local.set({
disableTwitter: false,
twitterRedirects: redirects,
twitterProtocol: "normal",
nitterNormalRedirectsChecks,
nitterNormalRedirectsChecks: nitterNormalRedirectsChecks,
nitterNormalCustomRedirects: [],
nitterTorRedirectsChecks: [...redirects.nitter.tor],
nitterTorCustomRedirects: [],
})
resolve();
}, () => resolve());
})
})
})

View File

@ -69,7 +69,6 @@ async function processDefaultCustomInstances(target, name, protocol, document) {
}
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 = [];
@ -77,7 +76,6 @@ async function processDefaultCustomInstances(target, name, protocol, document) {
await initcloudflareBlackList();
let nameDefaultRedirects;
let redirectsChecks = `${name}${camelCase(protocol)}RedirectsChecks`;
@ -92,11 +90,13 @@ async function processDefaultCustomInstances(target, name, protocol, document) {
[
redirectsChecks,
customRedirects,
redirectsKey
redirectsKey,
latencyKey
],
r => {
nameDefaultRedirects = r[redirectsChecks];
nameCustomInstances = r[customRedirects];
instancesLatency = r[latencyKey] ?? [];
redirects = r[redirectsKey];
resolve();
}
@ -155,7 +155,7 @@ async function processDefaultCustomInstances(target, name, protocol, document) {
else
nameDefaultRedirects = [];
await browser.storage.local.set({ [redirectsChecks]: nameDefaultRedirects });
browser.storage.local.set({ [redirectsChecks]: nameDefaultRedirects });
calcNameCheckBoxes();
});
@ -168,7 +168,7 @@ async function processDefaultCustomInstances(target, name, protocol, document) {
let index = nameDefaultRedirects.indexOf(element.className);
if (index > -1) nameDefaultRedirects.splice(index, 1);
}
await browser.storage.local.set({ [redirectsChecks]: nameDefaultRedirects });
browser.storage.local.set({ [redirectsChecks]: nameDefaultRedirects });
calcNameCheckBoxes();
});
}
@ -191,7 +191,7 @@ async function processDefaultCustomInstances(target, name, protocol, document) {
nameProtocolElement.getElementsByClassName(`clear-${item}`)[0].addEventListener("click", async () => {
let index = nameCustomInstances.indexOf(item);
if (index > -1) nameCustomInstances.splice(index, 1);
await browser.storage.local.set({ [customRedirects]: nameCustomInstances });
browser.storage.local.set({ [customRedirects]: nameCustomInstances });
calcNameCustomInstances();
});
}
@ -205,7 +205,7 @@ async function processDefaultCustomInstances(target, name, protocol, document) {
if (nameCustomInstanceInput.validity.valid && !redirects[name][protocol].includes(protocolHostVar)) {
if (!nameCustomInstances.includes(protocolHostVar)) {
nameCustomInstances.push(protocolHostVar)
await browser.storage.local.set({ [customRedirects]: nameCustomInstances });
browser.storage.local.set({ [customRedirects]: nameCustomInstances });
nameCustomInstanceInput.value = '';
}
calcNameCustomInstances();
@ -292,7 +292,6 @@ function copyCookie(frontend, targetUrl, urls, name) {
browser.privacy.websites.firstPartyIsolate.get({},
async firstPartyIsolate => {
function setCookie(url, name, value, expirationDate) {
console.log('firstPartyDomain', firstPartyIsolate.value ? new URL(url).hostname : '')
return new Promise(resolve =>
browser.cookies.set(
{
@ -300,7 +299,7 @@ function copyCookie(frontend, targetUrl, urls, name) {
name: name,
value: value,
firstPartyDomain: firstPartyIsolate.value ? new URL(url).hostname : '',
expirationDate: expirationDate,
expirationDate: firstPartyIsolate.value ? null : expirationDate,
},
() => resolve()
)
@ -334,7 +333,7 @@ function getCookiesFromStorage(frontend, urls, name) {
url: url,
name: cookie.name,
value: cookie.value,
expirationDate: cookie.expirationDate,
expirationDate: firstPartyIsolate.value ? null : cookie.expirationDate,
firstPartyDomain: firstPartyIsolate.value ? new URL(url).hostname : '',
})
})

View File

@ -186,7 +186,7 @@ function initDefaults() {
let i = wikilessNormalRedirectsChecks.indexOf(instance);
if (i > -1) wikilessNormalRedirectsChecks.splice(i, 1);
}
await browser.storage.local.set({
browser.storage.local.set({
disableWikipedia: true,
wikipediaRedirects: redirects,
wikipediaProtocol: "normal",
@ -196,8 +196,7 @@ function initDefaults() {
wikilessNormalCustomRedirects: [],
wikilessTorCustomRedirects: [],
wikilessI2pCustomRedirects: [],
})
resolve();
}, () => resolve());
})
})
})

View File

@ -262,7 +262,7 @@ function initDefaults() {
if (c > -1) pipedMaterialNormalRedirectsChecks.splice(c, 1);
}
await browser.storage.local.set({
browser.storage.local.set({
disableYoutube: false,
enableYoutubeCustomSettings: false,
onlyEmbeddedVideo: 'both',
@ -291,8 +291,7 @@ function initDefaults() {
youtubeEmbedFrontend: 'invidious',
youtubeProtocol: 'normal',
})
resolve();
}, () => resolve())
})
})
})

View File

@ -80,13 +80,15 @@ function redirect(url) {
}
async function initDefaults() {
await browser.storage.local.set({
disableYoutubeMusic: true,
youtubeMusicRedirects: redirects,
return new Promise(resolve =>
browser.storage.local.set({
disableYoutubeMusic: true,
youtubeMusicRedirects: redirects,
beatbumpNormalRedirectsChecks: [...redirects.beatbump.normal],
beatbumpNormalCustomRedirects: [],
})
beatbumpNormalRedirectsChecks: [...redirects.beatbump.normal],
beatbumpNormalCustomRedirects: [],
}, () => resolve())
)
}
export default {

View File

@ -1,7 +1,7 @@
{
"name": "__MSG_extensionName__",
"description": "__MSG_extensionDescription__",
"version": "2.0.0",
"version": "2.1.0",
"manifest_version": 2,
"browser_specific_settings": {
"gecko": {
@ -25,7 +25,6 @@
"storage",
"unlimitedStorage",
"cookies",
"browserSettings",
"privacy",
"contextMenus",
"<all_urls>"

View File

@ -21,38 +21,59 @@ import lbryHelper from "../../assets/javascripts/lbry.js";
window.browser = window.browser || window.chrome;
function openResetWarning() {
return new Promise(resolve => {
browser.storage.local.get(null, r => {
const old = encodeURIComponent(JSON.stringify(r))
browser.tabs.create({ url: browser.runtime.getURL(`/pages/background/reset_warning.html?data=${old}`) });
resolve();
})
})
}
browser.runtime.onInstalled.addListener(
async details => {
// if (details.reason == 'install') {
if (details.reason == 'install' || details.reason == "update") {
if (details.reason == "update") browser.tabs.create({ url: browser.runtime.getURL("/pages/background/reset_warning.html") });
if (details.reason == 'install' || (details.reason == "update" && details.previousVersion != browser.runtime.getManifest().version)) {
if (details.reason == "update") await openResetWarning();
fetch('/instances/blacklist.json').then(response => response.text()).then(async data => {
await browser.storage.local.clear();
await browser.storage.local.set({ cloudflareBlackList: JSON.parse(data).cloudflare })
await browser.storage.local.set({ authenticateBlackList: JSON.parse(data).authenticate })
generalHelper.initDefaults();
youtubeHelper.initDefaults();
youtubeMusicHelper.initDefaults();
twitterHelper.initDefaults();
instagramHelper.initDefaults();
mapsHelper.initDefaults();
searchHelper.initDefaults();
translateHelper.initDefaults();
mediumHelper.initDefaults();
redditHelper.initDefaults();
wikipediaHelper.initDefaults();
imgurHelper.initDefaults();
tiktokHelper.initDefaults();
sendTargetsHelper.initDefaults();
peertubeHelper.initDefaults();
lbryHelper.initDefaults();
browser.storage.local.clear(
() => {
browser.storage.local.set({ cloudflareBlackList: JSON.parse(data).cloudflare },
() => {
browser.storage.local.set({ authenticateBlackList: JSON.parse(data).authenticate },
() => {
generalHelper.initDefaults();
youtubeHelper.initDefaults();
youtubeMusicHelper.initDefaults();
twitterHelper.initDefaults();
instagramHelper.initDefaults();
mapsHelper.initDefaults();
searchHelper.initDefaults();
translateHelper.initDefaults();
mediumHelper.initDefaults();
redditHelper.initDefaults();
wikipediaHelper.initDefaults();
imgurHelper.initDefaults();
tiktokHelper.initDefaults();
sendTargetsHelper.initDefaults();
peertubeHelper.initDefaults();
lbryHelper.initDefaults();
})
})
});
})
}
}
)
youtubeHelper.pasteInvidiousCookies();
youtubeHelper.pastePipedLocalStorage();
youtubeHelper.pastePipedMaterialLocalStorage();
translateHelper.pasteSimplyTranslateCookies();
translateHelper.pasteLingvaLocalStorage();
twitterHelper.pasteNitterCookies();
wikipediaHelper.pasteWikilessCookies();
searchHelper.pasteSearxCookies();

View File

@ -47,7 +47,20 @@
previous version.</p>
<p>Sorry for the inconvenience, but we're going in a fast development process and can't
support nor convert older settings. It will reach a stable plateau though.</p>
<a id="export-settings" class="button button-inline">
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px"
fill="currentColor">
<path
d="M10.09 15.59L11.5 17l5-5-5-5-1.41 1.41L12.67 11H3v2h9.67l-2.58 2.59zM19 3H5c-1.11 0-2 .9-2 2v4h2V5h14v14H5v-4H3v4c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z">
</path>
</svg>
&nbsp;
<x data-localise="__MSG_exportSettings__">Export Settings</x>
</a>
</div>
</body>
<script src="reset_warning.js"></script>
</html>

View File

@ -0,0 +1,11 @@
let params = new URLSearchParams(location.search);
const resultString = JSON.stringify(
JSON.parse(decodeURIComponent(params.get('data'))),
null,
' '
);
let exportSettingsElement = document.getElementById("export-settings");
exportSettingsElement.href = 'data:application/json;base64,' + btoa(resultString);
exportSettingsElement.download = 'libredirect-settings.json';

View File

@ -1,3 +1,12 @@
import youtubeHelper from "../../assets/javascripts/youtube/youtube.js";
import twitterHelper from "../../assets/javascripts/twitter.js";
import redditHelper from "../../assets/javascripts/reddit.js";
import searchHelper from "../../assets/javascripts/search.js";
import translateHelper from "../../assets/javascripts/translate/translate.js";
import wikipediaHelper from "../../assets/javascripts/wikipedia.js";
import tiktokHelper from "../../assets/javascripts/tiktok.js";
for (const a of document.getElementById('links').getElementsByTagName('a')) {
a.addEventListener('click', e => {
const path = a.getAttribute('href').replace('#', '');

View File

@ -63,30 +63,36 @@ importSettingsElement.addEventListener("change",
if (
"theme" in data &&
"disableImgur" in data &&
"cloudflareBlackList" in data &&
"imgurRedirects" in data
) {
await browser.storage.local.clear();
await browser.storage.local.set({ ...data })
await youtubeHelper.pasteInvidiousCookies();
await youtubeHelper.pastePipedLocalStorage();
await youtubeHelper.pastePipedMaterialLocalStorage();
browser.storage.local.clear(
() => {
browser.storage.local.set({ ...data },
async () => {
await youtubeHelper.pasteInvidiousCookies();
await youtubeHelper.pastePipedLocalStorage();
await youtubeHelper.pastePipedMaterialLocalStorage();
await translateHelper.pasteSimplyTranslateCookies();
await translateHelper.pasteLingvaLocalStorage();
await translateHelper.pasteSimplyTranslateCookies();
await translateHelper.pasteLingvaLocalStorage();
await twitterHelper.pasteNitterCookies();
await twitterHelper.pasteNitterCookies();
await wikipediaHelper.pasteWikilessCookies();
await wikipediaHelper.pasteWikilessCookies();
await searchHelper.pasteSearxCookies();
await searchHelper.pasteSearxngCookies();
await searchHelper.pasteSearxCookies();
await searchHelper.pasteSearxngCookies();
await redditHelper.pasteLibredditCookies();
await redditHelper.pasteTedditCookies();
await redditHelper.pasteLibredditCookies();
await redditHelper.pasteTedditCookies();
await tiktokHelper.pasteProxiTokCookies();
location.reload();
})
});
await tiktokHelper.pasteProxiTokCookies();
location.reload();
} else
importError()
}
@ -103,28 +109,35 @@ const resetSettings = document.getElementById("reset-settings");
resetSettings.addEventListener("click",
async () => {
resetSettings.innerHTML = '...'
await browser.storage.local.clear();
fetch('/instances/blacklist.json').then(response => response.text()).then(async data => {
await browser.storage.local.set({ cloudflareBlackList: JSON.parse(data).cloudflare })
await browser.storage.local.set({ authenticateBlackList: JSON.parse(data).authenticate })
await generalHelper.initDefaults();
await youtubeHelper.initDefaults();
await youtubeMusicHelper.initDefaults();
await twitterHelper.initDefaults();
await instagramHelper.initDefaults();
await mapsHelper.initDefaults();
await searchHelper.initDefaults();
await translateHelper.initDefaults();
await mediumHelper.initDefaults();
await redditHelper.initDefaults();
await wikipediaHelper.initDefaults();
await imgurHelper.initDefaults();
await tiktokHelper.initDefaults();
await sendTargetsHelper.initDefaults();
await peertubeHelper.initDefaults();
await lbryHelper.initDefaults();
location.reload();
})
browser.storage.local.clear(
() => {
fetch('/instances/blacklist.json').then(response => response.text()).then(async data => {
browser.storage.local.set({ cloudflareBlackList: JSON.parse(data).cloudflare },
() => {
browser.storage.local.set({ authenticateBlackList: JSON.parse(data).authenticate },
async () => {
await generalHelper.initDefaults();
await youtubeHelper.initDefaults();
await youtubeMusicHelper.initDefaults();
await twitterHelper.initDefaults();
await instagramHelper.initDefaults();
await mapsHelper.initDefaults();
await searchHelper.initDefaults();
await translateHelper.initDefaults();
await mediumHelper.initDefaults();
await redditHelper.initDefaults();
await wikipediaHelper.initDefaults();
await imgurHelper.initDefaults();
await tiktokHelper.initDefaults();
await sendTargetsHelper.initDefaults();
await peertubeHelper.initDefaults();
await lbryHelper.initDefaults();
location.reload();
})
})
})
});
}
);

View File

@ -34,7 +34,6 @@ utils.copyRaw(true).then(r => {
document.getElementById("more-options").addEventListener("click", () => browser.runtime.openOptionsPage());
let disableTwitterElement = document.getElementById("disable-nitter");
let disableYoutubeElement = document.getElementById("disable-youtube");
let disableYoutubeMusicElement = document.getElementById("disable-youtubeMusic");