diff options
Diffstat (limited to 'src/assets')
-rw-r--r-- | src/assets/javascripts/helpers/general.js | 126 | ||||
-rw-r--r-- | src/assets/javascripts/helpers/imgur.js | 51 | ||||
-rw-r--r-- | src/assets/javascripts/helpers/instagram.js | 21 | ||||
-rw-r--r-- | src/assets/javascripts/helpers/lbry.js | 41 | ||||
-rw-r--r-- | src/assets/javascripts/helpers/maps.js | 359 | ||||
-rw-r--r-- | src/assets/javascripts/helpers/medium.js | 77 | ||||
-rw-r--r-- | src/assets/javascripts/helpers/peertube.js | 146 | ||||
-rw-r--r-- | src/assets/javascripts/helpers/reddit.js | 244 | ||||
-rw-r--r-- | src/assets/javascripts/helpers/search.js | 355 | ||||
-rw-r--r-- | src/assets/javascripts/helpers/sendTargets.js | 165 | ||||
-rw-r--r-- | src/assets/javascripts/helpers/tiktok.js | 71 | ||||
-rw-r--r-- | src/assets/javascripts/helpers/translate/translate.js | 116 | ||||
-rw-r--r-- | src/assets/javascripts/helpers/twitter.js | 117 | ||||
-rw-r--r-- | src/assets/javascripts/helpers/utils.js | 82 | ||||
-rw-r--r-- | src/assets/javascripts/helpers/wikipedia.js | 122 | ||||
-rw-r--r-- | src/assets/javascripts/helpers/youtube/youtube.js | 41 |
16 files changed, 975 insertions, 1159 deletions
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, - - rimgoNormalRedirectsChecks: rimgoNormalRedirectsChecks, - rimgoNormalCustomRedirects: [], - - rimgoTorRedirectsChecks: [...redirects.rimgo.tor], - rimgoTorCustomRedirects: [], - - rimgoI2pRedirectsChecks: [...redirects.rimgo.i2p], - rimgoI2pCustomRedirects: [], +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: [], + + rimgoTorRedirectsChecks: [...redirects.rimgo.tor], + rimgoTorCustomRedirects: [], + + 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; - - i = librarianNormalRedirectsChecks.indexOf(instance); - if (i > -1) librarianNormalRedirectsChecks.splice(i, 1); - } - await browser.storage.local.set({ - disableLbryTargets: true, - lbryTargetsRedirects: { - 'librarian': redirects.librarian - }, +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 + }, - 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 = []; - -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", - }; - - 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]}`, - ]); +function redirect(url, initiator) { + return new Promise( + resolve => { + browser.storage.local.get( + [ + "disableMaps", + "mapsFrontend", + + "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]; + + 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 (r.disableMaps) { resolve(); return; } + if (initiator && initiator.host === "earth.google.com") { resolve(); return; } + if (!url.href.match(targets)) { resolve(); return; } + + 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 = {}; + + 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 (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.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"); + + 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 (r.mapsFrontend == 'osm') { resolve(`${randomInstance}/export/embed.html?${prefsEncoded}`); return; } + + 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 + + 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 org; addressToLatLng(orgVal, a => org = a); + let dest; addressToLatLng(destVal, a => dest = a); + prefs.route = `${org};${dest}`; + + 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"); + + let [, mlat, mlon] = url.pathname.match(dataLatLngRegex); + + 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"); + + const [mlat, mlon] = url.searchParams.get("ll").split(","); + + 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(","); + + 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 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; } } - } else - console.info("Error: Status is " + xmlhttp.status); + } + + 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; } } - }; - 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; - - let randomInstance; - if (frontend == 'osm') randomInstance = utils.getRandomInstance(redirects.osm.normal); - if (frontend == 'facil') randomInstance = utils.getRandomInstance([...facilNormalRedirectsChecks, ...facilNormalCustomRedirects]); - - 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 (lat && lon && zoom) { - if (frontend == 'osm') mapCentre = `#map=${zoom}/${lat}/${lon}`; - if (frontend == 'facil') mapCentre = `#${zoom}/${lat}/${lon}`; - } - - 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"); - - 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. - - 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}`; - - if (frontend == 'facil') return `${randomInstance}/#q=${query}`; - - } 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 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 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]}`; - - } 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); - - if (frontend == 'osm') return `${randomInstance}/search?query=${mlat}%2C${mlon}`; - if (frontend == 'facil') return `${randomInstance}/#q=${mlat}%2C${mlon}`; - - } 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(","); - - 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"); - - 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"); - - 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(); - 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` } 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, - - scribeNormalRedirectsChecks: scribeNormalRedirectsChecks, - scribeNormalCustomRedirects: [], - - scribeTorRedirectsChecks: [...redirects.scribe.tor], - scribeTorCustomRedirects: [], - - mediumProtocol: "normal", - }) + 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: [], + + scribeTorRedirectsChecks: [...redirects.scribe.tor], + scribeTorCustomRedirects: [], + + 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; - - if (type != "main_frame") return null; - - 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); + "disablePeertubeTargets", - if (url.host == 'search.joinpeertube.org') return randomInstance; + "peertubeRedirects", - return `${randomInstance}/${url.host}${url.pathname}${url.search}`; -} + "simpleertubeNormalRedirectsChecks", + "simpleertubeNormalCustomRedirects", -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); - } - await browser.storage.local.set({ - peerTubeTargets: ['https://search.joinpeertube.org', ...dataJson.peertube], - disablePeertubeTargets: true, - peertubeRedirects: redirects, + "simpleertubeTorRedirectsChecks", + "simpleertubeTorCustomRedirects", - simpleertubeNormalRedirectsChecks: simpleertubeNormalRedirectsChecks, - simpleertubeNormalCustomRedirects: [], + "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; } - simpleertubeTorRedirectsChecks: [...redirects.simpleertube.tor], - simpleertubeTorCustomRedirects: [], + 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; } - peertubeTargetsProtocol: "normal", + resolve(`${randomInstance}/${url.host}${url.pathname}${url.search}`); + } + ) + }) +} +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: [], + + simpleertubeTorRedirectsChecks: [...redirects.simpleertube.tor], + simpleertubeTorCustomRedirects: [], + + 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); +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); + + const b = tedditNormalRedirectsChecks.indexOf(instance); + if (b > -1) tedditNormalRedirectsChecks.splice(b, 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 }) - - for (const item of tedditTorRedirectsChecks) - if (!redirects.teddit.normal.includes(item)) { - var index = tedditTorRedirectsChecks.indexOf(item); - if (index !== -1) tedditTorRedirectsChecks.splice(index, 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; - - 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, + 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 = 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 }) - - 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 }) - - 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 }) +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); + + const b = searxngNormalRedirectsChecks.indexOf(instance); + if (b > -1) searxngNormalRedirectsChecks.splice(b, 1); + + 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; - - 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 = 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', +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; + + i = whoogleNormalRedirectsChecks.indexOf(instance); + if (i > -1) whoogleNormalRedirectsChecks.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', - 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 randomInstance; -} + return new Promise(resolve => { + browser.storage.local.get( + [ + "disableSendTarget", + "sendTargetsRedirects", -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, + "sendNormalRedirectsChecks", + "sendNormalCustomRedirects", - sendNormalRedirectsChecks: sendNormalRedirectsChecks, - sendNormalCustomRedirects: [], + "sendTorRedirectsChecks", + "sendTorCustomRedirects", - sendTorRedirectsChecks: [...redirects.send.tor], - sendTorCustomRedirects: [], + "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; } - sendTargetsProtocol: "normal", - }) - }) + 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; } + + let randomInstance = utils.getRandomInstance(instancesList); + resolve(randomInstance); + } + ) }) } -async function init() { - browser.storage.local.get( - [ - "disableSendTarget", - "sendTargetsRedirects", - - "sendNormalRedirectsChecks", - "sendNormalCustomRedirects", - - "sendTorRedirectsChecks", - "sendTorCustomRedirects", - - "sendTargetsProtocol" - ], - r => { - disable = r.disableSendTarget; - protocol = r.sendTargetsProtocol; - redirects = r.sendTargetsRedirects; - - sendNormalRedirectsChecks = r.sendNormalRedirectsChecks; - sendNormalCustomRedirects = r.sendNormalCustomRedirects; - - sendTorRedirectsChecks = r.sendTorRedirectsChecks; - sendTorCustomRedirects = r.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, + + sendNormalRedirectsChecks: sendNormalRedirectsChecks, + sendNormalCustomRedirects: [], + + sendTorRedirectsChecks: [...redirects.send.tor], + 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); - - const b = lingvaNormalRedirectsChecks.indexOf(instance); - if (b > -1) lingvaNormalRedirectsChecks.splice(b, 1); - } - browser.storage.local.set({ - translateDisable: false, - translateFrontend: "simplyTranslate", - translateProtocol: 'normal', - translateRedirects: redirects, - - simplyTranslateNormalRedirectsChecks: simplyTranslateNormalRedirectsChecks, - simplyTranslateNormalCustomRedirects: [], - simplyTranslateTorRedirectsChecks: [...redirects.simplyTranslate.tor], - simplyTranslateTorCustomRedirects: [], - - lingvaNormalRedirectsChecks: lingvaNormalRedirectsChecks, - lingvaNormalCustomRedirects: [], - lingvaTorRedirectsChecks: [...redirects.lingva.tor], - lingvaTorCustomRedirects: [], + 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); + } + await browser.storage.local.set({ + translateDisable: false, + translateFrontend: "simplyTranslate", + translateProtocol: 'normal', + translateRedirects: redirects, + + simplyTranslateNormalRedirectsChecks: simplyTranslateNormalRedirectsChecks, + simplyTranslateNormalCustomRedirects: [], + simplyTranslateTorRedirectsChecks: [...redirects.simplyTranslate.tor], + simplyTranslateTorCustomRedirects: [], + + 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", - - nitterNormalRedirectsChecks, - nitterNormalCustomRedirects: [], - - nitterTorRedirectsChecks: [...redirects.nitter.tor], - nitterTorCustomRedirects: [], + 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: [], + + 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); - - tiktokHelper.setRedirects(instances.proxiTok); - - console.info("Successfully updated Instances"); - return true; - } - return false; +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); + + 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"); + 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) { |