aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--README.md2
-rw-r--r--src/assets/javascripts/helpers/general.js126
-rw-r--r--src/assets/javascripts/helpers/imgur.js45
-rw-r--r--src/assets/javascripts/helpers/instagram.js21
-rw-r--r--src/assets/javascripts/helpers/lbry.js39
-rw-r--r--src/assets/javascripts/helpers/maps.js305
-rw-r--r--src/assets/javascripts/helpers/medium.js71
-rw-r--r--src/assets/javascripts/helpers/peertube.js140
-rw-r--r--src/assets/javascripts/helpers/reddit.js238
-rw-r--r--src/assets/javascripts/helpers/search.js343
-rw-r--r--src/assets/javascripts/helpers/sendTargets.js157
-rw-r--r--src/assets/javascripts/helpers/tiktok.js71
-rw-r--r--src/assets/javascripts/helpers/translate/translate.js110
-rw-r--r--src/assets/javascripts/helpers/twitter.js113
-rw-r--r--src/assets/javascripts/helpers/utils.js78
-rw-r--r--src/assets/javascripts/helpers/wikipedia.js122
-rw-r--r--src/assets/javascripts/helpers/youtube/youtube.js41
-rw-r--r--src/instances/get_instances.py2
-rw-r--r--src/manifest.json2
-rw-r--r--src/pages/background/background.js35
-rw-r--r--src/pages/background/incognito.html30
-rw-r--r--src/pages/background/incognito.js29
-rw-r--r--src/pages/options/general/general.html4
-rw-r--r--src/pages/options/general/general.js198
-rw-r--r--src/pages/options/general/general.pug2
-rw-r--r--src/pages/options/imgur/imgur.html2
-rw-r--r--src/pages/options/instagram/instagram.html2
-rw-r--r--src/pages/options/lbry/lbry.html2
-rw-r--r--src/pages/options/maps/maps.html2
-rw-r--r--src/pages/options/medium/medium.html2
-rw-r--r--src/pages/options/peertube/peertube.html2
-rw-r--r--src/pages/options/reddit/reddit.html2
-rw-r--r--src/pages/options/search/search.html2
-rw-r--r--src/pages/options/sendTargets/sendTargets.html2
-rw-r--r--src/pages/options/tiktok/tiktok.html2
-rw-r--r--src/pages/options/translate/translate.html2
-rw-r--r--src/pages/options/twitter/twitter.html2
-rw-r--r--src/pages/options/wikipedia/wikipedia.html2
-rw-r--r--src/pages/options/youtube/youtube.html2
-rw-r--r--src/pages/options/youtubeMusic/youtubeMusic.html2
-rw-r--r--src/pages/popup/popup.html39
-rw-r--r--src/pages/popup/popup.js18
-rw-r--r--src/pages/popup/popup.pug30
-rw-r--r--src/pages/popup/style.css13
-rw-r--r--src/pages/widgets/icons.pug5
-rw-r--r--src/pages/widgets/links.pug2
46 files changed, 1183 insertions, 1278 deletions
diff --git a/README.md b/README.md
index 3d9fd705..15d80e15 100644
--- a/README.md
+++ b/README.md
@@ -28,7 +28,7 @@ Reddit => [Libreddit](https://github.com/spikecodes/libreddit#instances), [Teddi
Imgur => [Rimgo](https://codeberg.org/video-prize-ranch/rimgo)\
Wikipedia => [Wikiless](https://codeberg.org/orenom/wikiless)\
Medium => [Scribe](https://sr.ht/~edwardloveall/scribe/)\
-Peertube => [SimpleerTube](https://git.sr.ht/~metalune/simpleweb_peertube)\
+PeerTube => [SimpleerTube](https://git.sr.ht/~metalune/simpleweb_peertube)\
LBRY/Odysee => [Librarian](https://codeberg.org/librarian/librarian)\
Search => [SearXNG](https://github.com/searxng/searxng), [SearX](https://searx.github.io/searx/), [Whoogle](https://benbusby.com/projects/whoogle-search/)\
Translate => [SimplyTranslate](https://git.sr.ht/~metalune/simplytranslate_web), [LingvaTranslate](https://github.com/TheDavidDelta/lingva-translate)\
diff --git a/src/assets/javascripts/helpers/general.js b/src/assets/javascripts/helpers/general.js
index fdc60643..4c70997f 100644
--- a/src/assets/javascripts/helpers/general.js
+++ b/src/assets/javascripts/helpers/general.js
@@ -1,88 +1,49 @@
"use strict";
window.browser = window.browser || window.chrome;
-let theme;
-const getTheme = () => theme;
-function setTheme(val) {
- theme = val
- browser.storage.local.set({ theme, instancesCookies: [] });
- console.log("theme: ", theme)
-}
-
-let exceptions = {
- "url": [],
- "regex": [],
-};
-const getExceptions = () => exceptions;
-function setExceptions(val) {
- exceptions = val;
- browser.storage.local.set({ exceptions })
- console.log("exceptions: ", val)
-}
-
-let autoRedirect;
-const getAutoRedirect = () => autoRedirect;
-function setAutoRedirect(val) {
- autoRedirect = val;
- browser.storage.local.set({ autoRedirect })
- console.log("autoRedirect: ", val)
-}
-
function isException(url) {
- for (const item of exceptions.url) {
- console.log(item, `${url.protocol}//${url.host}`)
- if (item == `${url.protocol}//${url.host}`) return true;
- }
- for (const item of exceptions.regex)
- if (new RegExp(item).test(url.href)) return true;
- return false;
-}
-
-async function init() {
- return new Promise(
- resolve => browser.storage.local.get(
- [
- "exceptions",
- "theme",
- "popupFrontends",
- "autoRedirect"
- ],
+ return new Promise(resolve => {
+ browser.storage.local.get(
+ 'exceptions',
r => {
- if (r.exceptions) exceptions = r.exceptions;
-
- theme = r.theme ?? "DEFAULT"
-
- popupFrontends = r.popupFrontends ?? [
- "youtube",
- "twitter",
- "instagram",
- "tikTok",
- "imgur",
- "reddit",
- "search",
- "medium",
- "translate",
- "maps",
- ];
-
- autoRedirect = r.autoRedirect ?? false;
-
- resolve();
+ for (const item of r.exceptions.url)
+ if (item == `${url.protocol}//${url.host}`) { resolve(true); return; }
+ for (const item of r.exceptions.regex)
+ if (new RegExp(item).test(url.href)) { resolve(true); return; }
+ resolve(false); return;
}
)
- )
+ })
}
-
-let popupFrontends;
-const getPopupFrontends = () => popupFrontends;
-function setPopupFrontends(val) {
- popupFrontends = val;
- browser.storage.local.set({ popupFrontends })
- console.log("popupFrontends: ", val)
+function initDefaults() {
+ return new Promise(async resolve => {
+ await browser.storage.local.set({
+ exceptions: {
+ "url": [],
+ "regex": [],
+ },
+ theme: "DEFAULT",
+ popupFrontends: [
+ "youtube",
+ "twitter",
+ "instagram",
+ "tikTok",
+ "imgur",
+ "reddit",
+ "search",
+ "medium",
+ "translate",
+ "maps",
+ ],
+ autoRedirect: false,
+ })
+ resolve();
+ })
}
-let allPopupFrontends = [
+
+const allPopupFrontends = [
"youtube",
"youtubeMusic",
"twitter",
@@ -102,20 +63,7 @@ let allPopupFrontends = [
export default {
- getExceptions,
- setExceptions,
-
- getAutoRedirect,
- setAutoRedirect,
-
- getPopupFrontends,
- setPopupFrontends,
-
- allPopupFrontends,
-
- getTheme,
- setTheme,
-
isException,
- init,
+ initDefaults,
+ allPopupFrontends,
}
diff --git a/src/assets/javascripts/helpers/imgur.js b/src/assets/javascripts/helpers/imgur.js
index 9ed16b1d..69159b00 100644
--- a/src/assets/javascripts/helpers/imgur.js
+++ b/src/assets/javascripts/helpers/imgur.js
@@ -167,31 +167,32 @@ function switchInstance(url) {
})
}
-async function initDefaults() {
- fetch('/instances/data.json').then(response => response.text()).then(async data => {
- let dataJson = JSON.parse(data);
- redirects.rimgo = dataJson.rimgo;
- browser.storage.local.get('cloudflareList', async r => {
- rimgoNormalRedirectsChecks = [...redirects.rimgo.normal];
- for (const instance of r.cloudflareList) {
- let i;
-
- i = rimgoNormalRedirectsChecks.indexOf(instance);
- if (i > -1) rimgoNormalRedirectsChecks.splice(i, 1);
- }
- await browser.storage.local.set({
- disableImgur: false,
- imgurProtocol: 'normal',
- imgurRedirects: redirects,
+function initDefaults() {
+ return new Promise(resolve => {
+ fetch('/instances/data.json').then(response => response.text()).then(async data => {
+ let dataJson = JSON.parse(data);
+ redirects.rimgo = dataJson.rimgo;
+ browser.storage.local.get('cloudflareList', async r => {
+ rimgoNormalRedirectsChecks = [...redirects.rimgo.normal];
+ for (const instance of r.cloudflareList) {
+ let i = rimgoNormalRedirectsChecks.indexOf(instance);
+ if (i > -1) rimgoNormalRedirectsChecks.splice(i, 1);
+ }
+ await browser.storage.local.set({
+ disableImgur: false,
+ imgurProtocol: 'normal',
+ imgurRedirects: redirects,
- rimgoNormalRedirectsChecks: rimgoNormalRedirectsChecks,
- rimgoNormalCustomRedirects: [],
+ rimgoNormalRedirectsChecks: rimgoNormalRedirectsChecks,
+ rimgoNormalCustomRedirects: [],
- rimgoTorRedirectsChecks: [...redirects.rimgo.tor],
- rimgoTorCustomRedirects: [],
+ rimgoTorRedirectsChecks: [...redirects.rimgo.tor],
+ rimgoTorCustomRedirects: [],
- rimgoI2pRedirectsChecks: [...redirects.rimgo.i2p],
- rimgoI2pCustomRedirects: [],
+ rimgoI2pRedirectsChecks: [...redirects.rimgo.i2p],
+ rimgoI2pCustomRedirects: [],
+ });
+ resolve();
});
});
});
diff --git a/src/assets/javascripts/helpers/instagram.js b/src/assets/javascripts/helpers/instagram.js
index a5f5b81e..8890ec19 100644
--- a/src/assets/javascripts/helpers/instagram.js
+++ b/src/assets/javascripts/helpers/instagram.js
@@ -12,15 +12,18 @@ let redirects = {
}
};
function setRedirects(val) {
- redirects.bibliogram = val;
- browser.storage.local.set({ instagramRedirects: redirects })
- console.log("instagramRedirects: ", val)
- for (const item of bibliogramNormalRedirectsChecks)
- if (!redirects.bibliogram.normal.includes(item)) {
- var index = bibliogramNormalRedirectsChecks.indexOf(item);
- if (index !== -1) bibliogramNormalRedirectsChecks.splice(index, 1);
+ browser.storage.local.get('cloudflareList', async r => {
+ redirects.bibliogram = val;
+ bibliogramNormalRedirectsChecks = [...redirects.bibliogram.normal];
+ for (const instance of r.cloudflareList) {
+ const a = bibliogramNormalRedirectsChecks.indexOf(instance);
+ if (a > -1) bibliogramNormalRedirectsChecks.splice(a, 1);
}
- browser.storage.local.set({ bibliogramNormalRedirectsChecks });
+ browser.storage.local.set({
+ instagramRedirects: redirects,
+ bibliogramNormalRedirectsChecks
+ })
+ })
}
let bibliogramNormalRedirectsChecks;
@@ -49,7 +52,7 @@ function redirect(url, type, initiator) {
...r.instagramRedirects.bibliogram.tor,
...r.bibliogramNormalCustomRedirects,
...r.bibliogramTorCustomRedirects,
- ].includes(initiator.origin) || targets.includes(initiator.host))
+ ].includes(initiator.origin))
) { resolve('BYPASSTAB'); return; }
if (!targets.includes(url.host)) { resolve(); return; }
diff --git a/src/assets/javascripts/helpers/lbry.js b/src/assets/javascripts/helpers/lbry.js
index 6c51cdda..e3f216d7 100644
--- a/src/assets/javascripts/helpers/lbry.js
+++ b/src/assets/javascripts/helpers/lbry.js
@@ -120,28 +120,31 @@ function redirect(url, type, initiator) {
})
}
-async function initDefaults() {
- browser.storage.local.get('cloudflareList', async r => {
- librarianNormalRedirectsChecks = [...redirects.librarian.normal];
- for (const instance of r.cloudflareList) {
- let i;
+function initDefaults() {
+ return new Promise(resolve => {
+ browser.storage.local.get('cloudflareList', async r => {
+ librarianNormalRedirectsChecks = [...redirects.librarian.normal];
+ for (const instance of r.cloudflareList) {
+ let i;
- i = librarianNormalRedirectsChecks.indexOf(instance);
- if (i > -1) librarianNormalRedirectsChecks.splice(i, 1);
- }
- await browser.storage.local.set({
- disableLbryTargets: true,
- lbryTargetsRedirects: {
- 'librarian': redirects.librarian
- },
+ i = librarianNormalRedirectsChecks.indexOf(instance);
+ if (i > -1) librarianNormalRedirectsChecks.splice(i, 1);
+ }
+ await browser.storage.local.set({
+ disableLbryTargets: true,
+ lbryTargetsRedirects: {
+ 'librarian': redirects.librarian
+ },
- librarianNormalRedirectsChecks: librarianNormalRedirectsChecks,
- librarianNormalCustomRedirects: [],
+ librarianNormalRedirectsChecks: librarianNormalRedirectsChecks,
+ librarianNormalCustomRedirects: [],
- librarianTorRedirectsChecks: [...redirects.librarian.tor],
- librarianTorCustomRedirects: [],
+ librarianTorRedirectsChecks: [...redirects.librarian.tor],
+ librarianTorCustomRedirects: [],
- lbryTargetsProtocol: "normal",
+ lbryTargetsProtocol: "normal",
+ })
+ resolve();
})
})
}
diff --git a/src/assets/javascripts/helpers/maps.js b/src/assets/javascripts/helpers/maps.js
index 357221ab..8d09121b 100644
--- a/src/assets/javascripts/helpers/maps.js
+++ b/src/assets/javascripts/helpers/maps.js
@@ -18,172 +18,180 @@ let redirects = {
}
};
-let disable; // disableMaps
-let frontend; // mapsFrontend
-
-let facilNormalRedirectsChecks;
-let facilNormalCustomRedirects = [];
+function redirect(url, initiator) {
+ return new Promise(
+ resolve => {
+ browser.storage.local.get(
+ [
+ "disableMaps",
+ "mapsFrontend",
-async function redirect(url, initiator) {
- const mapCentreRegex = /@(-?\d[0-9.]*),(-?\d[0-9.]*),(\d{1,2})[.z]/;
- const dataLatLngRegex = /!3d(-?[0-9]{1,}.[0-9]{1,})!4d(-?[0-9]{1,}.[0-9]{1,})/;
- const placeRegex = /\/place\/(.*)\//;
- const travelModes = {
- driving: "fossgis_osrm_car",
- walking: "fossgis_osrm_foot",
- bicycling: "fossgis_osrm_bike",
- transit: "fossgis_osrm_car", // not implemented on OSM, default to car.
- };
- const travelModesFacil = {
- driving: "car",
- walking: "pedestrian",
- bicycling: "bicycle",
- transit: "car", // not implemented on Facil, default to car.
- };
- const osmLayers = {
- none: "S",
- transit: "T",
- traffic: "S", // not implemented on OSM, default to standard.
- bicycling: "C",
- };
+ "facilNormalRedirectsChecks",
+ "facilNormalCustomRedirects",
+ ],
+ async r => {
+ const mapCentreRegex = /@(-?\d[0-9.]*),(-?\d[0-9.]*),(\d{1,2})[.z]/;
+ const dataLatLngRegex = /!3d(-?[0-9]{1,}.[0-9]{1,})!4d(-?[0-9]{1,}.[0-9]{1,})/;
+ const placeRegex = /\/place\/(.*)\//;
+ const travelModes = {
+ driving: "fossgis_osrm_car",
+ walking: "fossgis_osrm_foot",
+ bicycling: "fossgis_osrm_bike",
+ transit: "fossgis_osrm_car", // not implemented on OSM, default to car.
+ };
+ const travelModesFacil = {
+ driving: "car",
+ walking: "pedestrian",
+ bicycling: "bicycle",
+ transit: "car", // not implemented on Facil, default to car.
+ };
+ const osmLayers = {
+ none: "S",
+ transit: "T",
+ traffic: "S", // not implemented on OSM, default to standard.
+ bicycling: "C",
+ };
- async function addressToLatLng(address) {
- return new Promise(async resolve => {
- const xmlhttp = new XMLHttpRequest();
- xmlhttp.onreadystatechange = () => {
- if (xmlhttp.readyState === XMLHttpRequest.DONE) {
- if (xmlhttp.status === 200) {
- const json = JSON.parse(xmlhttp.responseText)[0];
+ async function addressToLatLng(address) {
+ return new Promise(async resolve => {
+ const xmlhttp = new XMLHttpRequest();
+ xmlhttp.onreadystatechange = () => {
+ if (xmlhttp.readyState === XMLHttpRequest.DONE) {
+ if (xmlhttp.status === 200) {
+ const json = JSON.parse(xmlhttp.responseText)[0];
- if (json) {
- console.log('json', json)
- resolve([
- `${json.lat},${json.lon}`,
- `${json.boundingbox[2]},${json.boundingbox[1]},${json.boundingbox[3]},${json.boundingbox[0]}`,
- ]);
- }
- } else
- console.info("Error: Status is " + xmlhttp.status);
- }
- };
- xmlhttp.open(
- "GET",
- `https://nominatim.openstreetmap.org/search/${address}?format=json&limit=1`,
- true
- );
- xmlhttp.send();
- })
- }
+ if (json) {
+ console.log('json', json)
+ resolve([
+ `${json.lat},${json.lon}`,
+ `${json.boundingbox[2]},${json.boundingbox[1]},${json.boundingbox[3]},${json.boundingbox[0]}`,
+ ]);
+ }
+ } else
+ console.info("Error: Status is " + xmlhttp.status);
+ }
+ };
+ xmlhttp.open(
+ "GET",
+ `https://nominatim.openstreetmap.org/search/${address}?format=json&limit=1`,
+ true
+ );
+ xmlhttp.send();
+ })
+ }
- if (disable) return;
- if (initiator && initiator.host === "earth.google.com") return;
- if (!url.href.match(targets)) return;
+ if (r.disableMaps) { resolve(); return; }
+ if (initiator && initiator.host === "earth.google.com") { resolve(); return; }
+ if (!url.href.match(targets)) { resolve(); return; }
- let randomInstance;
- if (frontend == 'osm') randomInstance = utils.getRandomInstance(redirects.osm.normal);
- if (frontend == 'facil') randomInstance = utils.getRandomInstance([...facilNormalRedirectsChecks, ...facilNormalCustomRedirects]);
+ let randomInstance;
+ if (r.mapsFrontend == 'osm') randomInstance = utils.getRandomInstance(redirects.osm.normal);
+ if (r.mapsFrontend == 'facil') randomInstance = utils.getRandomInstance([...r.facilNormalRedirectsChecks, ...r.facilNormalCustomRedirects]);
- let mapCentre = "#";
- let prefs = {};
+ let mapCentre = "#";
+ let prefs = {};
- if (url.pathname.match(mapCentreRegex)) { // Set map centre if present
- var [, lat, lon, zoom] = url.pathname.match(mapCentreRegex);
- } else if (url.searchParams.has("center")) {
- var [lat, lon] = url.searchParams.get("center").split(",");
- var zoom = url.searchParams.get("zoom") ?? "17";
- }
+ if (url.pathname.match(mapCentreRegex)) { // Set map centre if present
+ var [, lat, lon, zoom] = url.pathname.match(mapCentreRegex);
+ } else if (url.searchParams.has("center")) {
+ var [lat, lon] = url.searchParams.get("center").split(",");
+ var zoom = url.searchParams.get("zoom") ?? "17";
+ }
- if (lat && lon && zoom) {
- if (frontend == 'osm') mapCentre = `#map=${zoom}/${lat}/${lon}`;
- if (frontend == 'facil') mapCentre = `#${zoom}/${lat}/${lon}`;
- }
+ if (lat && lon && zoom) {
+ if (r.mapsFrontend == 'osm') mapCentre = `#map=${zoom}/${lat}/${lon}`;
+ if (r.mapsFrontend == 'facil') mapCentre = `#${zoom}/${lat}/${lon}`;
+ }
- if (url.searchParams.get("layer")) prefs.layers = osmLayers[url.searchParams.get("layer")];
+ if (url.searchParams.get("layer")) prefs.layers = osmLayers[url.searchParams.get("layer")];
- if (url.pathname.includes("/embed")) { // Handle Google Maps Embed API
- // https://www.google.com/maps/embed/v1/place?key=AIzaSyD4iE2xVSpkLLOXoyqT-RuPwURN3ddScAI&q=Eiffel+Tower,Paris+France
- console.log("embed life");
+ if (url.pathname.includes("/embed")) { // Handle Google Maps Embed API
+ // https://www.google.com/maps/embed/v1/place?key=AIzaSyD4iE2xVSpkLLOXoyqT-RuPwURN3ddScAI&q=Eiffel+Tower,Paris+France
+ console.log("embed life");
- let query = "";
- if (url.searchParams.has("q")) query = url.searchParams.get("q");
- else if (url.searchParams.has("query")) query = url.searchParams.has("query");
+ let query = "";
+ if (url.searchParams.has("q")) query = url.searchParams.get("q");
+ else if (url.searchParams.has("query")) query = url.searchParams.has("query");
- else if (url.searchParams.has("pb"))
- try { query = url.searchParams.get("pb").split(/!2s(.*?)!/)[1]; }
- catch (error) { console.error(error); } // Unable to find map marker in URL.
+ else if (url.searchParams.has("pb"))
+ try { query = url.searchParams.get("pb").split(/!2s(.*?)!/)[1]; }
+ catch (error) { console.error(error); } // Unable to find map marker in URL.
- let [coords, boundingbox] = await addressToLatLng(query);
- prefs.bbox = boundingbox;
- prefs.marker = coords;
- prefs.layer = "mapnik";
- let prefsEncoded = new URLSearchParams(prefs).toString();
- if (frontend == 'osm') return `${randomInstance}/export/embed.html?${prefsEncoded}`;
+ let [coords, boundingbox] = await addressToLatLng(query);
+ prefs.bbox = boundingbox;
+ prefs.marker = coords;
+ prefs.layer = "mapnik";
+ let prefsEncoded = new URLSearchParams(prefs).toString();
+ if (r.mapsFrontend == 'osm') { resolve(`${randomInstance}/export/embed.html?${prefsEncoded}`); return; }
- if (frontend == 'facil') return `${randomInstance}/#q=${query}`;
+ if (r.mapsFrontend == 'facil') { resolve(`${randomInstance}/#q=${query}`); return; }
- } else if (url.pathname.includes("/dir")) { // Handle Google Maps Directions
- // https://www.google.com/maps/dir/?api=1&origin=Space+Needle+Seattle+WA&destination=Pike+Place+Market+Seattle+WA&travelmode=bicycling
+ } else if (url.pathname.includes("/dir")) { // Handle Google Maps Directions
+ // https://www.google.com/maps/dir/?api=1&origin=Space+Needle+Seattle+WA&destination=Pike+Place+Market+Seattle+WA&travelmode=bicycling
- let travMod = url.searchParams.get("travelmode");
- if (url.searchParams.has("travelmode")) prefs.engine = travelModes[travMod];
+ let travMod = url.searchParams.get("travelmode");
+ if (url.searchParams.has("travelmode")) prefs.engine = travelModes[travMod];
- let orgVal = url.searchParams.get("origin");
- let destVal = url.searchParams.get("destination");
+ let orgVal = url.searchParams.get("origin");
+ let destVal = url.searchParams.get("destination");
- let org; addressToLatLng(orgVal, a => org = a);
- let dest; addressToLatLng(destVal, a => dest = a);
- prefs.route = `${org};${dest}`;
+ let org; addressToLatLng(orgVal, a => org = a);
+ let dest; addressToLatLng(destVal, a => dest = a);
+ prefs.route = `${org};${dest}`;
- let prefsEncoded = new URLSearchParams(prefs).toString();
- if (frontend == 'osm') return `${randomInstance}/directions?${prefsEncoded}${mapCentre}`;
- if (frontend == 'facil') return `${randomInstance}/#q=${orgVal}%20to%20${destVal}%20by%20${travelModesFacil[travMod]}`;
+ let prefsEncoded = new URLSearchParams(prefs).toString();
+ if (r.mapsFrontend == 'osm') { resolve(`${randomInstance}/directions?${prefsEncoded}${mapCentre}`); return; }
+ if (r.mapsFrontend == 'facil') { resolve(`${randomInstance}/#q=${orgVal}%20to%20${destVal}%20by%20${travelModesFacil[travMod]}`); return; }
- } else if (url.pathname.includes("data=") && url.pathname.match(dataLatLngRegex)) { // Get marker from data attribute
- // https://www.google.com/maps/place/41%C2%B001'58.2%22N+40%C2%B029'18.2%22E/@41.032833,40.4862063,17z/data=!3m1!4b1!4m6!3m5!1s0x0:0xf64286eaf72fc49d!7e2!8m2!3d41.0328329!4d40.4883948
- console.log("data life");
+ } else if (url.pathname.includes("data=") && url.pathname.match(dataLatLngRegex)) { // Get marker from data attribute
+ // https://www.google.com/maps/place/41%C2%B001'58.2%22N+40%C2%B029'18.2%22E/@41.032833,40.4862063,17z/data=!3m1!4b1!4m6!3m5!1s0x0:0xf64286eaf72fc49d!7e2!8m2!3d41.0328329!4d40.4883948
+ console.log("data life");
- let [, mlat, mlon] = url.pathname.match(dataLatLngRegex);
+ let [, mlat, mlon] = url.pathname.match(dataLatLngRegex);
- if (frontend == 'osm') return `${randomInstance}/search?query=${mlat}%2C${mlon}`;
- if (frontend == 'facil') return `${randomInstance}/#q=${mlat}%2C${mlon}`;
+ if (r.mapsFrontend == 'osm') { resolve(`${randomInstance}/search?query=${mlat}%2C${mlon}`); return; }
+ if (r.mapsFrontend == 'facil') { resolve(`${randomInstance}/#q=${mlat}%2C${mlon}`); return; }
- } else if (url.searchParams.has("ll")) { // Get marker from ll param
- // https://maps.google.com/?ll=38.882147,-76.99017
- console.log("ll life");
+ } else if (url.searchParams.has("ll")) { // Get marker from ll param
+ // https://maps.google.com/?ll=38.882147,-76.99017
+ console.log("ll life");
- const [mlat, mlon] = url.searchParams.get("ll").split(",");
+ const [mlat, mlon] = url.searchParams.get("ll").split(",");
- if (frontend == 'osm') return `${randomInstance}/search?query=${mlat}%2C${mlon}`;
- if (frontend == 'facil') return `${randomInstance}/#q=${mlat}%2C${mlon}`;
- } else if (url.searchParams.has("viewpoint")) { // Get marker from viewpoint param.
- // https://www.google.com/maps/@?api=1&map_action=pano&viewpoint=48.857832,2.295226&heading=-45&pitch=38&fov=80
- console.log("viewpoint life");
+ if (r.mapsFrontend == 'osm') { resolve(`${randomInstance}/search?query=${mlat}%2C${mlon}`); return; }
+ if (r.mapsFrontend == 'facil') { resolve(`${randomInstance}/#q=${mlat}%2C${mlon}`); return; }
+ } else if (url.searchParams.has("viewpoint")) { // Get marker from viewpoint param.
+ // https://www.google.com/maps/@?api=1&map_action=pano&viewpoint=48.857832,2.295226&heading=-45&pitch=38&fov=80
+ console.log("viewpoint life");
- const [mlat, mlon] = url.searchParams.get("viewpoint").split(",");
+ const [mlat, mlon] = url.searchParams.get("viewpoint").split(",");
- if (frontend == 'osm') return `${randomInstance}/search?query=${mlat}%2C${mlon}`;
- if (frontend == 'facil') return `${randomInstance}/#q=${mlat}%2C${mlon}`;
- } else { // Use query as search if present.
- console.log("normal life");
+ if (r.mapsFrontend == 'osm') { resolve(`${randomInstance}/search?query=${mlat}%2C${mlon}`); return; }
+ if (r.mapsFrontend == 'facil') { resolve(`${randomInstance}/#q=${mlat}%2C${mlon}`); return; }
+ } else { // Use query as search if present.
+ console.log("normal life");
- let query;
- if (url.searchParams.has("q")) query = url.searchParams.get("q");
- else if (url.searchParams.has("query")) query = url.searchParams.get("query");
- else if (url.pathname.match(placeRegex)) query = url.pathname.match(placeRegex)[1];
+ let query;
+ if (url.searchParams.has("q")) query = url.searchParams.get("q");
+ else if (url.searchParams.has("query")) query = url.searchParams.get("query");
+ else if (url.pathname.match(placeRegex)) query = url.pathname.match(placeRegex)[1];
- let prefsEncoded = new URLSearchParams(prefs).toString();
- if (query) {
- if (frontend == 'osm') return `${randomInstance}/search?query="${query}${mapCentre}&${prefsEncoded}`;
- if (frontend == 'facil') return `${randomInstance}/${mapCentre}/Mpnk/${query}`
- }
- }
+ let prefsEncoded = new URLSearchParams(prefs).toString();
+ if (query) {
+ if (r.mapsFrontend == 'osm') { resolve(`${randomInstance}/search?query="${query}${mapCentre}&${prefsEncoded}`); return; }
+ if (r.mapsFrontend == 'facil') { resolve(`${randomInstance}/${mapCentre}/Mpnk/${query}`); return; }
+ }
+ }
- let prefsEncoded = new URLSearchParams(prefs).toString();
- console.log("mapCentre", mapCentre);
- console.log("prefs", prefs);
- console.log("prefsEncoded", prefsEncoded);
- if (frontend == 'osm') return `${randomInstance}/${mapCentre}&${prefsEncoded}`
- if (frontend == 'facil') return `${randomInstance}/${mapCentre}/Mpnk`
+ let prefsEncoded = new URLSearchParams(prefs).toString();
+ console.log("mapCentre", mapCentre);
+ console.log("prefs", prefs);
+ console.log("prefsEncoded", prefsEncoded);
+ if (r.mapsFrontend == 'osm') { resolve(`${randomInstance}/${mapCentre}&${prefsEncoded}`); return; }
+ if (r.mapsFrontend == 'facil') { resolve(`${randomInstance}/${mapCentre}/Mpnk`); return; }
+ }
+ )
+ })
}
async function initDefaults() {
@@ -198,32 +206,7 @@ async function initDefaults() {
})
}
-async function init() {
- return new Promise(
- resolve => {
- browser.storage.local.get(
- [
- "disableMaps",
- "mapsFrontend",
-
- "facilNormalRedirectsChecks",
- "facilNormalCustomRedirects",
- ],
- r => {
- disable = r.disableMaps;
- frontend = r.mapsFrontend;
-
- facilNormalRedirectsChecks = r.facilNormalRedirectsChecks;
- facilNormalCustomRedirects = r.facilNormalCustomRedirects;
-
- resolve();
- }
- );
- });
-}
-
export default {
redirect,
- init,
initDefaults,
};
diff --git a/src/assets/javascripts/helpers/medium.js b/src/assets/javascripts/helpers/medium.js
index 788096c5..aabb32bf 100644
--- a/src/assets/javascripts/helpers/medium.js
+++ b/src/assets/javascripts/helpers/medium.js
@@ -35,25 +35,18 @@ let redirects = {
}
};
function setRedirects(val) {
- redirects.scribe = val;
- browser.storage.local.set({ mediumRedirects: redirects })
- for (const item of scribeNormalRedirectsChecks) if (!redirects.scribe.normal.includes(item)) {
- var index = scribeNormalRedirectsChecks.indexOf(item);
- if (index !== -1) scribeNormalRedirectsChecks.splice(index, 1);
- }
- browser.storage.local.set({ scribeNormalRedirectsChecks })
-
- for (const item of scribeNormalRedirectsChecks) if (!redirects.scribe.normal.includes(item)) {
- var index = scribeNormalRedirectsChecks.indexOf(item);
- if (index !== -1) scribeNormalRedirectsChecks.splice(index, 1);
- }
- browser.storage.local.set({ scribeNormalRedirectsChecks })
-
- for (const item of scribeTorRedirectsChecks) if (!redirects.scribe.normal.includes(item)) {
- var index = scribeTorRedirectsChecks.indexOf(item);
- if (index !== -1) scribeTorRedirectsChecks.splice(index, 1);
- }
- browser.storage.local.set({ scribeTorRedirectsChecks })
+ browser.storage.local.get('cloudflareList', r => {
+ redirects.scribe = val;
+ scribeNormalRedirectsChecks = [...redirects.scribe.normal];
+ for (const instance of r.cloudflareList) {
+ const a = scribeNormalRedirectsChecks.indexOf(instance);
+ if (a > -1) scribeNormalRedirectsChecks.splice(a, 1);
+ }
+ browser.storage.local.set({
+ mediumRedirects: redirects,
+ scribeNormalRedirectsChecks
+ })
+ })
}
let scribeNormalRedirectsChecks;
@@ -133,27 +126,31 @@ function switchInstance(url) {
}
function initDefaults() {
- fetch('/instances/data.json').then(response => response.text()).then(data => {
- let dataJson = JSON.parse(data);
- redirects.scribe = dataJson.scribe;
- browser.storage.local.get('cloudflareList', r => {
- scribeNormalRedirectsChecks = [...redirects.scribe.normal];
- for (const instance of r.cloudflareList) {
- let i = scribeNormalRedirectsChecks.indexOf(instance);
- if (i > -1) scribeNormalRedirectsChecks.splice(i, 1);
- }
- browser.storage.local.set({
- disableMedium: false,
- mediumRedirects: redirects,
+ return new Promise(resolve => {
+ fetch('/instances/data.json').then(response => response.text()).then(data => {
+ let dataJson = JSON.parse(data);
+ redirects.scribe = dataJson.scribe;
+ browser.storage.local.get('cloudflareList',
+ async r => {
+ scribeNormalRedirectsChecks = [...redirects.scribe.normal];
+ for (const instance of r.cloudflareList) {
+ let i = scribeNormalRedirectsChecks.indexOf(instance);
+ if (i > -1) scribeNormalRedirectsChecks.splice(i, 1);
+ }
+ await browser.storage.local.set({
+ disableMedium: false,
+ mediumRedirects: redirects,
- scribeNormalRedirectsChecks: scribeNormalRedirectsChecks,
- scribeNormalCustomRedirects: [],
+ scribeNormalRedirectsChecks: scribeNormalRedirectsChecks,
+ scribeNormalCustomRedirects: [],
- scribeTorRedirectsChecks: [...redirects.scribe.tor],
- scribeTorCustomRedirects: [],
+ scribeTorRedirectsChecks: [...redirects.scribe.tor],
+ scribeTorCustomRedirects: [],
- mediumProtocol: "normal",
- })
+ mediumProtocol: "normal",
+ })
+ resolve();
+ })
})
})
}
diff --git a/src/assets/javascripts/helpers/peertube.js b/src/assets/javascripts/helpers/peertube.js
index f741f9c0..ba06b8d8 100644
--- a/src/assets/javascripts/helpers/peertube.js
+++ b/src/assets/javascripts/helpers/peertube.js
@@ -2,8 +2,6 @@ window.browser = window.browser || window.chrome;
import utils from './utils.js'
-let targets = [];
-
let redirects = {
"simpleertube": {
"normal": [
@@ -19,7 +17,6 @@ let redirects = {
function setRedirects(val) {
redirects.simpleertube = val;
browser.storage.local.set({ peertubeTargetsRedirects: redirects })
- console.log("peertubeTargetsRedirects: ", val)
for (const item of simpleertubeNormalRedirectsChecks)
if (!redirects.simpleertube.normal.includes(item)) {
var index = simpleertubeNormalRedirectsChecks.indexOf(item);
@@ -34,15 +31,10 @@ function setRedirects(val) {
}
browser.storage.local.set({ simpleertubeTorRedirectsChecks })
}
+let
+ simpleertubeNormalRedirectsChecks,
+ simpleertubeTorRedirectsChecks;
-let simpleertubeNormalRedirectsChecks;
-let simpleertubeTorRedirectsChecks;
-
-let simpleertubeNormalCustomRedirects = [];
-let simpleertubeTorCustomRedirects = [];
-
-let disable;
-let protocol;
async function switchInstance(url) {
return new Promise(resolve => {
@@ -82,92 +74,82 @@ async function switchInstance(url) {
}
function redirect(url, type, initiator) {
- if (disable) return null;
- if (
- initiator &&
- (
+ return new Promise(resolve => {
+ browser.storage.local.get(
[
- ...redirects.simpleertube.normal,
- ...simpleertubeNormalCustomRedirects
- ].includes(initiator.origin) ||
- targets.includes(initiator.host)
- )
- ) return null;
- let protocolHost = utils.protocolHost(url);
- if (!targets.includes(protocolHost)) return null;
+ "disablePeertubeTargets",
- if (type != "main_frame") return null;
+ "peertubeRedirects",
- let instancesList;
- if (protocol == 'normal') instancesList = [...simpleertubeNormalRedirectsChecks, ...simpleertubeNormalCustomRedirects];
- if (protocol == 'tor') instancesList = [...simpleertubeTorRedirectsChecks, ...simpleertubeTorCustomRedirects];
- if (instancesList.length === 0) return null;
- let randomInstance = utils.getRandomInstance(instancesList);
+ "simpleertubeNormalRedirectsChecks",
+ "simpleertubeNormalCustomRedirects",
- if (url.host == 'search.joinpeertube.org') return randomInstance;
+ "simpleertubeTorRedirectsChecks",
+ "simpleertubeTorCustomRedirects",
- return `${randomInstance}/${url.host}${url.pathname}${url.search}`;
-}
+ "peerTubeTargets",
+ "peertubeTargetsProtocol"
+ ],
+ r => {
+ if (r.disablePeertubeTargets) { resolve(); return; }
+ if (
+ initiator &&
+ (
+ [
+ ...r.peertubeRedirects.simpleertube.normal,
+ ...r.simpleertubeNormalCustomRedirects
+ ].includes(initiator.origin) ||
+ r.peerTubeTargets.includes(initiator.host)
+ )
+ ) { resolve(); return; }
+ let protocolHost = utils.protocolHost(url);
+ if (!r.peerTubeTargets.includes(protocolHost)) { resolve(); return; }
+ if (type != "main_frame") { resolve(); return; }
-async function initDefaults() {
- fetch('/instances/data.json').then(response => response.text()).then(async data => {
- let dataJson = JSON.parse(data);
- browser.storage.local.get('cloudflareList', async r => {
- simpleertubeNormalRedirectsChecks = [...redirects.simpleertube.normal];
- for (const instance of r.cloudflareList) {
- let i = simpleertubeNormalRedirectsChecks.indexOf(instance);
- if (i > -1) simpleertubeNormalRedirectsChecks.splice(i, 1);
+ let instancesList;
+ if (r.peertubeTargetsProtocol == 'normal') instancesList = [...r.simpleertubeNormalRedirectsChecks, ...r.simpleertubeNormalCustomRedirects];
+ if (r.peertubeTargetsProtocol == 'tor') instancesList = [...r.simpleertubeTorRedirectsChecks, ...r.simpleertubeTorCustomRedirects];
+ if (instancesList.length === 0) { resolve(); return; }
+ let randomInstance = utils.getRandomInstance(instancesList);
+ if (url.host == 'search.joinpeertube.org') { resolve(randomInstance); return; }
+
+ resolve(`${randomInstance}/${url.host}${url.pathname}${url.search}`);
}
- await browser.storage.local.set({
- peerTubeTargets: ['https://search.joinpeertube.org', ...dataJson.peertube],
- disablePeertubeTargets: true,
- peertubeRedirects: redirects,
+ )
+ })
+}
+async function initDefaults() {
+ return new Promise(resolve => {
+ fetch('/instances/data.json').then(response => response.text()).then(async data => {
+ let dataJson = JSON.parse(data);
+ browser.storage.local.get('cloudflareList', async r => {
+ simpleertubeNormalRedirectsChecks = [...redirects.simpleertube.normal];
+ for (const instance of r.cloudflareList) {
+ let i = simpleertubeNormalRedirectsChecks.indexOf(instance);
+ if (i > -1) simpleertubeNormalRedirectsChecks.splice(i, 1);
+ }
+ await browser.storage.local.set({
+ peerTubeTargets: ['https://search.joinpeertube.org', ...dataJson.peertube],
+ disablePeertubeTargets: true,
+ peertubeRedirects: redirects,
- simpleertubeNormalRedirectsChecks: simpleertubeNormalRedirectsChecks,
- simpleertubeNormalCustomRedirects: [],
+ simpleertubeNormalRedirectsChecks: simpleertubeNormalRedirectsChecks,
+ simpleertubeNormalCustomRedirects: [],
- simpleertubeTorRedirectsChecks: [...redirects.simpleertube.tor],
- simpleertubeTorCustomRedirects: [],
+ simpleertubeTorRedirectsChecks: [...redirects.simpleertube.tor],
+ simpleertubeTorCustomRedirects: [],
- peertubeTargetsProtocol: "normal",
+ peertubeTargetsProtocol: "normal",
+ })
+ resolve();
})
})
})
}
-async function init() {
- await browser.storage.local.get(
- [
- "disablePeertubeTargets",
- "simpleertubeNormalRedirectsChecks",
- "simpleertubeNormalCustomRedirects",
-
- "simpleertubeTorRedirectsChecks",
- "simpleertubeTorCustomRedirects",
-
- "peerTubeTargets",
- "peertubeTargetsProtocol"
- ],
- r => {
- disable = r.disablePeertubeTargets;
- protocol = r.peertubeTargetsProtocol;
- targets = r.peerTubeTargets;
-
- simpleertubeNormalRedirectsChecks = r.simpleertubeNormalRedirectsChecks;
- simpleertubeNormalCustomRedirects = r.simpleertubeNormalCustomRedirects;
-
- simpleertubeTorRedirectsChecks = r.simpleertubeTorRedirectsChecks;
- simpleertubeTorCustomRedirects = r.simpleertubeTorCustomRedirects;
- }
- )
-}
-
export default {
setRedirects,
-
switchInstance,
-
redirect,
initDefaults,
- init,
};
diff --git a/src/assets/javascripts/helpers/reddit.js b/src/assets/javascripts/helpers/reddit.js
index e768b205..3b5c7d88 100644
--- a/src/assets/javascripts/helpers/reddit.js
+++ b/src/assets/javascripts/helpers/reddit.js
@@ -16,50 +16,29 @@ let redirects = {
"tor": []
},
};
-function setLibredditRedirects(val) {
- redirects.libreddit = val;
- browser.storage.local.set({ redditRedirects: redirects })
- console.log("libredditRedirects:", val)
- for (const item of libredditNormalRedirectsChecks)
- if (!redirects.libreddit.normal.includes(item)) {
- var index = libredditNormalRedirectsChecks.indexOf(item);
- if (index !== -1) libredditNormalRedirectsChecks.splice(index, 1);
- }
- browser.storage.local.set({ libredditNormalRedirectsChecks })
-
- for (const item of libredditTorRedirectsChecks)
- if (!redirects.libreddit.normal.includes(item)) {
- var index = libredditTorRedirectsChecks.indexOf(item);
- if (index !== -1) libredditTorRedirectsChecks.splice(index, 1);
- }
- browser.storage.local.set({ libredditTorRedirectsChecks })
-}
-
-function setTedditRedirects(val) {
- redirects.teddit = val;
- browser.storage.local.set({ redditRedirects: redirects })
- console.log("tedditRedirects:", val)
- for (const item of tedditNormalRedirectsChecks)
- if (!redirects.teddit.normal.includes(item)) {
- var index = tedditNormalRedirectsChecks.indexOf(item);
- if (index !== -1) tedditNormalRedirectsChecks.splice(index, 1);
- }
- browser.storage.local.set({ tedditNormalRedirectsChecks })
+function setRedirects(val) {
+ browser.storage.local.get('cloudflareList', r => {
+ redirects = val;
+ libredditNormalRedirectsChecks = [...redirects.libreddit.normal];
+ tedditNormalRedirectsChecks = [...redirects.teddit.normal]
+ for (const instance of r.cloudflareList) {
+ const a = libredditNormalRedirectsChecks.indexOf(instance);
+ if (a > -1) libredditNormalRedirectsChecks.splice(a, 1);
- for (const item of tedditTorRedirectsChecks)
- if (!redirects.teddit.normal.includes(item)) {
- var index = tedditTorRedirectsChecks.indexOf(item);
- if (index !== -1) tedditTorRedirectsChecks.splice(index, 1);
+ const b = tedditNormalRedirectsChecks.indexOf(instance);
+ if (b > -1) tedditNormalRedirectsChecks.splice(b, 1);
}
- browser.storage.local.set({ tedditTorRedirectsChecks })
+ browser.storage.local.set({
+ redditRedirects: redirects,
+ libredditNormalRedirectsChecks,
+ tedditNormalRedirectsChecks
+ })
+ })
}
let
libredditNormalRedirectsChecks,
- libredditTorRedirectsChecks,
-
- tedditNormalRedirectsChecks,
- tedditTorRedirectsChecks;
+ tedditNormalRedirectsChecks;
function initLibredditCookies(test, from) {
return new Promise(resolve => {
@@ -105,35 +84,38 @@ function initLibredditCookies(test, from) {
}
function setLibredditCookies() {
- browser.storage.local.get(
- [
- "redditProtocol",
- "disableReddit",
- "redditFrontend",
- "libredditNormalRedirectsChecks",
- "libredditNormalCustomRedirects",
- "libredditTorRedirectsChecks",
- "libredditTorCustomRedirects",
- ],
- r => {
- if (r.disableReddit || r.redditFrontend != 'libreddit' || r.redditProtocol === undefined) return;
- let checkedInstances;
- if (r.redditProtocol == 'normal') checkedInstances = [...r.libredditNormalRedirectsChecks, ...r.libredditNormalCustomRedirects]
- else if (r.redditProtocol == 'tor') checkedInstances = [...r.libredditTorRedirectsChecks, ...r.libredditTorCustomRedirects]
- for (const to of checkedInstances) {
- utils.getCookiesFromStorage('libreddit', to, "theme");
- utils.getCookiesFromStorage('libreddit', to, "front_page");
- utils.getCookiesFromStorage('libreddit', to, "layout");
- utils.getCookiesFromStorage('libreddit', to, "wide");
- utils.getCookiesFromStorage('libreddit', to, "post_sort");
- utils.getCookiesFromStorage('libreddit', to, "comment_sort");
- utils.getCookiesFromStorage('libreddit', to, "show_nsfw");
- utils.getCookiesFromStorage('libreddit', to, "autoplay_videos");
- utils.getCookiesFromStorage('libreddit', to, "use_hls");
- utils.getCookiesFromStorage('libreddit', to, "hide_hls_notification");
+ return new Promise(resolve => {
+ browser.storage.local.get(
+ [
+ "redditProtocol",
+ "disableReddit",
+ "redditFrontend",
+ "libredditNormalRedirectsChecks",
+ "libredditNormalCustomRedirects",
+ "libredditTorRedirectsChecks",
+ "libredditTorCustomRedirects",
+ ],
+ r => {
+ if (r.disableReddit || r.redditFrontend != 'libreddit' || r.redditProtocol === undefined) { resolve(); return; }
+ let checkedInstances;
+ if (r.redditProtocol == 'normal') checkedInstances = [...r.libredditNormalRedirectsChecks, ...r.libredditNormalCustomRedirects]
+ else if (r.redditProtocol == 'tor') checkedInstances = [...r.libredditTorRedirectsChecks, ...r.libredditTorCustomRedirects]
+ for (const to of checkedInstances) {
+ utils.getCookiesFromStorage('libreddit', to, "theme");
+ utils.getCookiesFromStorage('libreddit', to, "front_page");
+ utils.getCookiesFromStorage('libreddit', to, "layout");
+ utils.getCookiesFromStorage('libreddit', to, "wide");
+ utils.getCookiesFromStorage('libreddit', to, "post_sort");
+ utils.getCookiesFromStorage('libreddit', to, "comment_sort");
+ utils.getCookiesFromStorage('libreddit', to, "show_nsfw");
+ utils.getCookiesFromStorage('libreddit', to, "autoplay_videos");
+ utils.getCookiesFromStorage('libreddit', to, "use_hls");
+ utils.getCookiesFromStorage('libreddit', to, "hide_hls_notification");
+ }
+ resolve();
}
- }
- )
+ )
+ })
}
function initTedditCookies(test, from) {
@@ -181,37 +163,40 @@ function initTedditCookies(test, from) {
}
function setTedditCookies() {
- browser.storage.local.get(
- [
- "redditProtocol",
- "disableReddit",
- "redditFrontend",
- "tedditNormalRedirectsChecks",
- "tedditNormalCustomRedirects",
- "tedditTorRedirectsChecks",
- "tedditTorCustomRedirects",
- ],
- r => {
- if (r.disableReddit || r.redditFrontend != 'teddit' || r.redditProtocol === undefined) return;
- let checkedInstances;
- if (r.redditProtocol == 'normal') checkedInstances = [...r.tedditNormalRedirectsChecks, ...r.tedditNormalCustomRedirects]
- else if (r.redditProtocol == 'tor') checkedInstances = [...r.tedditTorRedirectsChecks, ...r.tedditTorCustomRedirects]
- for (const to of checkedInstances) {
- utils.getCookiesFromStorage('teddit', to, 'collapse_child_comments')
- utils.getCookiesFromStorage('teddit', to, 'domain_instagram')
- utils.getCookiesFromStorage('teddit', to, 'domain_twitter')
- utils.getCookiesFromStorage('teddit', to, 'domain_youtube')
- utils.getCookiesFromStorage('teddit', to, 'flairs')
- utils.getCookiesFromStorage('teddit', to, 'highlight_controversial')
- utils.getCookiesFromStorage('teddit', to, 'nsfw_enabled')
- utils.getCookiesFromStorage('teddit', to, 'post_media_max_height')
- utils.getCookiesFromStorage('teddit', to, 'show_upvoted_percentage')
- utils.getCookiesFromStorage('teddit', to, 'show_upvotes')
- utils.getCookiesFromStorage('teddit', to, 'theme')
- utils.getCookiesFromStorage('teddit', to, 'videos_muted')
+ return new Promise(resolve => {
+ browser.storage.local.get(
+ [
+ "redditProtocol",
+ "disableReddit",
+ "redditFrontend",
+ "tedditNormalRedirectsChecks",
+ "tedditNormalCustomRedirects",
+ "tedditTorRedirectsChecks",
+ "tedditTorCustomRedirects",
+ ],
+ r => {
+ if (r.disableReddit || r.redditFrontend != 'teddit' || r.redditProtocol === undefined) { resolve(); return; }
+ let checkedInstances;
+ if (r.redditProtocol == 'normal') checkedInstances = [...r.tedditNormalRedirectsChecks, ...r.tedditNormalCustomRedirects]
+ else if (r.redditProtocol == 'tor') checkedInstances = [...r.tedditTorRedirectsChecks, ...r.tedditTorCustomRedirects]
+ for (const to of checkedInstances) {
+ utils.getCookiesFromStorage('teddit', to, 'collapse_child_comments')
+ utils.getCookiesFromStorage('teddit', to, 'domain_instagram')
+ utils.getCookiesFromStorage('teddit', to, 'domain_twitter')
+ utils.getCookiesFromStorage('teddit', to, 'domain_youtube')
+ utils.getCookiesFromStorage('teddit', to, 'flairs')
+ utils.getCookiesFromStorage('teddit', to, 'highlight_controversial')
+ utils.getCookiesFromStorage('teddit', to, 'nsfw_enabled')
+ utils.getCookiesFromStorage('teddit', to, 'post_media_max_height')
+ utils.getCookiesFromStorage('teddit', to, 'show_upvoted_percentage')
+ utils.getCookiesFromStorage('teddit', to, 'show_upvotes')
+ utils.getCookiesFromStorage('teddit', to, 'theme')
+ utils.getCookiesFromStorage('teddit', to, 'videos_muted')
+ }
+ resolve();
}
- }
- )
+ )
+ })
}
function redirect(url, type, initiator) {
@@ -403,48 +388,49 @@ function switchInstance(url) {
}
function initDefaults() {
- fetch('/instances/data.json').then(response => response.text()).then(async data => {
- let dataJson = JSON.parse(data);
- redirects.teddit = dataJson.teddit;
- redirects.libreddit = dataJson.libreddit;
- browser.storage.local.get('cloudflareList', async r => {
- libredditNormalRedirectsChecks = [...redirects.libreddit.normal];
- tedditNormalRedirectsChecks = [...redirects.teddit.normal]
- for (const instance of r.cloudflareList) {
- let i;
+ return new Promise(resolve => {
+ fetch('/instances/data.json').then(response => response.text()).then(async data => {
+ let dataJson = JSON.parse(data);
+ redirects.teddit = dataJson.teddit;
+ redirects.libreddit = dataJson.libreddit;
+ browser.storage.local.get('cloudflareList', async r => {
+ libredditNormalRedirectsChecks = [...redirects.libreddit.normal];
+ tedditNormalRedirectsChecks = [...redirects.teddit.normal]
+ for (const instance of r.cloudflareList) {
+ let i;
- i = libredditNormalRedirectsChecks.indexOf(instance);
- if (i > -1) libredditNormalRedirectsChecks.splice(i, 1);
+ i = libredditNormalRedirectsChecks.indexOf(instance);
+ if (i > -1) libredditNormalRedirectsChecks.splice(i, 1);
- i = tedditNormalRedirectsChecks.indexOf(instance);
- if (i > -1) tedditNormalRedirectsChecks.splice(i, 1);
- }
- await browser.storage.local.set({
- disableReddit: false,
- redditProtocol: 'normal',
- redditFrontend: 'libreddit',
- redditRedirects: redirects,
+ i = tedditNormalRedirectsChecks.indexOf(instance);
+ if (i > -1) tedditNormalRedirectsChecks.splice(i, 1);
+ }
+ await browser.storage.local.set({
+ disableReddit: false,
+ redditProtocol: 'normal',
+ redditFrontend: 'libreddit',
+ redditRedirects: redirects,
- libredditNormalRedirectsChecks: libredditNormalRedirectsChecks,
- libredditNormalCustomRedirects: [],
+ libredditNormalRedirectsChecks: libredditNormalRedirectsChecks,
+ libredditNormalCustomRedirects: [],
- libredditTorRedirectsChecks: [...redirects.libreddit.tor],
- libredditTorCustomRedirects: [],
+ libredditTorRedirectsChecks: [...redirects.libreddit.tor],
+ libredditTorCustomRedirects: [],
- tedditNormalRedirectsChecks: tedditNormalRedirectsChecks,
- tedditNormalCustomRedirects: [],
+ tedditNormalRedirectsChecks: tedditNormalRedirectsChecks,
+ tedditNormalCustomRedirects: [],
- tedditTorRedirectsChecks: [...redirects.teddit.tor],
- tedditTorCustomRedirects: [],
+ tedditTorRedirectsChecks: [...redirects.teddit.tor],
+ tedditTorCustomRedirects: [],
+ });
+ resolve();
});
});
});
}
export default {
- setTedditRedirects,
- setLibredditRedirects,
-
+ setRedirects,
initLibredditCookies,
setLibredditCookies,
initTedditCookies,
diff --git a/src/assets/javascripts/helpers/search.js b/src/assets/javascripts/helpers/search.js
index 56f0f025..511fc53b 100644
--- a/src/assets/javascripts/helpers/search.js
+++ b/src/assets/javascripts/helpers/search.js
@@ -8,7 +8,7 @@ const targets = [
/^https?:\/{2}yandex(\.[a-z]{2,3}){1,2}/,
- /^https?:\/{2}libredirect\.invalid/,
+ /^https?:\/{2}search\.libredirect\.invalid/,
];
let redirects = {
"searx": {
@@ -28,87 +28,35 @@ let redirects = {
}
};
-function setSearxRedirects(val) {
- redirects.searx = val;
- browser.storage.local.set({ searchRedirects: redirects })
- console.log("searxRedirects:", val)
- for (const item of searxNormalRedirectsChecks) if (!redirects.searx.normal.includes(item)) {
- var index = searxNormalRedirectsChecks.indexOf(item);
- if (index !== -1) searxNormalRedirectsChecks.splice(index, 1);
- }
- browser.storage.local.set({ searxNormalRedirectsChecks });
-
- for (const item of searxTorRedirectsChecks) if (!redirects.searx.tor.includes(item)) {
- var index = searxTorRedirectsChecks.indexOf(item);
- if (index !== -1) searxTorRedirectsChecks.splice(index, 1);
- }
- browser.storage.local.set({ searxTorRedirectsChecks })
-
- for (const item of searxI2pRedirectsChecks) if (!redirects.searx.i2p.includes(item)) {
- var index = searxI2pRedirectsChecks.indexOf(item);
- if (index !== -1) searxI2pRedirectsChecks.splice(index, 1);
- }
- browser.storage.local.set({ searxI2pRedirectsChecks });
-}
-
-function setSearxngRedirects(val) {
- redirects.searxng = val;
- browser.storage.local.set({ searchRedirects: redirects })
- console.log("searxngRedirects:", val)
- for (const item of searxngNormalRedirectsChecks) if (!redirects.searxng.normal.includes(item)) {
- var index = searxngNormalRedirectsChecks.indexOf(item);
- if (index !== -1) searxngNormalRedirectsChecks.splice(index, 1);
- }
- browser.storage.local.set({ searxngNormalRedirectsChecks })
-
- for (const item of searxngTorRedirectsChecks) if (!redirects.searxng.tor.includes(item)) {
- var index = searxngTorRedirectsChecks.indexOf(item);
- if (index !== -1) searxngTorRedirectsChecks.splice(index, 1);
- }
- browser.storage.local.set({ searxngTorRedirectsChecks });
-
- for (const item of searxngI2pRedirectsChecks) if (!redirects.searxng.i2p.includes(item)) {
- var index = searxngI2pRedirectsChecks.indexOf(item);
- if (index !== -1) searxngI2pRedirectsChecks.splice(index, 1);
- }
- browser.storage.local.set({ searxngI2pRedirectsChecks })
-}
-
-function setWhoogleRedirects(val) {
- redirects.whoogle = val;
- browser.storage.local.set({ searchRedirects: redirects })
- console.log("whoogleRedirects:", val)
- for (const item of whoogleNormalRedirectsChecks) if (!redirects.whoogle.normal.includes(item)) {
- var index = whoogleNormalRedirectsChecks.indexOf(item);
- if (index !== -1) whoogleNormalRedirectsChecks.splice(index, 1);
- }
- browser.storage.local.set({ whoogleNormalRedirectsChecks })
+function setRedirects(val) {
+ browser.storage.local.get('cloudflareList', r => {
+ redirects = val;
+ searxNormalRedirectsChecks = [...redirects.searx.normal];
+ searxngNormalRedirectsChecks = [...redirects.searxng.normal];
+ whoogleNormalRedirectsChecks = [...redirects.whoogle.normal];
+ for (const instance of r.cloudflareList) {
+ const a = searxNormalRedirectsChecks.indexOf(instance);
+ if (a > -1) searxNormalRedirectsChecks.splice(a, 1);
- for (const item of whoogleTorRedirectsChecks) if (!redirects.whoogle.tor.includes(item)) {
- var index = whoogleTorRedirectsChecks.indexOf(item);
- if (index !== -1) whoogleTorRedirectsChecks.splice(index, 1);
- }
- browser.storage.local.set({ whoogleTorRedirectsChecks })
+ const b = searxngNormalRedirectsChecks.indexOf(instance);
+ if (b > -1) searxngNormalRedirectsChecks.splice(b, 1);
- for (const item of whoogleI2pRedirectsChecks) if (!redirects.whoogle.i2p.includes(item)) {
- var index = whoogleI2pRedirectsChecks.indexOf(item);
- if (index !== -1) whoogleI2pRedirectsChecks.splice(index, 1);
- }
- browser.storage.local.set({ whoogleI2pRedirectsChecks })
+ const c = whoogleNormalRedirectsChecks.indexOf(instance);
+ if (c > -1) whoogleNormalRedirectsChecks.splice(c, 1);
+ }
+ browser.storage.local.set({
+ searchRedirects: redirects,
+ searxNormalRedirectsChecks,
+ searxngNormalRedirectsChecks,
+ whoogleNormalRedirectsChecks,
+ });
+ })
}
let
searxNormalRedirectsChecks,
- searxI2pRedirectsChecks,
- searxTorRedirectsChecks,
-
searxngNormalRedirectsChecks,
- searxngI2pRedirectsChecks,
- searxngTorRedirectsChecks,
-
- whoogleNormalRedirectsChecks,
- whoogleI2pRedirectsChecks,
- whoogleTorRedirectsChecks;
+ whoogleNormalRedirectsChecks;
function initSearxCookies(test, from) {
return new Promise(resolve => {
@@ -165,42 +113,45 @@ function initSearxCookies(test, from) {
}
function setSearxCookies() {
- browser.storage.local.get(
- [
- "disableSearch",
- "searchProtocol",
- "searchFrontend",
- "searxNormalRedirectsChecks",
- "searxNormalCustomRedirects",
- "searxTorRedirectsChecks",
- "searxTorCustomRedirects",
- ],
- r => {
- if (r.disableSearch || r.searchFrontend != 'searx', r.searchProtocol === undefined) return;
- let checkedInstances;
- if (r.searchProtocol == 'normal') checkedInstances = [...r.searxNormalRedirectsChecks, ...r.searxNormalCustomRedirects]
- else if (r.searchProtocol == 'tor') checkedInstances = [...r.searxTorRedirectsChecks, ...r.searxTorCustomRedirects]
- for (const to of checkedInstances) {
- utils.getCookiesFromStorage('searx', to, 'advanced_search');
- utils.getCookiesFromStorage('searx', to, 'autocomplete');
- utils.getCookiesFromStorage('searx', to, 'categories');
- utils.getCookiesFromStorage('searx', to, 'disabled_engines');
- utils.getCookiesFromStorage('searx', to, 'disabled_plugins');
- utils.getCookiesFromStorage('searx', to, 'doi_resolver');
- utils.getCookiesFromStorage('searx', to, 'enabled_engines');
- utils.getCookiesFromStorage('searx', to, 'enabled_plugins');
- utils.getCookiesFromStorage('searx', to, 'image_proxy');
- utils.getCookiesFromStorage('searx', to, 'language');
- utils.getCookiesFromStorage('searx', to, 'locale');
- utils.getCookiesFromStorage('searx', to, 'method');
- utils.getCookiesFromStorage('searx', to, 'oscar-style');
- utils.getCookiesFromStorage('searx', to, 'results_on_new_tab');
- utils.getCookiesFromStorage('searx', to, 'safesearch');
- utils.getCookiesFromStorage('searx', to, 'theme');
- utils.getCookiesFromStorage('searx', to, 'tokens');
+ return new Promise(resolve => {
+ browser.storage.local.get(
+ [
+ "disableSearch",
+ "searchProtocol",
+ "searchFrontend",
+ "searxNormalRedirectsChecks",
+ "searxNormalCustomRedirects",
+ "searxTorRedirectsChecks",
+ "searxTorCustomRedirects",
+ ],
+ r => {
+ if (r.disableSearch || r.searchFrontend != 'searx', r.searchProtocol === undefined) { resolve(); return; }
+ let checkedInstances;
+ if (r.searchProtocol == 'normal') checkedInstances = [...r.searxNormalRedirectsChecks, ...r.searxNormalCustomRedirects]
+ else if (r.searchProtocol == 'tor') checkedInstances = [...r.searxTorRedirectsChecks, ...r.searxTorCustomRedirects]
+ for (const to of checkedInstances) {
+ utils.getCookiesFromStorage('searx', to, 'advanced_search');
+ utils.getCookiesFromStorage('searx', to, 'autocomplete');
+ utils.getCookiesFromStorage('searx', to, 'categories');
+ utils.getCookiesFromStorage('searx', to, 'disabled_engines');
+ utils.getCookiesFromStorage('searx', to, 'disabled_plugins');
+ utils.getCookiesFromStorage('searx', to, 'doi_resolver');
+ utils.getCookiesFromStorage('searx', to, 'enabled_engines');
+ utils.getCookiesFromStorage('searx', to, 'enabled_plugins');
+ utils.getCookiesFromStorage('searx', to, 'image_proxy');
+ utils.getCookiesFromStorage('searx', to, 'language');
+ utils.getCookiesFromStorage('searx', to, 'locale');
+ utils.getCookiesFromStorage('searx', to, 'method');
+ utils.getCookiesFromStorage('searx', to, 'oscar-style');
+ utils.getCookiesFromStorage('searx', to, 'results_on_new_tab');
+ utils.getCookiesFromStorage('searx', to, 'safesearch');
+ utils.getCookiesFromStorage('searx', to, 'theme');
+ utils.getCookiesFromStorage('searx', to, 'tokens');
+ }
+ resolve();
}
- }
- )
+ )
+ })
}
function initSearxngCookies(test, from) {
@@ -260,44 +211,47 @@ function initSearxngCookies(test, from) {
}
function setSearxngCookies() {
- browser.storage.local.get(
- [
- "searchProtocol",
- "disableSearch",
- "searchFrontend",
- "searxngNormalRedirectsChecks",
- "searxngNormalCustomRedirects",
- "searxngTorRedirectsChecks",
- "searxngTorCustomRedirects",
- ],
- r => {
- if (r.disableSearch || r.searchFrontend != 'searxng', r.searchProtocol === undefined) return;
- let checkedInstances;
- if (r.searchProtocol == 'normal') checkedInstances = [...r.searxngNormalRedirectsChecks, ...r.searxngNormalCustomRedirects]
- else if (r.searchProtocol == 'tor') checkedInstances = [...r.searxngTorRedirectsChecks, ...r.searxngTorCustomRedirects]
- for (const to of checkedInstances) {
- utils.getCookiesFromStorage('searxng', to, 'autocomplete');
- utils.getCookiesFromStorage('searxng', to, 'categories');
- utils.getCookiesFromStorage('searxng', to, 'disabled_engines');
- utils.getCookiesFromStorage('searxng', to, 'disabled_plugins');
- utils.getCookiesFromStorage('searxng', to, 'doi_resolver');
- utils.getCookiesFromStorage('searxng', to, 'enabled_plugins');
- utils.getCookiesFromStorage('searxng', to, 'enabled_engines');
- utils.getCookiesFromStorage('searxng', to, 'image_proxy');
- utils.getCookiesFromStorage('searxng', to, 'infinite_scroll');
- utils.getCookiesFromStorage('searxng', to, 'language');
- utils.getCookiesFromStorage('searxng', to, 'locale');
- utils.getCookiesFromStorage('searxng', to, 'maintab');
- utils.getCookiesFromStorage('searxng', to, 'method');
- utils.getCookiesFromStorage('searxng', to, 'query_in_title');
- utils.getCookiesFromStorage('searxng', to, 'results_on_new_tab');
- utils.getCookiesFromStorage('searxng', to, 'safesearch');
- utils.getCookiesFromStorage('searxng', to, 'simple_style');
- utils.getCookiesFromStorage('searxng', to, 'theme');
- utils.getCookiesFromStorage('searxng', to, 'tokens');
+ return new Promise(resolve => {
+ browser.storage.local.get(
+ [
+ "searchProtocol",
+ "disableSearch",
+ "searchFrontend",
+ "searxngNormalRedirectsChecks",
+ "searxngNormalCustomRedirects",
+ "searxngTorRedirectsChecks",
+ "searxngTorCustomRedirects",
+ ],
+ r => {
+ if (r.disableSearch || r.searchFrontend != 'searxng', r.searchProtocol === undefined) { resolve(); return; }
+ let checkedInstances;
+ if (r.searchProtocol == 'normal') checkedInstances = [...r.searxngNormalRedirectsChecks, ...r.searxngNormalCustomRedirects]
+ else if (r.searchProtocol == 'tor') checkedInstances = [...r.searxngTorRedirectsChecks, ...r.searxngTorCustomRedirects]
+ for (const to of checkedInstances) {
+ utils.getCookiesFromStorage('searxng', to, 'autocomplete');
+ utils.getCookiesFromStorage('searxng', to, 'categories');
+ utils.getCookiesFromStorage('searxng', to, 'disabled_engines');
+ utils.getCookiesFromStorage('searxng', to, 'disabled_plugins');
+ utils.getCookiesFromStorage('searxng', to, 'doi_resolver');
+ utils.getCookiesFromStorage('searxng', to, 'enabled_plugins');
+ utils.getCookiesFromStorage('searxng', to, 'enabled_engines');
+ utils.getCookiesFromStorage('searxng', to, 'image_proxy');
+ utils.getCookiesFromStorage('searxng', to, 'infinite_scroll');
+ utils.getCookiesFromStorage('searxng', to, 'language');
+ utils.getCookiesFromStorage('searxng', to, 'locale');
+ utils.getCookiesFromStorage('searxng', to, 'maintab');
+ utils.getCookiesFromStorage('searxng', to, 'method');
+ utils.getCookiesFromStorage('searxng', to, 'query_in_title');
+ utils.getCookiesFromStorage('searxng', to, 'results_on_new_tab');
+ utils.getCookiesFromStorage('searxng', to, 'safesearch');
+ utils.getCookiesFromStorage('searxng', to, 'simple_style');
+ utils.getCookiesFromStorage('searxng', to, 'theme');
+ utils.getCookiesFromStorage('searxng', to, 'tokens');
+ }
+ resolve();
}
- }
- )
+ )
+ })
}
function redirect(url) {
@@ -381,7 +335,7 @@ function redirect(url) {
(
url.hostname.includes('google') ||
url.hostname.includes('bing') ||
- url.hostname.includes('libredirect.invalid')
+ url.hostname.includes('search.libredirect.invalid')
) &&
url.searchParams.has('q')
) searchQuery = `?q=${url.searchParams.get('q')}`;
@@ -485,71 +439,72 @@ async function switchInstance(url) {
})
}
-async function initDefaults() {
- await fetch('/instances/data.json').then(response => response.text()).then(async data => {
- let dataJson = JSON.parse(data);
- redirects.searx = dataJson.searx;
- redirects.searxng = dataJson.searxng;
- redirects.whoogle = dataJson.whoogle;
+function initDefaults() {
+ return new Promise(async resolve => {
+ fetch('/instances/data.json').then(response => response.text()).then(async data => {
+ let dataJson = JSON.parse(data);
+ redirects.searx = dataJson.searx;
+ redirects.searxng = dataJson.searxng;
+ redirects.whoogle = dataJson.whoogle;
- browser.storage.local.get('cloudflareList', async r => {
- whoogleNormalRedirectsChecks = [...redirects.whoogle.normal];
- searxNormalRedirectsChecks = [...redirects.searx.normal];
- searxngNormalRedirectsChecks = [...redirects.searxng.normal];
- for (const instance of r.cloudflareList) {
- let i;
+ browser.storage.local.get('cloudflareList', async r => {
+ whoogleNormalRedirectsChecks = [...redirects.whoogle.normal];
+ searxNormalRedirectsChecks = [...redirects.searx.normal];
+ searxngNormalRedirectsChecks = [...redirects.searxng.normal];
+ for (const instance of r.cloudflareList) {
+ let i;
- i = whoogleNormalRedirectsChecks.indexOf(instance);
- if (i > -1) whoogleNormalRedirectsChecks.splice(i, 1);
+ i = whoogleNormalRedirectsChecks.indexOf(instance);
+ if (i > -1) whoogleNormalRedirectsChecks.splice(i, 1);
- i = searxNormalRedirectsChecks.indexOf(instance);
- if (i > -1) searxNormalRedirectsChecks.splice(i, 1);
+ i = searxNormalRedirectsChecks.indexOf(instance);
+ if (i > -1) searxNormalRedirectsChecks.splice(i, 1);
- i = searxngNormalRedirectsChecks.indexOf(instance);
- if (i > -1) searxngNormalRedirectsChecks.splice(i, 1);
- }
- await browser.storage.local.set({
- disableSearch: false,
- searchFrontend: 'searxng',
- searchRedirects: redirects,
- searxngCustomSettings: false,
- searchProtocol: 'normal',
+ i = searxngNormalRedirectsChecks.indexOf(instance);
+ if (i > -1) searxngNormalRedirectsChecks.splice(i, 1);
+ }
+ await browser.storage.local.set({
+ disableSearch: false,
+ searchFrontend: 'searxng',
+ searchRedirects: redirects,
+ searxngCustomSettings: false,
+ searchProtocol: 'normal',
- whoogleNormalRedirectsChecks: whoogleNormalRedirectsChecks,
- whoogleNormalCustomRedirects: [],
+ whoogleNormalRedirectsChecks: whoogleNormalRedirectsChecks,
+ whoogleNormalCustomRedirects: [],
- whoogleTorRedirectsChecks: [...redirects.whoogle.tor],
- whoogleTorCustomRedirects: [],
+ whoogleTorRedirectsChecks: [...redirects.whoogle.tor],
+ whoogleTorCustomRedirects: [],
- whoogleI2pRedirectsChecks: [...redirects.whoogle.i2p],
- whoogleI2pCustomRedirects: [],
+ whoogleI2pRedirectsChecks: [...redirects.whoogle.i2p],
+ whoogleI2pCustomRedirects: [],
- searxNormalRedirectsChecks: searxNormalRedirectsChecks,
- searxNormalCustomRedirects: [],
+ searxNormalRedirectsChecks: searxNormalRedirectsChecks,
+ searxNormalCustomRedirects: [],
- searxTorRedirectsChecks: [...redirects.searx.tor],
- searxTorCustomRedirects: [],
+ searxTorRedirectsChecks: [...redirects.searx.tor],
+ searxTorCustomRedirects: [],
- searxI2pRedirectsChecks: [...redirects.searx.i2p],
- searxI2pCustomRedirects: [],
+ searxI2pRedirectsChecks: [...redirects.searx.i2p],
+ searxI2pCustomRedirects: [],
- searxngNormalRedirectsChecks: searxngNormalRedirectsChecks,
- searxngNormalCustomRedirects: [],
+ searxngNormalRedirectsChecks: searxngNormalRedirectsChecks,
+ searxngNormalCustomRedirects: [],
- searxngTorRedirectsChecks: [...redirects.searxng.tor],
- searxngTorCustomRedirects: [],
+ searxngTorRedirectsChecks: [...redirects.searxng.tor],
+ searxngTorCustomRedirects: [],
- searxngI2pRedirectsChecks: [...redirects.searxng.i2p],
- searxngI2pCustomRedirects: [],
+ searxngI2pRedirectsChecks: [...redirects.searxng.i2p],
+ searxngI2pCustomRedirects: [],
+ })
+ resolve();
})
})
})
}
export default {
- setSearxRedirects,
- setSearxngRedirects,
- setWhoogleRedirects,
+ setRedirects,
initSearxCookies,
setSearxCookies,
diff --git a/src/assets/javascripts/helpers/sendTargets.js b/src/assets/javascripts/helpers/sendTargets.js
index c593913c..be99e0d9 100644
--- a/src/assets/javascripts/helpers/sendTargets.js
+++ b/src/assets/javascripts/helpers/sendTargets.js
@@ -3,7 +3,7 @@ window.browser = window.browser || window.chrome;
import utils from './utils.js'
const targets = [
- /^https?:\/{2}send.invalid\/$/,
+ /^https?:\/{2}send\.libredirect\.invalid\/$/,
/^ https ?: \/\/send\.firefox\.com\/$/,
/^https?:\/{2}sendfiles\.online\/$/
];
@@ -15,33 +15,23 @@ let redirects = {
}
}
function setRedirects(val) {
- redirects.send = val;
- browser.storage.local.set({ sendTargetsRedirects: redirects })
- console.log("sendTargetsRedirects: ", val)
- for (const item of sendNormalRedirectsChecks)
- if (!redirects.send.normal.includes(item)) {
- var index = sendNormalRedirectsChecks.indexOf(item);
- if (index !== -1) sendNormalRedirectsChecks.splice(index, 1);
+ browser.storage.local.get('cloudflareList', r => {
+ redirects.send = val;
+ sendNormalRedirectsChecks = [...redirects.send.normal];
+ for (const instance of r.cloudflareList) {
+ const a = sendNormalRedirectsChecks.indexOf(instance);
+ if (a > -1) sendNormalRedirectsChecks.splice(a, 1);
}
- browser.storage.local.set({ sendNormalRedirectsChecks })
-
- for (const item of sendTorRedirectsChecks)
- if (!redirects.send.normal.includes(item)) {
- var index = sendTorRedirectsChecks.indexOf(item);
- if (index !== -1) sendTorRedirectsChecks.splice(index, 1);
- }
- browser.storage.local.set({ sendTorRedirectsChecks })
+ browser.storage.local.set({
+ sendTargetsRedirects: redirects,
+ sendNormalRedirectsChecks,
+ })
+ })
}
let sendNormalRedirectsChecks;
-let sendTorRedirectsChecks;
-let sendNormalCustomRedirects = [];
-let sendTorCustomRedirects = [];
-
-let disable; // disableSendTarget
-let protocol; // sendTargetsProtocol
-async function switchInstance(url) {
+function switchInstance(url) {
return new Promise(resolve => {
browser.storage.local.get(
[
@@ -82,85 +72,80 @@ async function switchInstance(url) {
}
function redirect(url, type, initiator) {
- if (disable) return null;
- if (type != "main_frame") return null;
- if (initiator && (
- [...redirects.send.normal,
- ...sendNormalCustomRedirects
- ].includes(initiator.origin) ||
- targets.includes(initiator.host)
- )) return null;
- if (!targets.some(rx => rx.test(url.href))) return null;
-
- let instancesList;
- if (protocol == 'normal') instancesList = [...sendNormalRedirectsChecks, ...sendNormalCustomRedirects];
- if (protocol == 'tor') instancesList = [...sendTorRedirectsChecks, ...sendTorCustomRedirects];
- if (instancesList.length === 0) return null;
- let randomInstance = utils.getRandomInstance(instancesList);
+ return new Promise(resolve => {
+ browser.storage.local.get(
+ [
+ "disableSendTarget",
+ "sendTargetsRedirects",
- return randomInstance;
-}
+ "sendNormalRedirectsChecks",
+ "sendNormalCustomRedirects",
-async function initDefaults() {
- fetch('/instances/data.json').then(response => response.text()).then(async data => {
- let dataJson = JSON.parse(data);
- redirects.send = dataJson.send;
- browser.storage.local.get('cloudflareList', async r => {
- sendNormalRedirectsChecks = [...redirects.send.normal];
- for (const instance of r.cloudflareList) {
- let i = sendNormalRedirectsChecks.indexOf(instance);
- if (i > -1) sendNormalRedirectsChecks.splice(i, 1);
- }
- await browser.storage.local.set({
- disableSendTarget: false,
- sendTargetsRedirects: redirects,
+ "sendTorRedirectsChecks",
+ "sendTorCustomRedirects",
- sendNormalRedirectsChecks: sendNormalRedirectsChecks,
- sendNormalCustomRedirects: [],
+ "sendTargetsProtocol"
+ ],
+ r => {
+ if (r.disableSendTarget) { resolve(); return; }
+ if (type != "main_frame") { resolve(); return; }
+ if (
+ initiator && (
+ [
+ ...r.sendTargetsRedirects.send.normal,
+ ...r.sendTargetsRedirects.send.tor,
+ ...r.sendNormalCustomRedirects,
+ ...r.sendTorRedirectsChecks
+ ].includes(initiator.origin) ||
+ targets.includes(initiator.host)
+ )
+ ) { resolve(); return; }
+ if (!targets.some(rx => rx.test(url.href))) { resolve(); return; }
- sendTorRedirectsChecks: [...redirects.send.tor],
- sendTorCustomRedirects: [],
+ let instancesList;
+ if (r.sendTargetsProtocol == 'normal') instancesList = [...r.sendNormalRedirectsChecks, ...r.sendNormalCustomRedirects];
+ if (r.sendTargetsProtocol == 'tor') instancesList = [...r.sendTorRedirectsChecks, ...r.sendTorCustomRedirects];
+ if (instancesList.length === 0) { resolve(); return; }
- sendTargetsProtocol: "normal",
- })
- })
+ let randomInstance = utils.getRandomInstance(instancesList);
+ resolve(randomInstance);
+ }
+ )
})
}
-async function init() {
- browser.storage.local.get(
- [
- "disableSendTarget",
- "sendTargetsRedirects",
-
- "sendNormalRedirectsChecks",
- "sendNormalCustomRedirects",
-
- "sendTorRedirectsChecks",
- "sendTorCustomRedirects",
+function initDefaults() {
+ return new Promise(resolve => {
+ fetch('/instances/data.json').then(response => response.text()).then(async data => {
+ let dataJson = JSON.parse(data);
+ redirects.send = dataJson.send;
+ browser.storage.local.get('cloudflareList', async r => {
+ sendNormalRedirectsChecks = [...redirects.send.normal];
+ for (const instance of r.cloudflareList) {
+ let i = sendNormalRedirectsChecks.indexOf(instance);
+ if (i > -1) sendNormalRedirectsChecks.splice(i, 1);
+ }
+ await browser.storage.local.set({
+ disableSendTarget: false,
+ sendTargetsRedirects: redirects,
- "sendTargetsProtocol"
- ],
- r => {
- disable = r.disableSendTarget;
- protocol = r.sendTargetsProtocol;
- redirects = r.sendTargetsRedirects;
+ sendNormalRedirectsChecks: sendNormalRedirectsChecks,
+ sendNormalCustomRedirects: [],
- sendNormalRedirectsChecks = r.sendNormalRedirectsChecks;
- sendNormalCustomRedirects = r.sendNormalCustomRedirects;
+ sendTorRedirectsChecks: [...redirects.send.tor],
+ sendTorCustomRedirects: [],
- sendTorRedirectsChecks = r.sendTorRedirectsChecks;
- sendTorCustomRedirects = r.sendTorCustomRedirects;
- }
- )
+ sendTargetsProtocol: "normal",
+ })
+ resolve();
+ })
+ })
+ })
}
export default {
setRedirects,
-
redirect,
switchInstance,
-
initDefaults,
- init,
};
diff --git a/src/assets/javascripts/helpers/tiktok.js b/src/assets/javascripts/helpers/tiktok.js
index f85b9986..897baf0a 100644
--- a/src/assets/javascripts/helpers/tiktok.js
+++ b/src/assets/javascripts/helpers/tiktok.js
@@ -13,22 +13,18 @@ let redirects = {
}
}
function setRedirects(val) {
- redirects.proxiTok = val;
- browser.storage.local.set({ tiktokRedirects: redirects })
- console.log("tiktokRedirects: ", val)
- for (const item of proxiTokNormalRedirectsChecks)
- if (!redirects.proxiTok.normal.includes(item)) {
- var index = proxiTokNormalRedirectsChecks.indexOf(item);
- if (index !== -1) proxiTokNormalRedirectsChecks.splice(index, 1);
+ browser.storage.local.get('cloudflareList', r => {
+ redirects.proxiTok = val;
+ proxiTokNormalRedirectsChecks = [...redirects.proxiTok.normal];
+ for (const instance of r.cloudflareList) {
+ const a = proxiTokNormalRedirectsChecks.indexOf(instance);
+ if (a > -1) proxiTokNormalRedirectsChecks.splice(a, 1);
}
- browser.storage.local.set({ proxiTokNormalRedirectsChecks })
-
- for (const item of proxiTokTorRedirectsChecks)
- if (!redirects.proxiTok.normal.includes(item)) {
- var index = proxiTokTorRedirectsChecks.indexOf(item);
- if (index !== -1) proxiTokTorRedirectsChecks.splice(index, 1);
- }
- browser.storage.local.set({ proxiTokTorRedirectsChecks })
+ browser.storage.local.set({
+ tiktokRedirects: redirects,
+ proxiTokNormalRedirectsChecks
+ })
+ })
}
let proxiTokNormalRedirectsChecks;
@@ -57,7 +53,7 @@ function initProxiTokCookies(test, from) {
...r.proxiTokTorRedirectsChecks,
...r.proxiTokTorCustomRedirects,
].includes(protocolHost)) resolve();
-
+
if (!test) {
let checkedInstances;
if (r.tiktokProtocol == 'normal') checkedInstances = [...r.proxiTokNormalRedirectsChecks, ...r.proxiTokNormalCustomRedirects]
@@ -74,26 +70,29 @@ function initProxiTokCookies(test, from) {
}
function setProxiTokCookies() {
- browser.storage.local.get(
- [
- "tiktokProtocol",
- "disableTiktok",
- "proxiTokNormalRedirectsChecks",
- "proxiTokNormalCustomRedirects",
- "proxiTokTorRedirectsChecks",
- "proxiTokTorCustomRedirects",
- ],
- r => {
- if (r.disableTiktok || r.tiktokProtocol === undefined) return;
- let checkedInstances;
- if (r.tiktokProtocol == 'normal') checkedInstances = [...r.proxiTokNormalRedirectsChecks, ...r.proxiTokNormalCustomRedirects]
- else if (r.tiktokProtocol == 'tor') checkedInstances = [...r.proxiTokTorRedirectsChecks, ...r.proxiTokTorCustomRedirects]
- for (const to of checkedInstances) {
- utils.getCookiesFromStorage('proxitok', to, 'theme');
- utils.getCookiesFromStorage('proxitok', to, 'api-legacy');
+ return new Promise(resolve => {
+ browser.storage.local.get(
+ [
+ "tiktokProtocol",
+ "disableTiktok",
+ "proxiTokNormalRedirectsChecks",
+ "proxiTokNormalCustomRedirects",
+ "proxiTokTorRedirectsChecks",
+ "proxiTokTorCustomRedirects",
+ ],
+ r => {
+ if (r.disableTiktok || r.tiktokProtocol === undefined) { resolve(); return; }
+ let checkedInstances;
+ if (r.tiktokProtocol == 'normal') checkedInstances = [...r.proxiTokNormalRedirectsChecks, ...r.proxiTokNormalCustomRedirects]
+ else if (r.tiktokProtocol == 'tor') checkedInstances = [...r.proxiTokTorRedirectsChecks, ...r.proxiTokTorCustomRedirects]
+ for (const to of checkedInstances) {
+ utils.getCookiesFromStorage('proxitok', to, 'theme');
+ utils.getCookiesFromStorage('proxitok', to, 'api-legacy');
+ }
+ resolve();
}
- }
- )
+ )
+ })
}
function redirect(url, type, initiator) {
@@ -163,7 +162,7 @@ async function reverse(url) {
})
}
-async function initDefaults() {
+function initDefaults() {
return new Promise(async resolve => {
fetch('/instances/data.json').then(response => response.text()).then(async data => {
let dataJson = JSON.parse(data);
diff --git a/src/assets/javascripts/helpers/translate/translate.js b/src/assets/javascripts/helpers/translate/translate.js
index 8ce8a2c2..7ad1f33a 100644
--- a/src/assets/javascripts/helpers/translate/translate.js
+++ b/src/assets/javascripts/helpers/translate/translate.js
@@ -22,12 +22,11 @@ let
lingvaNormalRedirectsChecks;
function setRedirects(val) {
- browser.storage.local.get('cloudflareList', async r => {
+ browser.storage.local.get('cloudflareList', r => {
redirects = val;
simplyTranslateNormalRedirectsChecks = [...redirects.simplyTranslate.normal];
lingvaNormalRedirectsChecks = [...redirects.lingva.normal]
for (const instance of r.cloudflareList) {
- let i;
const a = simplyTranslateNormalRedirectsChecks.indexOf(instance);
if (a > -1) simplyTranslateNormalRedirectsChecks.splice(a, 1);
@@ -149,29 +148,32 @@ function initSimplyTranslateCookies(test, from) {
}
function setSimplyTranslateCookies() {
- browser.storage.local.get(
- [
- "translateProtocol",
- "translateDisable",
- "translateFrontend",
- "simplyTranslateNormalRedirectsChecks",
- "simplyTranslateNormalCustomRedirects",
- "simplyTranslateTorRedirectsChecks",
- "simplyTranslateTorCustomRedirects",
- ],
- r => {
- if (r.translateDisable || r.translateFrontend != 'simplyTranslate') return;
- let checkedInstances;
- if (r.translateProtocol == 'normal') checkedInstances = [...r.simplyTranslateNormalRedirectsChecks, ...r.simplyTranslateNormalCustomRedirects]
- else if (r.translateProtocol == 'tor') checkedInstances = [...r.simplyTranslateTorRedirectsChecks, ...r.simplyTranslateTorCustomRedirects]
- for (const to of checkedInstances) {
- utils.getCookiesFromStorage('simplyTranslate', to, 'from_lang');
- utils.getCookiesFromStorage('simplyTranslate', to, 'to_lang');
- utils.getCookiesFromStorage('simplyTranslate', to, 'tts_enabled');
- utils.getCookiesFromStorage('simplyTranslate', to, 'use_text_fields');
+ return new Promise(resolve => {
+ browser.storage.local.get(
+ [
+ "translateProtocol",
+ "translateDisable",
+ "translateFrontend",
+ "simplyTranslateNormalRedirectsChecks",
+ "simplyTranslateNormalCustomRedirects",
+ "simplyTranslateTorRedirectsChecks",
+ "simplyTranslateTorCustomRedirects",
+ ],
+ r => {
+ if (r.translateDisable || r.translateFrontend != 'simplyTranslate') { resolve(); return; }
+ let checkedInstances;
+ if (r.translateProtocol == 'normal') checkedInstances = [...r.simplyTranslateNormalRedirectsChecks, ...r.simplyTranslateNormalCustomRedirects]
+ else if (r.translateProtocol == 'tor') checkedInstances = [...r.simplyTranslateTorRedirectsChecks, ...r.simplyTranslateTorCustomRedirects]
+ for (const to of checkedInstances) {
+ utils.getCookiesFromStorage('simplyTranslate', to, 'from_lang');
+ utils.getCookiesFromStorage('simplyTranslate', to, 'to_lang');
+ utils.getCookiesFromStorage('simplyTranslate', to, 'tts_enabled');
+ utils.getCookiesFromStorage('simplyTranslate', to, 'use_text_fields');
+ }
+ resolve();
}
- }
- )
+ )
+ })
}
function redirect(url) {
@@ -285,39 +287,41 @@ function switchInstance(url) {
}
function initDefaults() {
- fetch('/instances/data.json').then(response => response.text()).then(data => {
- let dataJson = JSON.parse(data);
- redirects.simplyTranslate = dataJson.simplyTranslate;
- redirects.lingva = dataJson.lingva;
- browser.storage.local.get(
- 'cloudflareList',
- r => {
- simplyTranslateNormalRedirectsChecks = [...redirects.simplyTranslate.normal];
- lingvaNormalRedirectsChecks = [...redirects.lingva.normal]
- for (const instance of r.cloudflareList) {
- const a = simplyTranslateNormalRedirectsChecks.indexOf(instance);
- if (a > -1) simplyTranslateNormalRedirectsChecks.splice(a, 1);
+ return new Promise(async resolve => {
+ fetch('/instances/data.json').then(response => response.text()).then(data => {
+ let dataJson = JSON.parse(data);
+ redirects.simplyTranslate = dataJson.simplyTranslate;
+ redirects.lingva = dataJson.lingva;
+ browser.storage.local.get('cloudflareList',
+ async r => {
+ simplyTranslateNormalRedirectsChecks = [...redirects.simplyTranslate.normal];
+ lingvaNormalRedirectsChecks = [...redirects.lingva.normal]
+ for (const instance of r.cloudflareList) {
+ const a = simplyTranslateNormalRedirectsChecks.indexOf(instance);
+ if (a > -1) simplyTranslateNormalRedirectsChecks.splice(a, 1);
- const b = lingvaNormalRedirectsChecks.indexOf(instance);
- if (b > -1) lingvaNormalRedirectsChecks.splice(b, 1);
- }
- browser.storage.local.set({
- translateDisable: false,
- translateFrontend: "simplyTranslate",
- translateProtocol: 'normal',
- translateRedirects: redirects,
+ const b = lingvaNormalRedirectsChecks.indexOf(instance);
+ if (b > -1) lingvaNormalRedirectsChecks.splice(b, 1);
+ }
+ await browser.storage.local.set({
+ translateDisable: false,
+ translateFrontend: "simplyTranslate",
+ translateProtocol: 'normal',
+ translateRedirects: redirects,
- simplyTranslateNormalRedirectsChecks: simplyTranslateNormalRedirectsChecks,
- simplyTranslateNormalCustomRedirects: [],
- simplyTranslateTorRedirectsChecks: [...redirects.simplyTranslate.tor],
- simplyTranslateTorCustomRedirects: [],
+ simplyTranslateNormalRedirectsChecks: simplyTranslateNormalRedirectsChecks,
+ simplyTranslateNormalCustomRedirects: [],
+ simplyTranslateTorRedirectsChecks: [...redirects.simplyTranslate.tor],
+ simplyTranslateTorCustomRedirects: [],
- lingvaNormalRedirectsChecks: lingvaNormalRedirectsChecks,
- lingvaNormalCustomRedirects: [],
- lingvaTorRedirectsChecks: [...redirects.lingva.tor],
- lingvaTorCustomRedirects: [],
+ lingvaNormalRedirectsChecks: lingvaNormalRedirectsChecks,
+ lingvaNormalCustomRedirects: [],
+ lingvaTorRedirectsChecks: [...redirects.lingva.tor],
+ lingvaTorCustomRedirects: [],
+ })
+ resolve();
})
- })
+ })
})
}
diff --git a/src/assets/javascripts/helpers/twitter.js b/src/assets/javascripts/helpers/twitter.js
index 811edc1d..89077fb9 100644
--- a/src/assets/javascripts/helpers/twitter.js
+++ b/src/assets/javascripts/helpers/twitter.js
@@ -56,10 +56,11 @@ async function redirect(url, initiator) {
if (
initiator &&
- [...r.twitterRedirects.nitter.normal,
- ...r.twitterRedirects.nitter.tor,
- ...r.nitterTorCustomRedirects,
- ...r.nitterNormalCustomRedirects
+ [
+ ...r.twitterRedirects.nitter.normal,
+ ...r.twitterRedirects.nitter.tor,
+ ...r.nitterTorCustomRedirects,
+ ...r.nitterNormalCustomRedirects
].includes(initiator.origin)
) { resolve('BYPASSTAB'); return; }
@@ -228,61 +229,67 @@ function initNitterCookies(test, from) {
}
function setNitterCookies() {
- browser.storage.local.get(
- [
- "twitterProtocol",
- "disableTwitter",
- "youtubeFrontend",
- "nitterNormalRedirectsChecks",
- "nitterNormalCustomRedirects",
- "nitterTorRedirectsChecks",
- "nitterTorCustomRedirects",
- ],
- r => {
- if (r.disableYoutube || r.youtubeFrontend != 'nitter' || r.twitterProtocol === undefined) return;
- let checkedInstances;
- if (r.youtubeProtocol == 'normal') checkedInstances = [...r.nitterNormalRedirectsChecks, ...r.nitterNormalCustomRedirects]
- else if (r.youtubeProtocol == 'tor') checkedInstances = [...r.nitterTorRedirectsChecks, ...r.nitterTorCustomRedirects]
- for (const to of checkedInstances) {
- utils.getCookiesFromStorage('nitter', to, 'theme');
- utils.getCookiesFromStorage('nitter', to, 'infiniteScroll');
- utils.getCookiesFromStorage('nitter', to, 'stickyProfile');
- utils.getCookiesFromStorage('nitter', to, 'bidiSupport');
- utils.getCookiesFromStorage('nitter', to, 'hideTweetStats');
- utils.getCookiesFromStorage('nitter', to, 'hideBanner');
- utils.getCookiesFromStorage('nitter', to, 'hidePins');
- utils.getCookiesFromStorage('nitter', to, 'hideReplies');
- utils.getCookiesFromStorage('nitter', to, 'squareAvatars');
- utils.getCookiesFromStorage('nitter', to, 'mp4Playback');
- utils.getCookiesFromStorage('nitter', to, 'hlsPlayback');
- utils.getCookiesFromStorage('nitter', to, 'proxyVideos');
- utils.getCookiesFromStorage('nitter', to, 'muteVideos');
- utils.getCookiesFromStorage('nitter', to, 'autoplayGifs');
+ return new Promise(resolve => {
+ browser.storage.local.get(
+ [
+ "twitterProtocol",
+ "disableTwitter",
+ "youtubeFrontend",
+ "nitterNormalRedirectsChecks",
+ "nitterNormalCustomRedirects",
+ "nitterTorRedirectsChecks",
+ "nitterTorCustomRedirects",
+ ],
+ r => {
+ if (r.disableYoutube || r.youtubeFrontend != 'nitter' || r.twitterProtocol === undefined) { resolve(); return; }
+ let checkedInstances;
+ if (r.youtubeProtocol == 'normal') checkedInstances = [...r.nitterNormalRedirectsChecks, ...r.nitterNormalCustomRedirects]
+ else if (r.youtubeProtocol == 'tor') checkedInstances = [...r.nitterTorRedirectsChecks, ...r.nitterTorCustomRedirects]
+ for (const to of checkedInstances) {
+ utils.getCookiesFromStorage('nitter', to, 'theme');
+ utils.getCookiesFromStorage('nitter', to, 'infiniteScroll');
+ utils.getCookiesFromStorage('nitter', to, 'stickyProfile');
+ utils.getCookiesFromStorage('nitter', to, 'bidiSupport');
+ utils.getCookiesFromStorage('nitter', to, 'hideTweetStats');
+ utils.getCookiesFromStorage('nitter', to, 'hideBanner');
+ utils.getCookiesFromStorage('nitter', to, 'hidePins');
+ utils.getCookiesFromStorage('nitter', to, 'hideReplies');
+ utils.getCookiesFromStorage('nitter', to, 'squareAvatars');
+ utils.getCookiesFromStorage('nitter', to, 'mp4Playback');
+ utils.getCookiesFromStorage('nitter', to, 'hlsPlayback');
+ utils.getCookiesFromStorage('nitter', to, 'proxyVideos');
+ utils.getCookiesFromStorage('nitter', to, 'muteVideos');
+ utils.getCookiesFromStorage('nitter', to, 'autoplayGifs');
+ }
+ resolve();
}
- }
- )
+ )
+ })
}
function initDefaults() {
- fetch('/instances/data.json').then(response => response.text()).then(data => {
- let dataJson = JSON.parse(data);
- redirects.nitter = dataJson.nitter;
- browser.storage.local.get('cloudflareList', r => {
- nitterNormalRedirectsChecks = [...redirects.nitter.normal];
- for (const instance of r.cloudflareList) {
- let i = nitterNormalRedirectsChecks.indexOf(instance);
- if (i > -1) nitterNormalRedirectsChecks.splice(i, 1);
- }
- browser.storage.local.set({
- disableTwitter: false,
- twitterRedirects: redirects,
- twitterProtocol: "normal",
+ return new Promise(resolve => {
+ fetch('/instances/data.json').then(response => response.text()).then(data => {
+ let dataJson = JSON.parse(data);
+ redirects.nitter = dataJson.nitter;
+ browser.storage.local.get('cloudflareList', async r => {
+ nitterNormalRedirectsChecks = [...redirects.nitter.normal];
+ for (const instance of r.cloudflareList) {
+ let i = nitterNormalRedirectsChecks.indexOf(instance);
+ if (i > -1) nitterNormalRedirectsChecks.splice(i, 1);
+ }
+ await browser.storage.local.set({
+ disableTwitter: false,
+ twitterRedirects: redirects,
+ twitterProtocol: "normal",
- nitterNormalRedirectsChecks,
- nitterNormalCustomRedirects: [],
+ nitterNormalRedirectsChecks,
+ nitterNormalCustomRedirects: [],
- nitterTorRedirectsChecks: [...redirects.nitter.tor],
- nitterTorCustomRedirects: [],
+ nitterTorRedirectsChecks: [...redirects.nitter.tor],
+ nitterTorCustomRedirects: [],
+ })
+ resolve();
})
})
})
diff --git a/src/assets/javascripts/helpers/utils.js b/src/assets/javascripts/helpers/utils.js
index 59fff19e..38c35364 100644
--- a/src/assets/javascripts/helpers/utils.js
+++ b/src/assets/javascripts/helpers/utils.js
@@ -28,60 +28,31 @@ async function initCloudflareList() {
});
}
-async function wholeInit() {
- await sendTargetsHelper.init();
- await tiktokHelper.init();
- await initCloudflareList();
-}
-
-async function updateInstances() {
- let http = new XMLHttpRequest();
- http.open('GET', 'https://raw.githubusercontent.com/libredirect/libredirect/master/src/instances/data.json', false);
- http.send(null);
-
- if (http.status === 200) {
- await wholeInit();
- const instances = JSON.parse(http.responseText);
-
- browser.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);
-
- instagramHelper.setRedirects(instances.bibliogram);
-
- redditHelper.setTedditRedirects(instances.teddit);
- redditHelper.setLibredditRedirects(instances.libreddit);
-
- translateHelper.setRedirects({ "simplyTranslate": instances.simplyTranslate, "lingva": instances.lingva });
-
- searchHelper.setSearxRedirects(instances.searx);
- searchHelper.setSearxngRedirects(instances.searxng);
- searchHelper.setWhoogleRedirects(instances.whoogle);
-
- wikipediaHelper.setRedirects(instances.wikiless);
-
- mediumHelper.setRedirects(instances.scribe);
-
- sendTargetsHelper.setRedirects(instances.send);
+function updateInstances() {
+ return new Promise(async resolve => {
+ let http = new XMLHttpRequest();
+ http.open('GET', 'https://raw.githubusercontent.com/libredirect/libredirect/master/src/instances/data.json', false);
+ http.send(null);
+ if (http.status === 200) {
+ await initCloudflareList();
+ const instances = JSON.parse(http.responseText);
- tiktokHelper.setRedirects(instances.proxiTok);
+ youtubeHelper.setRedirects({ 'invidious': instances.invidious, 'piped': instances.piped, })
+ twitterHelper.setRedirects(instances.nitter);
+ instagramHelper.setRedirects(instances.bibliogram);
+ redditHelper.setRedirects({ 'libreddit': instances.libreddit, 'teddit': instances.teddit });
+ translateHelper.setRedirects({ "simplyTranslate": instances.simplyTranslate, "lingva": instances.lingva });
+ searchHelper.setRedirects({ 'searx': instances.searx, 'searxng': instances.searxng, 'whoogle': instances.whoogle });
+ wikipediaHelper.setRedirects(instances.wikiless);
+ mediumHelper.setRedirects(instances.scribe);
+ sendTargetsHelper.setRedirects(instances.send);
+ tiktokHelper.setRedirects(instances.proxiTok);
- console.info("Successfully updated Instances");
- return true;
- }
- return false;
+ console.info("Successfully updated Instances");
+ resolve(true); return;
+ }
+ resolve()
+ })
}
function protocolHost(url) {
@@ -436,8 +407,6 @@ function switchInstance(test) {
if (!newUrl) newUrl = await imgurHelper.switchInstance(url);
if (!newUrl) newUrl = await wikipediaHelper.switchInstance(url);
- console.log('newUrl', newUrl);
- console.log('test');
if (newUrl) {
if (!test)
browser.tabs.update({ url: newUrl });
@@ -446,7 +415,6 @@ function switchInstance(test) {
}
})
})
- return false;
}
function latency(name, frontend, document, location, splitNames) {
diff --git a/src/assets/javascripts/helpers/wikipedia.js b/src/assets/javascripts/helpers/wikipedia.js
index 81324221..fa6fd8fc 100644
--- a/src/assets/javascripts/helpers/wikipedia.js
+++ b/src/assets/javascripts/helpers/wikipedia.js
@@ -12,35 +12,21 @@ let redirects = {
}
};
function setRedirects(val) {
- redirects.wikiless = val;
- browser.storage.local.set({ wikipediaRedirects: redirects })
- console.log("wikipediaRedirects: ", val)
- for (const item of wikilessNormalRedirectsChecks)
- if (!redirects.wikiless.normal.includes(item)) {
- var index = wikilessNormalRedirectsChecks.indexOf(item);
- if (index !== -1) wikilessNormalRedirectsChecks.splice(index, 1);
+ browser.storage.local.get('cloudflareList', r => {
+ redirects.wikiless = val;
+ wikilessNormalRedirectsChecks = [...redirects.wikiless.normal];
+ for (const instance of r.cloudflareList) {
+ const a = wikilessNormalRedirectsChecks.indexOf(instance);
+ if (a > -1) wikilessNormalRedirectsChecks.splice(a, 1);
}
- browser.storage.local.set({ wikilessNormalRedirectsChecks })
-
- for (const item of wikilessTorRedirectsChecks)
- if (!redirects.wikiless.tor.includes(item)) {
- var index = wikilessTorRedirectsChecks.indexOf(item);
- if (index !== -1) wikilessTorRedirectsChecks.splice(index, 1);
- }
- browser.storage.local.set({ wikilessTorRedirectsChecks })
-
- for (const item of wikilessI2pRedirectsChecks)
- if (!redirects.wikiless.i2p.includes(item)) {
- var index = wikilessI2pRedirectsChecks.indexOf(item);
- if (index !== -1) wikilessI2pRedirectsChecks.splice(index, 1);
- }
- browser.storage.local.set({ wikilessI2pRedirectsChecks })
+ browser.storage.local.set({
+ wikipediaRedirects: redirects,
+ wikilessNormalRedirectsChecks
+ })
+ })
}
-let
- wikilessNormalRedirectsChecks,
- wikilessTorRedirectsChecks,
- wikilessI2pRedirectsChecks;
+let wikilessNormalRedirectsChecks;
function initWikilessCookies(test, from) {
return new Promise(resolve => {
@@ -83,26 +69,29 @@ function initWikilessCookies(test, from) {
}
function setWikilessCookies() {
- browser.storage.local.get(
- [
- "disableWikipedia",
- "wikipediaProtocol",
- "wikilessNormalRedirectsChecks",
- "wikilessNormalCustomRedirects",
- "wikilessTorRedirectsChecks",
- "wikilessTorCustomRedirects",
- ],
- r => {
- if (r.disableWikipedia || r.wikipediaProtocol === undefined) return;
- let checkedInstances;
- if (r.wikipediaProtocol == 'normal') checkedInstances = [...r.wikilessNormalRedirectsChecks, ...r.wikilessNormalCustomRedirects]
- else if (r.wikipediaProtocol == 'tor') checkedInstances = [...r.wikilessTorRedirectsChecks, ...r.wikilessTorCustomRedirects]
- for (const to of checkedInstances) {
- utils.getCookiesFromStorage('wikiless', to, 'theme');
- utils.getCookiesFromStorage('wikiless', to, 'default_lang');
+ return new Promise(resolve => {
+ browser.storage.local.get(
+ [
+ "disableWikipedia",
+ "wikipediaProtocol",
+ "wikilessNormalRedirectsChecks",
+ "wikilessNormalCustomRedirects",
+ "wikilessTorRedirectsChecks",
+ "wikilessTorCustomRedirects",
+ ],
+ r => {
+ if (r.disableWikipedia || r.wikipediaProtocol === undefined) { resolve(); return; }
+ let checkedInstances;
+ if (r.wikipediaProtocol == 'normal') checkedInstances = [...r.wikilessNormalRedirectsChecks, ...r.wikilessNormalCustomRedirects]
+ else if (r.wikipediaProtocol == 'tor') checkedInstances = [...r.wikilessTorRedirectsChecks, ...r.wikilessTorCustomRedirects]
+ for (const to of checkedInstances) {
+ utils.getCookiesFromStorage('wikiless', to, 'theme');
+ utils.getCookiesFromStorage('wikiless', to, 'default_lang');
+ }
+ resolve();
}
- }
- )
+ )
+ })
}
function redirect(url) {
@@ -206,26 +195,29 @@ function switchInstance(url) {
})
}
-async function initDefaults() {
- fetch('/instances/data.json').then(response => response.text()).then(async data => {
- let dataJson = JSON.parse(data);
- redirects.wikiless = dataJson.wikiless;
- browser.storage.local.get('cloudflareList', async r => {
- wikilessNormalRedirectsChecks = [...redirects.wikiless.normal];
- for (const instance of r.cloudflareList) {
- let i = wikilessNormalRedirectsChecks.indexOf(instance);
- if (i > -1) wikilessNormalRedirectsChecks.splice(i, 1);
- }
- await browser.storage.local.set({
- disableWikipedia: true,
- wikipediaRedirects: redirects,
- wikipediaProtocol: "normal",
- wikilessNormalRedirectsChecks: wikilessNormalRedirectsChecks,
- wikilessTorRedirectsChecks: [...redirects.wikiless.tor],
- wikilessI2pRedirectsChecks: [...redirects.wikiless.i2p],
- wikilessNormalCustomRedirects: [],
- wikilessTorCustomRedirects: [],
- wikilessI2pCustomRedirects: [],
+function initDefaults() {
+ return new Promise(resolve => {
+ fetch('/instances/data.json').then(response => response.text()).then(async data => {
+ let dataJson = JSON.parse(data);
+ redirects.wikiless = dataJson.wikiless;
+ browser.storage.local.get('cloudflareList', async r => {
+ wikilessNormalRedirectsChecks = [...redirects.wikiless.normal];
+ for (const instance of r.cloudflareList) {
+ let i = wikilessNormalRedirectsChecks.indexOf(instance);
+ if (i > -1) wikilessNormalRedirectsChecks.splice(i, 1);
+ }
+ await browser.storage.local.set({
+ disableWikipedia: true,
+ wikipediaRedirects: redirects,
+ wikipediaProtocol: "normal",
+ wikilessNormalRedirectsChecks: wikilessNormalRedirectsChecks,
+ wikilessTorRedirectsChecks: [...redirects.wikiless.tor],
+ wikilessI2pRedirectsChecks: [...redirects.wikiless.i2p],
+ wikilessNormalCustomRedirects: [],
+ wikilessTorCustomRedirects: [],
+ wikilessI2pCustomRedirects: [],
+ })
+ resolve();
})
})
})
diff --git a/src/assets/javascripts/helpers/youtube/youtube.js b/src/assets/javascripts/helpers/youtube/youtube.js
index dce03680..060d149f 100644
--- a/src/assets/javascripts/helpers/youtube/youtube.js
+++ b/src/assets/javascripts/helpers/youtube/youtube.js
@@ -396,25 +396,28 @@ function initInvidiousCookies(test, from) {
}
function setInvidiousCookies() {
- browser.storage.local.get(
- [
- "disableYoutube",
- "youtubeProtocol",
- "youtubeFrontend",
- "invidiousNormalRedirectsChecks",
- "invidiousNormalCustomRedirects",
- "invidiousTorRedirectsChecks",
- "invidiousTorCustomRedirects",
- ],
- r => {
- if (r.disableYoutube || r.youtubeFrontend != 'invidious' || r.youtubeProtocol === undefined) return;
- let checkedInstances;
- if (r.youtubeProtocol == 'normal') checkedInstances = [...r.invidiousNormalRedirectsChecks, ...r.invidiousNormalCustomRedirects]
- else if (r.youtubeProtocol == 'tor') checkedInstances = [...r.invidiousTorRedirectsChecks, ...r.invidiousTorCustomRedirects]
- for (const to of checkedInstances)
- utils.getCookiesFromStorage('invidious', to, 'PREFS');
- }
- )
+ return new Promise(resolve => {
+ browser.storage.local.get(
+ [
+ "disableYoutube",
+ "youtubeProtocol",
+ "youtubeFrontend",
+ "invidiousNormalRedirectsChecks",
+ "invidiousNormalCustomRedirects",
+ "invidiousTorRedirectsChecks",
+ "invidiousTorCustomRedirects",
+ ],
+ r => {
+ if (r.disableYoutube || r.youtubeFrontend != 'invidious' || r.youtubeProtocol === undefined) { resolve(); return; }
+ let checkedInstances;
+ if (r.youtubeProtocol == 'normal') checkedInstances = [...r.invidiousNormalRedirectsChecks, ...r.invidiousNormalCustomRedirects]
+ else if (r.youtubeProtocol == 'tor') checkedInstances = [...r.invidiousTorRedirectsChecks, ...r.invidiousTorCustomRedirects]
+ for (const to of checkedInstances)
+ utils.getCookiesFromStorage('invidious', to, 'PREFS');
+ resolve();
+ }
+ )
+ })
}
function initPipedLocalStorage(test, url, tabId) {
diff --git a/src/instances/get_instances.py b/src/instances/get_instances.py
index facbca61..b47433ba 100644
--- a/src/instances/get_instances.py
+++ b/src/instances/get_instances.py
@@ -349,7 +349,7 @@ def peertube():
myList.append('https://'+k['host'])
mightyList['peertube'] = myList
- print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + 'Peertube')
+ print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + 'PeerTube')
def isValid(url): # This code is contributed by avanitrachhadiya2155
diff --git a/src/manifest.json b/src/manifest.json
index 51012112..c0d5621d 100644
--- a/src/manifest.json
+++ b/src/manifest.json
@@ -49,7 +49,7 @@
"name": "__MSG_extensionName__",
"keyword": "libredirect",
"favicon_url": "https://raw.githubusercontent.com/libredirect/libredirect/master/src/assets/images/libredirect-16.png",
- "search_url": "https://libredirect.invalid/?q={searchTerms}",
+ "search_url": "https://search.libredirect.invalid/?q={searchTerms}",
"encoding": "UTF-8",
"is_default": false
}
diff --git a/src/pages/background/background.js b/src/pages/background/background.js
index d8f0bb3f..9eedc308 100644
--- a/src/pages/background/background.js
+++ b/src/pages/background/background.js
@@ -1,6 +1,8 @@
"use strict";
import generalHelper from "../../assets/javascripts/helpers/general.js";
+import utils from "../../assets/javascripts/helpers/utils.js";
+
import youtubeHelper from "../../assets/javascripts/helpers/youtube/youtube.js";
import youtubeMusicHelper from "../../assets/javascripts/helpers/youtubeMusic.js";
import twitterHelper from "../../assets/javascripts/helpers/twitter.js";
@@ -16,7 +18,7 @@ import tiktokHelper from "../../assets/javascripts/helpers/tiktok.js";
import sendTargetsHelper from "../../assets/javascripts/helpers/sendTargets.js";
import peertubeHelper from "../../assets/javascripts/helpers/peertube.js";
import lbryHelper from "../../assets/javascripts/helpers/lbry.js";
-import utils from "../../assets/javascripts/helpers/utils.js";
+
window.browser = window.browser || window.chrome;
@@ -35,6 +37,7 @@ browser.runtime.onInstalled.addListener(
if (details.reason == 'install') {
fetch('/instances/blocklist.json').then(response => response.text()).then(async data => {
await browser.storage.local.set({ cloudflareList: JSON.parse(data) })
+ generalHelper.initDefaults();
youtubeHelper.initDefaults();
youtubeMusicHelper.initDefaults();
twitterHelper.initDefaults();
@@ -56,10 +59,6 @@ browser.runtime.onInstalled.addListener(
)
async function wholeInit() {
- await mapsHelper.init();
- await sendTargetsHelper.init();
- await peertubeHelper.init();
- await generalHelper.init();
}
let incognitoInit = false;
@@ -104,10 +103,10 @@ browser.webRequest.onBeforeRequest.addListener(
if (
details.frameAncestors && details.frameAncestors.length > 0 &&
- generalHelper.isException(new URL(details.frameAncestors[0].url))
+ await generalHelper.isException(new URL(details.frameAncestors[0].url))
) newUrl = null;
- if (generalHelper.isException(url)) newUrl = 'BYPASSTAB';
+ if (await generalHelper.isException(url)) newUrl = 'BYPASSTAB';
if (BYPASSTABs.includes(details.tabId)) newUrl = null;
@@ -117,7 +116,7 @@ browser.webRequest.onBeforeRequest.addListener(
return { cancel: true };
}
else if (newUrl === 'BYPASSTAB') {
- console.log(`Bybassed ${details.tabId} ${url}`);
+ console.log(`Bypassed ${details.tabId} ${url}`);
if (!BYPASSTABs.includes(details.tabId)) BYPASSTABs.push(details.tabId);
return null;
}
@@ -180,9 +179,21 @@ async function redirectOfflineInstance(url, tabId) {
}
}
let counter = 0;
+
+function isAutoRedirect() {
+ return new Promise(resolve => {
+ browser.storage.local.get('autoRedirect',
+ r => {
+ if (r.autoRedirect == true) resolve(true)
+ else resolve(false)
+ }
+ )
+ })
+}
+
browser.webRequest.onResponseStarted.addListener(
- details => {
- if (!generalHelper.getAutoRedirect()) return null;
+ async details => {
+ if (!await isAutoRedirect()) return null;
if (details.type == 'main_frame' && (details.statusCode == 502 || details.statusCode == 503 || details.statusCode == 504)) {
// if (details.type == 'main_frame' && details.statusCode >= 200) {
@@ -195,8 +206,8 @@ browser.webRequest.onResponseStarted.addListener(
)
browser.webRequest.onErrorOccurred.addListener(
- details => {
- if (!generalHelper.getAutoRedirect()) return;
+ async details => {
+ if (!await isAutoRedirect()) return;
if (details.type == 'main_frame') {
const url = new URL(details.url);
redirectOfflineInstance(url, details.tabId);
diff --git a/src/pages/background/incognito.html b/src/pages/background/incognito.html
index 57d0bfdb..a618cdb6 100644
--- a/src/pages/background/incognito.html
+++ b/src/pages/background/incognito.html
@@ -3,7 +3,35 @@
<head>
<meta charset="utf-8" />
- <script type="module" src="incognito.js"></script>
+ <meta charset="UTF-8">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
+ <title data-localise="__MSG_instanceIsOff__">Initializing Cookies</title>
+ <link href="../stylesheets/styles.css" rel="stylesheet" />
+ <style>
+ body {
+ margin: 0;
+ padding: 0;
+ height: 100vh;
+ width: 100vw;
+ flex-wrap: wrap;
+ justify-content: center;
+ align-items: center;
+ font-size: 30px;
+ display: flex;
+ }
+
+ div {
+ text-align: center;
+ }
+ </style>
</head>
+<body>
+ <div>
+ <p>Initializing Cookies</p>
+ </div>
+ <script type="module" src="incognito.js"></script>
+</body>
+
</html> \ No newline at end of file
diff --git a/src/pages/background/incognito.js b/src/pages/background/incognito.js
index 16eccf74..600591d3 100644
--- a/src/pages/background/incognito.js
+++ b/src/pages/background/incognito.js
@@ -1,30 +1,21 @@
-"use strict";
-
import youtubeHelper from "../../assets/javascripts/helpers/youtube/youtube.js";
import twitterHelper from "../../assets/javascripts/helpers/twitter.js";
-import instagramHelper from "../../assets/javascripts/helpers/instagram.js";
import redditHelper from "../../assets/javascripts/helpers/reddit.js";
import searchHelper from "../../assets/javascripts/helpers/search.js";
import translateHelper from "../../assets/javascripts/helpers/translate/translate.js";
-import mapsHelper from "../../assets/javascripts/helpers/maps.js";
import wikipediaHelper from "../../assets/javascripts/helpers/wikipedia.js";
-import mediumHelper from "../../assets/javascripts/helpers/medium.js";
-import imgurHelper from "../../assets/javascripts/helpers/imgur.js";
import tiktokHelper from "../../assets/javascripts/helpers/tiktok.js";
-import sendTargetsHelper from "../../assets/javascripts/helpers/sendTargets.js";
-import peertubeHelper from "../../assets/javascripts/helpers/peertube.js";
-import lbryHelper from "../../assets/javascripts/helpers/lbry.js";
-import generalHelper from "../../assets/javascripts/helpers/general.js";
-import youtubeMusicHelper from "../../assets/javascripts/helpers/youtubeMusic.js";
window.browser = window.browser || window.chrome;
-async function wholeInit() {
- await youtubeMusicHelper.init();
- await mapsHelper.init();
- await sendTargetsHelper.init();
- await peertubeHelper.init();
- await generalHelper.init();
-}
-await wholeInit();
+await youtubeHelper.setInvidiousCookies();
+await translateHelper.setSimplyTranslateCookies();
+await twitterHelper.setNitterCookies();
+await wikipediaHelper.setWikilessCookies();
+await searchHelper.setSearxCookies();
+await searchHelper.setSearxngCookies();
+await redditHelper.setLibredditCookies();
+await redditHelper.setTedditCookies();
+await tiktokHelper.setProxiTokCookies();
+
window.close() \ No newline at end of file
diff --git a/src/pages/options/general/general.html b/src/pages/options/general/general.html
index cb0c11ff..8239f7c8 100644
--- a/src/pages/options/general/general.html
+++ b/src/pages/options/general/general.html
@@ -30,7 +30,7 @@
<ellipse cx="1682" cy="502" rx="88" ry="424"></ellipse>
</svg><a href="../medium/medium.html" data-localise="__MSG_medium__">Medium</a>
</div>
- <div class="title"> <img src="../../../assets/images/peertube-icon.svg"><a href="../peertube/peertube.html" data-localise="__MSG_peertube__">Peertube</a></div>
+ <div class="title"> <img src="../../../assets/images/peertube-icon.svg"><a href="../peertube/peertube.html" data-localise="__MSG_peertube__">PeerTube</a></div>
<div class="title"> <img src="../../../assets/images/lbry-icon.png"><a href="../lbry/lbry.html" data-localise="__MSG_lbry__">LBRY/Odysee</a></div>
<div class="title">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor">
@@ -180,7 +180,7 @@
<input id="medium" type="checkbox">
</div>
<div>
- <div> <img src="../../../assets/images/peertube-icon.svg">Peertube</div>
+ <div> <img src="../../../assets/images/peertube-icon.svg">PeerTube</div>
<input id="peertube" type="checkbox">
</div>
<div>
diff --git a/src/pages/options/general/general.js b/src/pages/options/general/general.js
index c8a600ce..f2690209 100644
--- a/src/pages/options/general/general.js
+++ b/src/pages/options/general/general.js
@@ -4,7 +4,21 @@ window.browser = window.browser || window.chrome;
import utils from "../../../assets/javascripts/helpers/utils.js";
import generalHelper from "../../../assets/javascripts/helpers/general.js";
-
+import youtubeHelper from "../../../assets/javascripts/helpers/youtube/youtube.js";
+import youtubeMusicHelper from "../../../assets/javascripts/helpers/youtubeMusic.js";
+import twitterHelper from "../../../assets/javascripts/helpers/twitter.js";
+import instagramHelper from "../../../assets/javascripts/helpers/instagram.js";
+import redditHelper from "../../../assets/javascripts/helpers/reddit.js";
+import searchHelper from "../../../assets/javascripts/helpers/search.js";
+import translateHelper from "../../../assets/javascripts/helpers/translate/translate.js";
+import mapsHelper from "../../../assets/javascripts/helpers/maps.js";
+import wikipediaHelper from "../../../assets/javascripts/helpers/wikipedia.js";
+import mediumHelper from "../../../assets/javascripts/helpers/medium.js";
+import imgurHelper from "../../../assets/javascripts/helpers/imgur.js";
+import tiktokHelper from "../../../assets/javascripts/helpers/tiktok.js";
+import sendTargetsHelper from "../../../assets/javascripts/helpers/sendTargets.js";
+import peertubeHelper from "../../../assets/javascripts/helpers/peertube.js";
+import lbryHelper from "../../../assets/javascripts/helpers/lbry.js";
let updateInstancesElement = document.getElementById("update-instances");
updateInstancesElement.addEventListener("click", () => {
@@ -68,21 +82,41 @@ function importError() {
let resetSettingsElement = document.getElementById("reset-settings");
resetSettingsElement.addEventListener("click",
- () => {
+ async () => {
console.log("reset");
- browser.storage.local.clear();
- location.reload();
+ 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) })
+ 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();
+ })
}
);
let autoRedirectElement = document.getElementById("auto-redirect")
autoRedirectElement.addEventListener("change",
- event => generalHelper.setAutoRedirect(event.target.checked)
+ event => browser.storage.local.set({ autoRedirect: event.target.checked })
);
+
let themeElement = document.getElementById("theme");
themeElement.addEventListener("change", event => {
const value = event.target.options[theme.selectedIndex].value;
- generalHelper.setTheme(value);
+ browser.storage.local.set({ theme: value });
})
let nameCustomInstanceInput = document.getElementById("exceptions-custom-instance");
@@ -99,84 +133,94 @@ for (const frontend of generalHelper.allPopupFrontends)
var index = popupFrontends.indexOf(frontend);
if (index !== -1) popupFrontends.splice(index, 1);
}
- generalHelper.setPopupFrontends(popupFrontends);
+ browser.storage.local.set({ popupFrontends })
}
)
-generalHelper.init().then(() => {
- autoRedirectElement.checked = generalHelper.getAutoRedirect();
- themeElement.value = generalHelper.getTheme();
- instanceTypeElement.addEventListener("change",
- event => {
- instanceType = event.target.options[instanceTypeElement.selectedIndex].value
- if (instanceType == 'url') {
- nameCustomInstanceInput.setAttribute("type", "url");
- nameCustomInstanceInput.setAttribute("placeholder", "https://www.google.com");
- }
- else if (instanceType == 'regex') {
- nameCustomInstanceInput.setAttribute("type", "text");
- nameCustomInstanceInput.setAttribute("placeholder", "https?:\/\/(www\.|)youtube\.com\/");
+
+browser.storage.local.get(
+ [
+ 'theme',
+ 'autoRedirect',
+ 'exceptions'
+ ],
+ r => {
+ autoRedirectElement.checked = r.autoRedirect;
+ themeElement.value = r.theme;
+ instanceTypeElement.addEventListener("change",
+ event => {
+ instanceType = event.target.options[instanceTypeElement.selectedIndex].value
+ if (instanceType == 'url') {
+ nameCustomInstanceInput.setAttribute("type", "url");
+ nameCustomInstanceInput.setAttribute("placeholder", "https://www.google.com");
+ }
+ else if (instanceType == 'regex') {
+ nameCustomInstanceInput.setAttribute("type", "text");
+ nameCustomInstanceInput.setAttribute("placeholder", "https?:\/\/(www\.|)youtube\.com\/");
+ }
}
- }
- )
- let exceptionsCustomInstances = generalHelper.getExceptions();
- function calcExceptionsCustomInstances() {
- document.getElementById("exceptions-custom-checklist").innerHTML =
- [...exceptionsCustomInstances.url, ...exceptionsCustomInstances.regex].map(
- (x) => `<div>
- ${x}
- <button class="add" id="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');
+ )
+ let exceptionsCustomInstances = r.exceptions;
+ function calcExceptionsCustomInstances() {
+ document.getElementById("exceptions-custom-checklist").innerHTML =
+ [...exceptionsCustomInstances.url, ...exceptionsCustomInstances.regex].map(
+ (x) => `<div>
+ ${x}
+ <button class="add" id="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 x of [...exceptionsCustomInstances.url, ...exceptionsCustomInstances.regex]) {
- document.getElementById(`clear-${x}`).addEventListener("click",
- () => {
- console.log(x);
- let index;
- index = exceptionsCustomInstances.url.indexOf(x);
- if (index > -1)
- exceptionsCustomInstances.url.splice(index, 1);
- else {
- index = exceptionsCustomInstances.regex.indexOf(x);
+ for (const x of [...exceptionsCustomInstances.url, ...exceptionsCustomInstances.regex]) {
+ document.getElementById(`clear-${x}`).addEventListener("click",
+ () => {
+ console.log(x);
+ let index;
+ index = exceptionsCustomInstances.url.indexOf(x);
if (index > -1)
- exceptionsCustomInstances.regex.splice(index, 1);
- }
- generalHelper.setExceptions(exceptionsCustomInstances);
- calcExceptionsCustomInstances();
- });
- }
- }
- calcExceptionsCustomInstances();
- document.getElementById("custom-exceptions-instance-form").addEventListener("submit", (event) => {
- event.preventDefault();
-
- let val
- if (instanceType == 'url') {
- if (nameCustomInstanceInput.validity.valid) {
- let url = new URL(nameCustomInstanceInput.value);
- val = `${url.protocol}//${url.host}`
- if (!exceptionsCustomInstances.url.includes(val)) exceptionsCustomInstances.url.push(val)
+ exceptionsCustomInstances.url.splice(index, 1);
+ else {
+ index = exceptionsCustomInstances.regex.indexOf(x);
+ if (index > -1)
+ exceptionsCustomInstances.regex.splice(index, 1);
+ }
+ browser.storage.local.set({ exceptions: exceptionsCustomInstances })
+ calcExceptionsCustomInstances();
+ });
}
- } else if (instanceType == 'regex') {
- val = nameCustomInstanceInput.value
- if (val.trim() != '' && !exceptionsCustomInstances.regex.includes(val)) exceptionsCustomInstances.regex.push(val)
- }
- if (val) {
- generalHelper.setExceptions(exceptionsCustomInstances);
- console.log("exceptionsCustomInstances", exceptionsCustomInstances)
- nameCustomInstanceInput.value = '';
}
calcExceptionsCustomInstances();
- })
+ document.getElementById("custom-exceptions-instance-form").addEventListener("submit", (event) => {
+ event.preventDefault();
- popupFrontends = generalHelper.getPopupFrontends();
- for (const frontend of generalHelper.allPopupFrontends)
- document.getElementById(frontend).checked = popupFrontends.includes(frontend);
-}) \ No newline at end of file
+ let val
+ if (instanceType == 'url') {
+ if (nameCustomInstanceInput.validity.valid) {
+ let url = new URL(nameCustomInstanceInput.value);
+ val = `${url.protocol}//${url.host}`
+ if (!exceptionsCustomInstances.url.includes(val)) exceptionsCustomInstances.url.push(val)
+ }
+ } else if (instanceType == 'regex') {
+ val = nameCustomInstanceInput.value
+ if (val.trim() != '' && !exceptionsCustomInstances.regex.includes(val)) exceptionsCustomInstances.regex.push(val)
+ }
+ if (val) {
+ browser.storage.local.set({ exceptions: exceptionsCustomInstances })
+ nameCustomInstanceInput.value = '';
+ }
+ calcExceptionsCustomInstances();
+ })
+
+ browser.storage.local.get('popupFrontends',
+ r => {
+ popupFrontends = r.popupFrontends;
+ for (const frontend of generalHelper.allPopupFrontends)
+ document.getElementById(frontend).checked = popupFrontends.includes(frontend);
+ }
+ )
+ })
diff --git a/src/pages/options/general/general.pug b/src/pages/options/general/general.pug
index 6a3b1370..0cef8025 100644
--- a/src/pages/options/general/general.pug
+++ b/src/pages/options/general/general.pug
@@ -151,7 +151,7 @@ body.option(dir="auto")
div
div
img(src="../../../assets/images/peertube-icon.svg")
- |Peertube
+ |PeerTube
input#peertube(type="checkbox")
div
diff --git a/src/pages/options/imgur/imgur.html b/src/pages/options/imgur/imgur.html
index d537acff..6194fbb3 100644
--- a/src/pages/options/imgur/imgur.html
+++ b/src/pages/options/imgur/imgur.html
@@ -31,7 +31,7 @@
<ellipse cx="1682" cy="502" rx="88" ry="424"></ellipse>
</svg><a href="../medium/medium.html" data-localise="__MSG_medium__">Medium</a>
</div>
- <div class="title"> <img src="../../../assets/images/peertube-icon.svg"><a href="../peertube/peertube.html" data-localise="__MSG_peertube__">Peertube</a></div>
+ <div class="title"> <img src="../../../assets/images/peertube-icon.svg"><a href="../peertube/peertube.html" data-localise="__MSG_peertube__">PeerTube</a></div>
<div class="title"> <img src="../../../assets/images/lbry-icon.png"><a href="../lbry/lbry.html" data-localise="__MSG_lbry__">LBRY/Odysee</a></div>
<div class="title">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor">
diff --git a/src/pages/options/instagram/instagram.html b/src/pages/options/instagram/instagram.html
index b03040b7..dfb58722 100644
--- a/src/pages/options/instagram/instagram.html
+++ b/src/pages/options/instagram/instagram.html
@@ -31,7 +31,7 @@
<ellipse cx="1682" cy="502" rx="88" ry="424"></ellipse>
</svg><a href="../medium/medium.html" data-localise="__MSG_medium__">Medium</a>
</div>
- <div class="title"> <img src="../../../assets/images/peertube-icon.svg"><a href="../peertube/peertube.html" data-localise="__MSG_peertube__">Peertube</a></div>
+ <div class="title"> <img src="../../../assets/images/peertube-icon.svg"><a href="../peertube/peertube.html" data-localise="__MSG_peertube__">PeerTube</a></div>
<div class="title"> <img src="../../../assets/images/lbry-icon.png"><a href="../lbry/lbry.html" data-localise="__MSG_lbry__">LBRY/Odysee</a></div>
<div class="title">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor">
diff --git a/src/pages/options/lbry/lbry.html b/src/pages/options/lbry/lbry.html
index 4e3c1316..3802a149 100644
--- a/src/pages/options/lbry/lbry.html
+++ b/src/pages/options/lbry/lbry.html
@@ -31,7 +31,7 @@
<ellipse cx="1682" cy="502" rx="88" ry="424"></ellipse>
</svg><a href="../medium/medium.html" data-localise="__MSG_medium__">Medium</a>
</div>
- <div class="title"> <img src="../../../assets/images/peertube-icon.svg"><a href="../peertube/peertube.html" data-localise="__MSG_peertube__">Peertube</a></div>
+ <div class="title"> <img src="../../../assets/images/peertube-icon.svg"><a href="../peertube/peertube.html" data-localise="__MSG_peertube__">PeerTube</a></div>
<div class="title"> <img src="../../../assets/images/lbry-icon.png"><a class="selected" href="../lbry/lbry.html" data-localise="__MSG_lbry__">LBRY/Odysee</a></div>
<div class="title">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor">
diff --git a/src/pages/options/maps/maps.html b/src/pages/options/maps/maps.html
index d7961b31..af7d0729 100644
--- a/src/pages/options/maps/maps.html
+++ b/src/pages/options/maps/maps.html
@@ -31,7 +31,7 @@
<ellipse cx="1682" cy="502" rx="88" ry="424"></ellipse>
</svg><a href="../medium/medium.html" data-localise="__MSG_medium__">Medium</a>
</div>
- <div class="title"> <img src="../../../assets/images/peertube-icon.svg"><a href="../peertube/peertube.html" data-localise="__MSG_peertube__">Peertube</a></div>
+ <div class="title"> <img src="../../../assets/images/peertube-icon.svg"><a href="../peertube/peertube.html" data-localise="__MSG_peertube__">PeerTube</a></div>
<div class="title"> <img src="../../../assets/images/lbry-icon.png"><a href="../lbry/lbry.html" data-localise="__MSG_lbry__">LBRY/Odysee</a></div>
<div class="title">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor">
diff --git a/src/pages/options/medium/medium.html b/src/pages/options/medium/medium.html
index 136081d7..87aff725 100644
--- a/src/pages/options/medium/medium.html
+++ b/src/pages/options/medium/medium.html
@@ -31,7 +31,7 @@
<ellipse cx="1682" cy="502" rx="88" ry="424"></ellipse>
</svg><a class="selected" href="../medium/medium.html" data-localise="__MSG_medium__">Medium</a>
</div>
- <div class="title"> <img src="../../../assets/images/peertube-icon.svg"><a href="../peertube/peertube.html" data-localise="__MSG_peertube__">Peertube</a></div>
+ <div class="title"> <img src="../../../assets/images/peertube-icon.svg"><a href="../peertube/peertube.html" data-localise="__MSG_peertube__">PeerTube</a></div>
<div class="title"> <img src="../../../assets/images/lbry-icon.png"><a href="../lbry/lbry.html" data-localise="__MSG_lbry__">LBRY/Odysee</a></div>
<div class="title">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor">
diff --git a/src/pages/options/peertube/peertube.html b/src/pages/options/peertube/peertube.html
index d5ded94c..1ddc26ac 100644
--- a/src/pages/options/peertube/peertube.html
+++ b/src/pages/options/peertube/peertube.html
@@ -31,7 +31,7 @@
<ellipse cx="1682" cy="502" rx="88" ry="424"></ellipse>
</svg><a href="../medium/medium.html" data-localise="__MSG_medium__">Medium</a>
</div>
- <div class="title"> <img src="../../../assets/images/peertube-icon.svg"><a class="selected" href="../peertube/peertube.html" data-localise="__MSG_peertube__">Peertube</a></div>
+ <div class="title"> <img src="../../../assets/images/peertube-icon.svg"><a class="selected" href="../peertube/peertube.html" data-localise="__MSG_peertube__">PeerTube</a></div>
<div class="title"> <img src="../../../assets/images/lbry-icon.png"><a href="../lbry/lbry.html" data-localise="__MSG_lbry__">LBRY/Odysee</a></div>
<div class="title">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor">
diff --git a/src/pages/options/reddit/reddit.html b/src/pages/options/reddit/reddit.html
index 876369f9..754314eb 100644
--- a/src/pages/options/reddit/reddit.html
+++ b/src/pages/options/reddit/reddit.html
@@ -31,7 +31,7 @@
<ellipse cx="1682" cy="502" rx="88" ry="424"></ellipse>
</svg><a href="../medium/medium.html" data-localise="__MSG_medium__">Medium</a>
</div>
- <div class="title"> <img src="../../../assets/images/peertube-icon.svg"><a href="../peertube/peertube.html" data-localise="__MSG_peertube__">Peertube</a></div>
+ <div class="title"> <img src="../../../assets/images/peertube-icon.svg"><a href="../peertube/peertube.html" data-localise="__MSG_peertube__">PeerTube</a></div>
<div class="title"> <img src="../../../assets/images/lbry-icon.png"><a href="../lbry/lbry.html" data-localise="__MSG_lbry__">LBRY/Odysee</a></div>
<div class="title">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor">
diff --git a/src/pages/options/search/search.html b/src/pages/options/search/search.html
index 46914d19..8b22e43a 100644
--- a/src/pages/options/search/search.html
+++ b/src/pages/options/search/search.html
@@ -31,7 +31,7 @@
<ellipse cx="1682" cy="502" rx="88" ry="424"></ellipse>
</svg><a href="../medium/medium.html" data-localise="__MSG_medium__">Medium</a>
</div>
- <div class="title"> <img src="../../../assets/images/peertube-icon.svg"><a href="../peertube/peertube.html" data-localise="__MSG_peertube__">Peertube</a></div>
+ <div class="title"> <img src="../../../assets/images/peertube-icon.svg"><a href="../peertube/peertube.html" data-localise="__MSG_peertube__">PeerTube</a></div>
<div class="title"> <img src="../../../assets/images/lbry-icon.png"><a href="../lbry/lbry.html" data-localise="__MSG_lbry__">LBRY/Odysee</a></div>
<div class="title">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor">
diff --git a/src/pages/options/sendTargets/sendTargets.html b/src/pages/options/sendTargets/sendTargets.html
index 7a684175..f372b3b0 100644
--- a/src/pages/options/sendTargets/sendTargets.html
+++ b/src/pages/options/sendTargets/sendTargets.html
@@ -31,7 +31,7 @@
<ellipse cx="1682" cy="502" rx="88" ry="424"></ellipse>
</svg><a href="../medium/medium.html" data-localise="__MSG_medium__">Medium</a>
</div>
- <div class="title"> <img src="../../../assets/images/peertube-icon.svg"><a href="../peertube/peertube.html" data-localise="__MSG_peertube__">Peertube</a></div>
+ <div class="title"> <img src="../../../assets/images/peertube-icon.svg"><a href="../peertube/peertube.html" data-localise="__MSG_peertube__">PeerTube</a></div>
<div class="title"> <img src="../../../assets/images/lbry-icon.png"><a href="../lbry/lbry.html" data-localise="__MSG_lbry__">LBRY/Odysee</a></div>
<div class="title">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor">
diff --git a/src/pages/options/tiktok/tiktok.html b/src/pages/options/tiktok/tiktok.html
index 9b5932fc..89a14ba6 100644
--- a/src/pages/options/tiktok/tiktok.html
+++ b/src/pages/options/tiktok/tiktok.html
@@ -31,7 +31,7 @@
<ellipse cx="1682" cy="502" rx="88" ry="424"></ellipse>
</svg><a href="../medium/medium.html" data-localise="__MSG_medium__">Medium</a>
</div>
- <div class="title"> <img src="../../../assets/images/peertube-icon.svg"><a href="../peertube/peertube.html" data-localise="__MSG_peertube__">Peertube</a></div>
+ <div class="title"> <img src="../../../assets/images/peertube-icon.svg"><a href="../peertube/peertube.html" data-localise="__MSG_peertube__">PeerTube</a></div>
<div class="title"> <img src="../../../assets/images/lbry-icon.png"><a href="../lbry/lbry.html" data-localise="__MSG_lbry__">LBRY/Odysee</a></div>
<div class="title">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor">
diff --git a/src/pages/options/translate/translate.html b/src/pages/options/translate/translate.html
index 249ce0b1..c62ea5a6 100644
--- a/src/pages/options/translate/translate.html
+++ b/src/pages/options/translate/translate.html
@@ -31,7 +31,7 @@
<ellipse cx="1682" cy="502" rx="88" ry="424"></ellipse>
</svg><a href="../medium/medium.html" data-localise="__MSG_medium__">Medium</a>
</div>
- <div class="title"> <img src="../../../assets/images/peertube-icon.svg"><a href="../peertube/peertube.html" data-localise="__MSG_peertube__">Peertube</a></div>
+ <div class="title"> <img src="../../../assets/images/peertube-icon.svg"><a href="../peertube/peertube.html" data-localise="__MSG_peertube__">PeerTube</a></div>
<div class="title"> <img src="../../../assets/images/lbry-icon.png"><a href="../lbry/lbry.html" data-localise="__MSG_lbry__">LBRY/Odysee</a></div>
<div class="title">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor">
diff --git a/src/pages/options/twitter/twitter.html b/src/pages/options/twitter/twitter.html
index 95e0a0bf..2a477e60 100644
--- a/src/pages/options/twitter/twitter.html
+++ b/src/pages/options/twitter/twitter.html
@@ -31,7 +31,7 @@
<ellipse cx="1682" cy="502" rx="88" ry="424"></ellipse>
</svg><a href="../medium/medium.html" data-localise="__MSG_medium__">Medium</a>
</div>
- <div class="title"> <img src="../../../assets/images/peertube-icon.svg"><a href="../peertube/peertube.html" data-localise="__MSG_peertube__">Peertube</a></div>
+ <div class="title"> <img src="../../../assets/images/peertube-icon.svg"><a href="../peertube/peertube.html" data-localise="__MSG_peertube__">PeerTube</a></div>
<div class="title"> <img src="../../../assets/images/lbry-icon.png"><a href="../lbry/lbry.html" data-localise="__MSG_lbry__">LBRY/Odysee</a></div>
<div class="title">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor">
diff --git a/src/pages/options/wikipedia/wikipedia.html b/src/pages/options/wikipedia/wikipedia.html
index c8475f02..ba22bc31 100644
--- a/src/pages/options/wikipedia/wikipedia.html
+++ b/src/pages/options/wikipedia/wikipedia.html
@@ -31,7 +31,7 @@
<ellipse cx="1682" cy="502" rx="88" ry="424"></ellipse>
</svg><a href="../medium/medium.html" data-localise="__MSG_medium__">Medium</a>
</div>
- <div class="title"> <img src="../../../assets/images/peertube-icon.svg"><a href="../peertube/peertube.html" data-localise="__MSG_peertube__">Peertube</a></div>
+ <div class="title"> <img src="../../../assets/images/peertube-icon.svg"><a href="../peertube/peertube.html" data-localise="__MSG_peertube__">PeerTube</a></div>
<div class="title"> <img src="../../../assets/images/lbry-icon.png"><a href="../lbry/lbry.html" data-localise="__MSG_lbry__">LBRY/Odysee</a></div>
<div class="title">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor">
diff --git a/src/pages/options/youtube/youtube.html b/src/pages/options/youtube/youtube.html
index 20d13bd3..6a2036a1 100644
--- a/src/pages/options/youtube/youtube.html
+++ b/src/pages/options/youtube/youtube.html
@@ -31,7 +31,7 @@
<ellipse cx="1682" cy="502" rx="88" ry="424"></ellipse>
</svg><a href="../medium/medium.html" data-localise="__MSG_medium__">Medium</a>
</div>
- <div class="title"> <img src="../../../assets/images/peertube-icon.svg"><a href="../peertube/peertube.html" data-localise="__MSG_peertube__">Peertube</a></div>
+ <div class="title"> <img src="../../../assets/images/peertube-icon.svg"><a href="../peertube/peertube.html" data-localise="__MSG_peertube__">PeerTube</a></div>
<div class="title"> <img src="../../../assets/images/lbry-icon.png"><a href="../lbry/lbry.html" data-localise="__MSG_lbry__">LBRY/Odysee</a></div>
<div class="title">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor">
diff --git a/src/pages/options/youtubeMusic/youtubeMusic.html b/src/pages/options/youtubeMusic/youtubeMusic.html
index 9910630e..845ec44a 100644
--- a/src/pages/options/youtubeMusic/youtubeMusic.html
+++ b/src/pages/options/youtubeMusic/youtubeMusic.html
@@ -31,7 +31,7 @@
<ellipse cx="1682" cy="502" rx="88" ry="424"></ellipse>
</svg><a href="../medium/medium.html" data-localise="__MSG_medium__">Medium</a>
</div>
- <div class="title"> <img src="../../../assets/images/peertube-icon.svg"><a href="../peertube/peertube.html" data-localise="__MSG_peertube__">Peertube</a></div>
+ <div class="title"> <img src="../../../assets/images/peertube-icon.svg"><a href="../peertube/peertube.html" data-localise="__MSG_peertube__">PeerTube</a></div>
<div class="title"> <img src="../../../assets/images/lbry-icon.png"><a href="../lbry/lbry.html" data-localise="__MSG_lbry__">LBRY/Odysee</a></div>
<div class="title">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor">
diff --git a/src/pages/popup/popup.html b/src/pages/popup/popup.html
index 48f6f116..ffc1c864 100644
--- a/src/pages/popup/popup.html
+++ b/src/pages/popup/popup.html
@@ -35,7 +35,7 @@
<h4>Reddit</h4></a>
<input id="disable-reddit" type="checkbox">
</div>
- <div class="some-block" id="wikipedia"><a class="title" href="https://wikipedia.com"><img src="../../assets/images/wikipedia-icon.png">
+ <div class="some-block" id="wikipedia"><a class="title" href="https://wikipedia.com"><img src="../../assets/images/wikipedia-icon.svg">
<h4>Wikipedia</h4></a>
<input id="disable-wikipedia" type="checkbox">
</div>
@@ -48,15 +48,15 @@
<h4>Medium</h4></a>
<input id="disable-medium" type="checkbox">
</div>
- <div class="some-block" id="peertube"><a class="title" href="https://peertube.com"><img src="../../assets/images/peertube-icon.png">
- <h4>Peertube</h4></a>
+ <div class="some-block" id="peertube"><a class="title" href="https://peertube.com"><img src="../../assets/images/peertube-icon.svg">
+ <h4>PeerTube</h4></a>
<input id="disable-peertube" type="checkbox">
</div>
<div class="some-block" id="lbry"><a class="title" href="https://lbry.com"><img src="../../assets/images/lbry-icon.png">
<h4>LBRY</h4></a>
<input id="disable-lbry" type="checkbox">
</div>
- <div class="some-block" id="search"><a class="title" href="https://libredirect.invalid">
+ <div class="some-block" id="search"><a class="title" href="https://search.libredirect.invalid">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor">
<path d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"></path>
</svg>
@@ -77,34 +77,35 @@
<h4>Maps</h4></a>
<input id="disable-osm" type="checkbox">
</div>
- <div class="some-block" id="sendTargets"><a class="title" href="https://send.invalid">
+ <div class="some-block" id="sendTargets"><a class="title" href="https://send.libredirect.invalid">
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor">
<path d="M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zM14 13v4h-4v-4H7l5-5 5 5h-3z"></path>
</svg>
<h4>Send Files</h4></a>
<input id="disable-sendTargets" type="checkbox">
</div>
+ <hr>
<div class="some-block" id="change_instance_div"><a class="title button" id="change_instance">
+ <h4>Change Instance</h4>
<svg xmlns="http://www.w3.org/2000/svg" height="26px" viewBox="0 0 24 24" width="26px" fill="currentColor">
<path d="M12 4V1L8 5l4 4V6c3.31 0 6 2.69 6 6 0 1.01-.25 1.97-.7 2.8l1.46 1.46C19.54 15.03 20 13.57 20 12c0-4.42-3.58-8-8-8zm0 14c-3.31 0-6-2.69-6-6 0-1.01.25-1.97.7-2.8L5.24 7.74C4.46 8.97 4 10.43 4 12c0 4.42 3.58 8 8 8v3l4-4-4-4v3z"></path>
- </svg>
- <h4>Change Instance</h4></a></div>
- <div class="some-block"><a class="title button" id="more-options">
- <svg xmlns="http://www.w3.org/2000/svg" enable-background="new 0 0 24 24" height="26px" viewBox="0 0 24 24" width="26px" fill="currentColor">
- <path d="M19.14,12.94c0.04-0.3,0.06-0.61,0.06-0.94c0-0.32-0.02-0.64-0.07-0.94l2.03-1.58c0.18-0.14,0.23-0.41,0.12-0.61 l-1.92-3.32c-0.12-0.22-0.37-0.29-0.59-0.22l-2.39,0.96c-0.5-0.38-1.03-0.7-1.62-0.94L14.4,2.81c-0.04-0.24-0.24-0.41-0.48-0.41 h-3.84c-0.24,0-0.43,0.17-0.47,0.41L9.25,5.35C8.66,5.59,8.12,5.92,7.63,6.29L5.24,5.33c-0.22-0.08-0.47,0-0.59,0.22L2.74,8.87 C2.62,9.08,2.66,9.34,2.86,9.48l2.03,1.58C4.84,11.36,4.8,11.69,4.8,12s0.02,0.64,0.07,0.94l-2.03,1.58 c-0.18,0.14-0.23,0.41-0.12,0.61l1.92,3.32c0.12,0.22,0.37,0.29,0.59,0.22l2.39-0.96c0.5,0.38,1.03,0.7,1.62,0.94l0.36,2.54 c0.05,0.24,0.24,0.41,0.48,0.41h3.84c0.24,0,0.44-0.17,0.47-0.41l0.36-2.54c0.59-0.24,1.13-0.56,1.62-0.94l2.39,0.96 c0.22,0.08,0.47,0,0.59-0.22l1.92-3.32c0.12-0.22,0.07-0.47-0.12-0.61L19.14,12.94z M12,15.6c-1.98,0-3.6-1.62-3.6-3.6 s1.62-3.6,3.6-3.6s3.6,1.62,3.6,3.6S13.98,15.6,12,15.6z"></path>
- </svg>
- <h4>Settings</h4></a></div>
+ </svg></a></div>
<div class="some-block" id="copy_raw_div" title="Copy the original redirected link"> <a class="title button" id="copy_raw">
+ <h4>Copy Raw</h4>
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor">
<path d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"></path>
- </svg>
- <h4>Copy Raw</h4></a></div>
+ </svg></a></div>
<div class="some-block" id="unify_div" title="Unify cookies across all selected instances"><a class="title button" id="unify">
- <svg xmlns="http://www.w3.org/2000/svg" enable-background="new 0 0 24 24" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor">
- <rect fill="none" height="24" width="24"></rect>
- <path d="M18,2H9C7.9,2,7,2.9,7,4v12c0,1.1,0.9,2,2,2h9c1.1,0,2-0.9,2-2V4C20,2.9,19.1,2,18,2z M18,16H9V4h9V16z M3,15v-2h2v2H3z M3,9.5h2v2H3V9.5z M10,20h2v2h-2V20z M3,18.5v-2h2v2H3z M5,22c-1.1,0-2-0.9-2-2h2V22z M8.5,22h-2v-2h2V22z M13.5,22L13.5,22l0-2h2 v0C15.5,21.1,14.6,22,13.5,22z M5,6L5,6l0,2H3v0C3,6.9,3.9,6,5,6z"></path>
- </svg>
- <h4>Unify Settings</h4></a></div>
+ <h4>Unify Settings</h4>
+ <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor">
+ <path d="M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z"></path>
+ </svg></a></div>
+ <div class="some-block"><a class="title button" id="more-options">
+ <h4>Settings</h4>
+ <svg xmlns="http://www.w3.org/2000/svg" enable-background="new 0 0 24 24" height="26px" viewBox="0 0 24 24" width="26px" fill="currentColor">
+ <path d="M19.14,12.94c0.04-0.3,0.06-0.61,0.06-0.94c0-0.32-0.02-0.64-0.07-0.94l2.03-1.58c0.18-0.14,0.23-0.41,0.12-0.61 l-1.92-3.32c-0.12-0.22-0.37-0.29-0.59-0.22l-2.39,0.96c-0.5-0.38-1.03-0.7-1.62-0.94L14.4,2.81c-0.04-0.24-0.24-0.41-0.48-0.41 h-3.84c-0.24,0-0.43,0.17-0.47,0.41L9.25,5.35C8.66,5.59,8.12,5.92,7.63,6.29L5.24,5.33c-0.22-0.08-0.47,0-0.59,0.22L2.74,8.87 C2.62,9.08,2.66,9.34,2.86,9.48l2.03,1.58C4.84,11.36,4.8,11.69,4.8,12s0.02,0.64,0.07,0.94l-2.03,1.58 c-0.18,0.14-0.23,0.41-0.12,0.61l1.92,3.32c0.12,0.22,0.37,0.29,0.59,0.22l2.39-0.96c0.5,0.38,1.03,0.7,1.62,0.94l0.36,2.54 c0.05,0.24,0.24,0.41,0.48,0.41h3.84c0.24,0,0.44-0.17,0.47-0.41l0.36-2.54c0.59-0.24,1.13-0.56,1.62-0.94l2.39,0.96 c0.22,0.08,0.47,0,0.59-0.22l1.92-3.32c0.12-0.22,0.07-0.47-0.12-0.61L19.14,12.94z M12,15.6c-1.98,0-3.6-1.62-3.6-3.6 s1.62-3.6,3.6-3.6s3.6,1.62,3.6,3.6S13.98,15.6,12,15.6z"></path>
+ </svg></a></div>
+ <div class="space"></div>
<script type="module" src="../options/init.js"></script>
<script type="module" src="./popup.js"></script>
<script src="../../assets/javascripts/localise.js"></script>
diff --git a/src/pages/popup/popup.js b/src/pages/popup/popup.js
index b9c75791..824f178b 100644
--- a/src/pages/popup/popup.js
+++ b/src/pages/popup/popup.js
@@ -98,14 +98,14 @@ utils.unify(true).then(r => {
}
})
-
document.getElementById("more-options").addEventListener("click", () => browser.runtime.openOptionsPage());
-generalHelper.init().then(() => {
- let popupFrontends = generalHelper.getPopupFrontends();
- for (const frontend of generalHelper.allPopupFrontends)
- if (!popupFrontends.includes(frontend))
- document.getElementById(frontend).classList.add("hide")
- else
- document.getElementById(frontend).classList.remove("hide")
-}); \ No newline at end of file
+browser.storage.local.get(
+ 'popupFrontends',
+ r => {
+ for (const frontend of generalHelper.allPopupFrontends)
+ if (!r.popupFrontends.includes(frontend))
+ document.getElementById(frontend).classList.add("hide")
+ else
+ document.getElementById(frontend).classList.remove("hide")
+ }); \ No newline at end of file
diff --git a/src/pages/popup/popup.pug b/src/pages/popup/popup.pug
index 35234b15..5e067f3f 100644
--- a/src/pages/popup/popup.pug
+++ b/src/pages/popup/popup.pug
@@ -52,7 +52,7 @@ html(lang="en")
#wikipedia.some-block
a.title(href="https://wikipedia.com")
- img(src="../../assets/images/wikipedia-icon.png")
+ img(src="../../assets/images/wikipedia-icon.svg")
h4 Wikipedia
input#disable-wikipedia(type="checkbox")
@@ -64,8 +64,8 @@ html(lang="en")
#peertube.some-block
a.title(href="https://peertube.com")
- img(src="../../assets/images/peertube-icon.png")
- h4 Peertube
+ img(src="../../assets/images/peertube-icon.svg")
+ h4 PeerTube
input#disable-peertube(type="checkbox")
#lbry.some-block
@@ -75,7 +75,7 @@ html(lang="en")
input#disable-lbry(type="checkbox")
#search.some-block
- a.title(href="https://libredirect.invalid")
+ a.title(href="https://search.libredirect.invalid")
+search
h4 Search
input#disable-search(type="checkbox")
@@ -93,30 +93,34 @@ html(lang="en")
input#disable-osm(type="checkbox")
#sendTargets.some-block
- a.title(href="https://send.invalid")
+ a.title(href="https://send.libredirect.invalid")
+send
h4 Send Files
input#disable-sendTargets(type="checkbox")
+ hr
+
#change_instance_div.some-block
a#change_instance.title.button
- +change_instance
h4 Change Instance
-
- .some-block
- a#more-options.title.button
- +settings
- h4 Settings
+ +change_instance
#copy_raw_div.some-block(title="Copy the original redirected link")
a#copy_raw.title.button
- +copy_raw
h4 Copy Raw
+ +copy_raw
#unify_div.some-block(title="Unify cookies across all selected instances")
a#unify.title.button
- +unify
h4 Unify Settings
+ +unify
+
+ .some-block
+ a#more-options.title.button
+ h4 Settings
+ +settings
+
+ .space
script(type="module" src="../options/init.js")
script(type="module" src="./popup.js")
diff --git a/src/pages/popup/style.css b/src/pages/popup/style.css
index 4cc56145..8136237a 100644
--- a/src/pages/popup/style.css
+++ b/src/pages/popup/style.css
@@ -1,5 +1,5 @@
body {
- width: 240px;
+ width: 230px;
min-height: auto;
}
@@ -9,4 +9,15 @@ html, body {
.hide {
display: none !important;
+}
+
+.button {
+ display: flex;
+ margin: 0 auto;
+ justify-content: space-between;
+ width: 100%;
+}
+
+.space {
+ height: 10px;
} \ No newline at end of file
diff --git a/src/pages/widgets/icons.pug b/src/pages/widgets/icons.pug
index 4ef8d6b2..60186693 100644
--- a/src/pages/widgets/icons.pug
+++ b/src/pages/widgets/icons.pug
@@ -39,6 +39,5 @@ mixin general
mixin unify
- svg(xmlns="http://www.w3.org/2000/svg" enable-background="new 0 0 24 24" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor")
- rect(fill="none" height="24" width="24")
- path(d="M18,2H9C7.9,2,7,2.9,7,4v12c0,1.1,0.9,2,2,2h9c1.1,0,2-0.9,2-2V4C20,2.9,19.1,2,18,2z M18,16H9V4h9V16z M3,15v-2h2v2H3z M3,9.5h2v2H3V9.5z M10,20h2v2h-2V20z M3,18.5v-2h2v2H3z M5,22c-1.1,0-2-0.9-2-2h2V22z M8.5,22h-2v-2h2V22z M13.5,22L13.5,22l0-2h2 v0C15.5,21.1,14.6,22,13.5,22z M5,6L5,6l0,2H3v0C3,6.9,3.9,6,5,6z") \ No newline at end of file
+ svg(xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor")
+ path(d="M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z") \ No newline at end of file
diff --git a/src/pages/widgets/links.pug b/src/pages/widgets/links.pug
index 4d6fdd74..97601966 100644
--- a/src/pages/widgets/links.pug
+++ b/src/pages/widgets/links.pug
@@ -44,7 +44,7 @@ mixin links(service)
.title
img(src="../../../assets/images/peertube-icon.svg")
- a(href="../peertube/peertube.html" data-localise="__MSG_peertube__" class=service == "peertube" ? "selected" : "") Peertube
+ a(href="../peertube/peertube.html" data-localise="__MSG_peertube__" class=service == "peertube" ? "selected" : "") PeerTube
.title
img(src="../../../assets/images/lbry-icon.png")