aboutsummaryrefslogtreecommitdiffstats
path: root/src/assets
diff options
context:
space:
mode:
authorManeraKai <manerakai@protonmail.com>2022-04-13 21:35:09 +0300
committerManeraKai <manerakai@protonmail.com>2022-04-13 21:35:09 +0300
commitefc52079a11bad0bbcc7f3269b032f85127bc6ad (patch)
tree0a94743de5e77ba3e71646bebe746b49a7abd798 /src/assets
parentMerge branch 'master' of https://github.com/libredirect/libredirect (diff)
downloadlibredirect-efc52079a11bad0bbcc7f3269b032f85127bc6ad.zip
Added custom instance to FacilMap #139
Diffstat (limited to 'src/assets')
-rw-r--r--src/assets/javascripts/helpers/common.js3
-rw-r--r--src/assets/javascripts/helpers/imgur.js4
-rw-r--r--src/assets/javascripts/helpers/maps.js127
-rw-r--r--src/assets/javascripts/helpers/reddit.js3
4 files changed, 86 insertions, 51 deletions
diff --git a/src/assets/javascripts/helpers/common.js b/src/assets/javascripts/helpers/common.js
index 65810db4..6dd0e7fb 100644
--- a/src/assets/javascripts/helpers/common.js
+++ b/src/assets/javascripts/helpers/common.js
@@ -47,6 +47,7 @@ async function updateInstances() {
instagramHelper.setRedirects(instances.bibliogram);
redditHelper.setTedditRedirects(instances.teddit);
+ redditHelper.setLibredditRedirects(instances.libreddit);
translateHelper.setSimplyTranslateRedirects(instances.simplyTranslate);
translateHelper.setLingvaRedirects(instances.lingva)
@@ -128,7 +129,7 @@ function processDefaultCustomInstances(
for (let element of nameCheckListElement.getElementsByTagName('input')) {
if (element.className != 'toogle-all')
- nameProtocolElement.getElementsByClassName(element.className)[0].addEventListener("change", event => {
+ nameProtocolElement.getElementsByClassName(element.className)[0].addEventListener("change", event => {
if (event.target.checked)
nameDefaultRedirects.push(element.className)
else {
diff --git a/src/assets/javascripts/helpers/imgur.js b/src/assets/javascripts/helpers/imgur.js
index 3884d5dc..20d7c5b3 100644
--- a/src/assets/javascripts/helpers/imgur.js
+++ b/src/assets/javascripts/helpers/imgur.js
@@ -116,9 +116,9 @@ function isImgur(url, initiator) {
if (url.pathname == "/") return false;
if (
initiator &&
- ([...redirects.rimgo.normal, ...rimgoNormalCustomRedirects].includes(initiator.origin) || targets.includes(initiator.host))
+ ([...redirects.rimgo.normal, ...rimgoNormalCustomRedirects].includes(initiator.origin) || targets.test(initiator.host))
) return false;
- return targets.some(rx => rx.test(url.href));
+ return targets.test(url.href);
}
function redirect(url, type) {
diff --git a/src/assets/javascripts/helpers/maps.js b/src/assets/javascripts/helpers/maps.js
index f0a58f2c..525fb145 100644
--- a/src/assets/javascripts/helpers/maps.js
+++ b/src/assets/javascripts/helpers/maps.js
@@ -4,6 +4,7 @@ window.browser = window.browser || window.chrome;
import commonHelper from './common.js'
const targets = /^https?:\/{2}(((www|maps)\.)?(google\.).*(\/maps)|maps\.(google\.).*)/;
+
let redirects = {
'osm': {
"normal": [
@@ -16,49 +17,7 @@ let redirects = {
]
}
};
-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",
-};
-
-function addressToLatLng(address, callback) {
- const xmlhttp = new XMLHttpRequest();
- xmlhttp.onreadystatechange = () => {
- if (xmlhttp.readyState === XMLHttpRequest.DONE) {
- if (xmlhttp.status === 200) {
- const json = JSON.parse(xmlhttp.responseText)[0];
- if (json) callback(
- `${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`,
- false
- );
- xmlhttp.send();
-}
+const getRedirects = () => redirects;
let disable;
const getDisable = () => disable;
@@ -76,7 +35,67 @@ function setFrontend(val) {
console.log("mapsFrontend: ", frontend)
};
+let facilNormalRedirectsChecks;
+const getFacilNormalRedirectsChecks = () => facilNormalRedirectsChecks;
+function setFacilNormalRedirectsChecks(val) {
+ facilNormalRedirectsChecks = val;
+ browser.storage.local.set({ facilNormalRedirectsChecks })
+ console.log("facilNormalRedirectsChecks: ", val)
+}
+
+let facilNormalCustomRedirects = [];
+const getFacilNormalCustomRedirects = () => facilNormalCustomRedirects;
+function setFacilNormalCustomRedirects(val) {
+ facilNormalCustomRedirects = val;
+ browser.storage.local.set({ facilNormalCustomRedirects })
+ console.log("facilNormalCustomRedirects: ", val)
+}
+
+
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",
+ };
+
+ function addressToLatLng(address, callback) {
+ const xmlhttp = new XMLHttpRequest();
+ xmlhttp.onreadystatechange = () => {
+ if (xmlhttp.readyState === XMLHttpRequest.DONE) {
+ if (xmlhttp.status === 200) {
+ const json = JSON.parse(xmlhttp.responseText)[0];
+ if (json) callback(
+ `${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`,
+ false
+ );
+ xmlhttp.send();
+ }
if (disable) return;
if (initiator && initiator.host === "earth.google.com") return;
@@ -84,7 +103,7 @@ function redirect(url, initiator) {
let randomInstance;
if (frontend == 'osm') randomInstance = commonHelper.getRandomInstance(redirects.osm.normal);
- if (frontend == 'facil') randomInstance = commonHelper.getRandomInstance(redirects.facil.normal);
+ if (frontend == 'facil') randomInstance = commonHelper.getRandomInstance([...facilNormalRedirectsChecks, ...facilNormalCustomRedirects]);
let mapCentre = "#";
let prefs = {};
@@ -200,11 +219,18 @@ async function init() {
browser.storage.local.get(
[
"disableMaps",
- "mapsFrontend"
+ "mapsFrontend",
+
+ "facilNormalRedirectsChecks",
+ "facilNormalCustomRedirects",
],
r => {
- disable = r.disableMaps ?? false
- frontend = r.mapsFrontend ?? 'osm'
+ disable = r.disableMaps ?? false;
+ frontend = r.mapsFrontend ?? 'osm';
+
+ facilNormalRedirectsChecks = r.facilNormalRedirectsChecks ?? [...redirects.facil.normal];
+ facilNormalCustomRedirects = r.facilNormalCustomRedirects ?? [];
+
resolve();
}
);
@@ -218,6 +244,13 @@ export default {
getFrontend,
setFrontend,
+ getRedirects,
+
+ getFacilNormalRedirectsChecks,
+ setFacilNormalRedirectsChecks,
+ getFacilNormalCustomRedirects,
+ setFacilNormalCustomRedirects,
+
redirect,
init,
};
diff --git a/src/assets/javascripts/helpers/reddit.js b/src/assets/javascripts/helpers/reddit.js
index 73f10c42..77a77d43 100644
--- a/src/assets/javascripts/helpers/reddit.js
+++ b/src/assets/javascripts/helpers/reddit.js
@@ -417,7 +417,7 @@ function switchInstance(url) {
}
async function init() {
- return new Promise((resolve) => {
+ return new Promise(resolve => {
fetch('/instances/data.json').then(response => response.text()).then(data => {
let dataJson = JSON.parse(data);
browser.storage.local.get(
@@ -453,6 +453,7 @@ async function init() {
alwaysUsePreferred = r.alwaysUsePreferred ?? false;
redirects.teddit = dataJson.teddit;
+ redirects.libreddit = dataJson.libreddit;
if (r.redditRedirects) redirects = r.redditRedirects;
if (r.redditRedirects) redirects = r.redditRedirects;