diff --git a/README.md b/README.md
index 9408595..d0db45b 100644
--- a/README.md
+++ b/README.md
@@ -2,7 +2,9 @@
[![Awesome Humane Tech](https://raw.githubusercontent.com/humanetech-community/awesome-humane-tech/main/humane-tech-badge.svg?sanitize=true)](https://github.com/humanetech-community/awesome-humane-tech)
-[![Donate](https://liberapay.com/src/assets/widgets/donate.svg)](https://liberapay.com/SimonBrazell/donate) [![Buy me a coffee](src/assets/images/buy-me-a-coffee.png)](https://www.buymeacoffee.com/SimonBrazell)
+[![Donate](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/SimonBrazell/donate) [![Buy me a coffee](src/assets/images/buy-me-a-coffee.png)](https://www.buymeacoffee.com/SimonBrazell)
+
+
## Get
diff --git a/src/assets/javascripts/helpers/common.js b/src/assets/javascripts/helpers/common.js
index 6edd3d3..a0e05c7 100644
--- a/src/assets/javascripts/helpers/common.js
+++ b/src/assets/javascripts/helpers/common.js
@@ -1,9 +1,12 @@
-export default class {
- static filterInstances(instances) {
- return instances.filter((instance) => !instance.includes(".onion"));
- }
-
- static getRandomInstance(instances) {
- return instances[~~(instances.length * Math.random())];
- }
+function filterInstances(instances) {
+ return instances.filter((instance) => !instance.includes(".onion"));
}
+
+function getRandomInstance(instances) {
+ return instances[~~(instances.length * Math.random())];
+}
+
+export default {
+ filterInstances,
+ getRandomInstance,
+};
diff --git a/src/assets/javascripts/helpers/google-maps.js b/src/assets/javascripts/helpers/google-maps.js
index 3a041c6..2ba924b 100644
--- a/src/assets/javascripts/helpers/google-maps.js
+++ b/src/assets/javascripts/helpers/google-maps.js
@@ -1,43 +1,52 @@
-export default class {
- static targets = /https?:\/\/(((www|maps)\.)?(google\.).*(\/maps)|maps\.(google\.).*)/;
- static redirects = ["https://openstreetmap.org"];
- static mapCentreRegex = /@(-?\d[0-9.]*),(-?\d[0-9.]*),(\d{1,2})[.z]/;
- static dataLatLngRegex = /(!3d|!4d)(-?[0-9]{1,10}.[0-9]{1,10})/g;
- static placeRegex = /\/place\/(.*)\//;
- static travelModes = {
- driving: "fossgis_osrm_car",
- walking: "fossgis_osrm_foot",
- bicycling: "fossgis_osrm_bike",
- transit: "fossgis_osrm_car", // not implemented on OSM, default to car.
- };
- static layers = {
- none: "S",
- transit: "T",
- traffic: "S", // not implemented on OSM, default to standard.
- bicycling: "C",
- };
- static 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}%2C${json.lon}`,
- `${json.boundingbox[2]},${json.boundingbox[1]},${json.boundingbox[3]},${json.boundingbox[0]}`
- );
- }
- } else {
- console.info("Error: Status is " + xmlhttp.status);
+const targets = /https?:\/\/(((www|maps)\.)?(google\.).*(\/maps)|maps\.(google\.).*)/;
+const redirects = ["https://openstreetmap.org"];
+const mapCentreRegex = /@(-?\d[0-9.]*),(-?\d[0-9.]*),(\d{1,2})[.z]/;
+const dataLatLngRegex = /(!3d|!4d)(-?[0-9]{1,10}.[0-9]{1,10})/g;
+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 layers = {
+ 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}%2C${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();
- }
+ }
+ };
+ xmlhttp.open(
+ "GET",
+ `https://nominatim.openstreetmap.org/search/${address}?format=json&limit=1`,
+ false
+ );
+ xmlhttp.send();
}
+
+export default {
+ targets,
+ redirects,
+ mapCentreRegex,
+ dataLatLngRegex,
+ placeRegex,
+ travelModes,
+ layers,
+ addressToLatLng,
+};
diff --git a/src/assets/javascripts/helpers/google-search.js b/src/assets/javascripts/helpers/google-search.js
index dc12042..c83d7c9 100644
--- a/src/assets/javascripts/helpers/google-search.js
+++ b/src/assets/javascripts/helpers/google-search.js
@@ -1,9 +1,12 @@
-export default class {
- static targets = /https?:\/\/(((www|maps)\.)?(google\.).*(\/search)|search\.(google\.).*)/;
- static redirects = [
- { link: "https://duckduckgo.com", q: "/" },
- { link: "https://startpage.com", q: "/search/" },
- { link: "https://www.qwant.com", q: "/" },
- { link: "https://www.mojeek.com", q: "/search" },
- ];
-}
+const targets = /https?:\/\/(((www|maps)\.)?(google\.).*(\/search)|search\.(google\.).*)/;
+const redirects = [
+ { link: "https://duckduckgo.com", q: "/" },
+ { link: "https://startpage.com", q: "/search/" },
+ { link: "https://www.qwant.com", q: "/" },
+ { link: "https://www.mojeek.com", q: "/search" },
+];
+
+export default {
+ targets,
+ redirects,
+};
diff --git a/src/assets/javascripts/helpers/instagram.js b/src/assets/javascripts/helpers/instagram.js
index bd0ad9f..cb0eae5 100644
--- a/src/assets/javascripts/helpers/instagram.js
+++ b/src/assets/javascripts/helpers/instagram.js
@@ -1,47 +1,52 @@
-export default class {
- static targets = [
- "instagram.com",
- "www.instagram.com",
- "help.instagram.com",
- "about.instagram.com",
- ];
- static redirects = [
- "https://bibliogram.art",
- "https://bibliogram.snopyta.org",
- "https://bibliogram.pussthecat.org",
- "https://bibliogram.nixnet.services",
- "https://bg.endl.site",
- "https://bibliogram.13ad.de",
- "https://bibliogram.pixelfed.uno",
- "https://bibliogram.ethibox.fr",
- "https://bibliogram.hamster.dance",
- "https://bibliogram.kavin.rocks",
- "https://bibliogram.ggc-project.de",
- ];
- static reservedPaths = [
- "about",
- "explore",
- "support",
- "press",
- "api",
- "privacy",
- "safety",
- "admin",
- "graphql",
- "accounts",
- "help",
- "terms",
- "contact",
- "blog",
- "igtv",
- "u",
- "p",
- "fragment",
- "imageproxy",
- "videoproxy",
- ".well-known",
- "tv",
- "reel",
- ];
- static bypassPaths = /\/(accounts\/|embeds?.js)/;
-}
+const targets = [
+ "instagram.com",
+ "www.instagram.com",
+ "help.instagram.com",
+ "about.instagram.com",
+];
+const redirects = [
+ "https://bibliogram.art",
+ "https://bibliogram.snopyta.org",
+ "https://bibliogram.pussthecat.org",
+ "https://bibliogram.nixnet.services",
+ "https://bg.endl.site",
+ "https://bibliogram.13ad.de",
+ "https://bibliogram.pixelfed.uno",
+ "https://bibliogram.ethibox.fr",
+ "https://bibliogram.hamster.dance",
+ "https://bibliogram.kavin.rocks",
+ "https://bibliogram.ggc-project.de",
+];
+const reservedPaths = [
+ "about",
+ "explore",
+ "support",
+ "press",
+ "api",
+ "privacy",
+ "safety",
+ "admin",
+ "graphql",
+ "accounts",
+ "help",
+ "terms",
+ "contact",
+ "blog",
+ "igtv",
+ "u",
+ "p",
+ "fragment",
+ "imageproxy",
+ "videoproxy",
+ ".well-known",
+ "tv",
+ "reel",
+];
+const bypassPaths = /\/(accounts\/|embeds?.js)/;
+
+export default {
+ targets,
+ redirects,
+ reservedPaths,
+ bypassPaths,
+};
diff --git a/src/assets/javascripts/helpers/reddit.js b/src/assets/javascripts/helpers/reddit.js
index 46fff4c..6cf62bc 100644
--- a/src/assets/javascripts/helpers/reddit.js
+++ b/src/assets/javascripts/helpers/reddit.js
@@ -1,24 +1,28 @@
-export default class {
- static targets = [
- "www.reddit.com",
- "np.reddit.com",
- "new.reddit.com",
- "amp.reddit.com",
- ];
- static redirects = [
- "https://old.reddit.com", // desktop
- "https://i.reddit.com", // mobile
- // teddit: privacy w/ old UI
- "https://teddit.net",
- "https://teddit.ggc-project.de",
- "https://teddit.kavin.rocks",
- "https://snew.notabug.io", // anti-censorship
- // libreddit: privacy w/ modern UI
- "https://libredd.it",
- "https://libreddit.spike.codes",
- "https://libreddit.kavin.rocks",
- "https://libreddit.insanity.wtf",
- "https://libreddit.dothq.co",
- ];
- static bypassPaths = /\/(gallery\/poll\/rpan\/settings\/topics)/;
-}
+const targets = [
+ "www.reddit.com",
+ "np.reddit.com",
+ "new.reddit.com",
+ "amp.reddit.com",
+];
+const redirects = [
+ "https://old.reddit.com", // desktop
+ "https://i.reddit.com", // mobile
+ // teddit: privacy w/ old UI
+ "https://teddit.net",
+ "https://teddit.ggc-project.de",
+ "https://teddit.kavin.rocks",
+ "https://snew.notabug.io", // anti-censorship
+ // libreddit: privacy w/ modern UI
+ "https://libredd.it",
+ "https://libreddit.spike.codes",
+ "https://libreddit.kavin.rocks",
+ "https://libreddit.insanity.wtf",
+ "https://libreddit.dothq.co",
+];
+const bypassPaths = /\/(gallery\/poll\/rpan\/settings\/topics)/;
+
+export default {
+ targets,
+ redirects,
+ bypassPaths,
+};
diff --git a/src/assets/javascripts/helpers/twitter.js b/src/assets/javascripts/helpers/twitter.js
index 1ebc025..38f7042 100644
--- a/src/assets/javascripts/helpers/twitter.js
+++ b/src/assets/javascripts/helpers/twitter.js
@@ -1,38 +1,41 @@
-export default class {
- /*
+/*
Please remember to also update the manifest.json file
(content_scripts > matches, 'remove-twitter-sw.js')
when updating this list:
*/
- static targets = [
- "twitter.com",
- "www.twitter.com",
- "mobile.twitter.com",
- "pbs.twimg.com",
- "video.twimg.com",
- ];
- static redirects = [
- "https://nitter.net",
- "https://nitter.snopyta.org",
- "https://nitter.42l.fr",
- "https://nitter.nixnet.services",
- "https://nitter.13ad.de",
- "https://nitter.pussthecat.org",
- "https://nitter.mastodont.cat",
- "https://nitter.dark.fail",
- "https://nitter.tedomum.net",
- "https://nitter.cattube.org",
- "https://nitter.fdn.fr",
- "https://nitter.1d4.us",
- "https://nitter.kavin.rocks",
- "https://tweet.lambda.dance",
- "https://nitter.cc",
- "https://nitter.weaponizedhumiliation.com",
- "https://nitter.vxempire.xyz",
- "https://nitter.unixfox.eu",
- "http://3nzoldnxplag42gqjs23xvghtzf6t6yzssrtytnntc6ppc7xxuoneoad.onion",
- "http://nitter.l4qlywnpwqsluw65ts7md3khrivpirse744un3x7mlskqauz5pyuzgqd.onion",
- "http://nitterlgj3n5fgwesu3vxc5h67ruku33nqaoeoocae2mvlzhsu6k7fqd.onion",
- "http://npf37k3mtzwxreiw52ccs5ay4e6qt2fkcs2ndieurdyn2cuzzsfyfvid.onion",
- ];
-}
+const targets = [
+ "twitter.com",
+ "www.twitter.com",
+ "mobile.twitter.com",
+ "pbs.twimg.com",
+ "video.twimg.com",
+];
+const redirects = [
+ "https://nitter.net",
+ "https://nitter.snopyta.org",
+ "https://nitter.42l.fr",
+ "https://nitter.nixnet.services",
+ "https://nitter.13ad.de",
+ "https://nitter.pussthecat.org",
+ "https://nitter.mastodont.cat",
+ "https://nitter.dark.fail",
+ "https://nitter.tedomum.net",
+ "https://nitter.cattube.org",
+ "https://nitter.fdn.fr",
+ "https://nitter.1d4.us",
+ "https://nitter.kavin.rocks",
+ "https://tweet.lambda.dance",
+ "https://nitter.cc",
+ "https://nitter.weaponizedhumiliation.com",
+ "https://nitter.vxempire.xyz",
+ "https://nitter.unixfox.eu",
+ "http://3nzoldnxplag42gqjs23xvghtzf6t6yzssrtytnntc6ppc7xxuoneoad.onion",
+ "http://nitter.l4qlywnpwqsluw65ts7md3khrivpirse744un3x7mlskqauz5pyuzgqd.onion",
+ "http://nitterlgj3n5fgwesu3vxc5h67ruku33nqaoeoocae2mvlzhsu6k7fqd.onion",
+ "http://npf37k3mtzwxreiw52ccs5ay4e6qt2fkcs2ndieurdyn2cuzzsfyfvid.onion",
+];
+
+export default {
+ targets,
+ redirects,
+};
diff --git a/src/assets/javascripts/helpers/youtube.js b/src/assets/javascripts/helpers/youtube.js
index 3d1fcd2..79994f5 100644
--- a/src/assets/javascripts/helpers/youtube.js
+++ b/src/assets/javascripts/helpers/youtube.js
@@ -1,33 +1,36 @@
-export default class {
- static targets = [
- "m.youtube.com",
- "youtube.com",
- "img.youtube.com",
- "www.youtube.com",
- "youtube-nocookie.com",
- "www.youtube-nocookie.com",
- "youtu.be",
- "s.ytimg.com",
- "music.youtube.com",
- ];
- /*
+const targets = [
+ "m.youtube.com",
+ "youtube.com",
+ "img.youtube.com",
+ "www.youtube.com",
+ "youtube-nocookie.com",
+ "www.youtube-nocookie.com",
+ "youtu.be",
+ "s.ytimg.com",
+ "music.youtube.com",
+];
+/*
Please remember to also update the manifest.json file
(content_scripts > matches, 'persist-invidious-prefs.js')
when updating this list:
*/
- static redirects = [
- "https://invidious.snopyta.org",
- "https://invidious.xyz",
- "https://invidious.kavin.rocks",
- "https://tube.connect.cafe",
- "https://invidious.zapashcanon.fr",
- "https://invidiou.site",
- "https://vid.mint.lgbt",
- "https://invidious.site",
- "https://yewtu.be",
- "http://fz253lmuao3strwbfbmx46yu7acac2jz27iwtorgmbqlkurlclmancad.onion",
- "http://qklhadlycap4cnod.onion",
- "http://c7hqkpkpemu6e7emz5b4vyz7idjgdvgaaa3dyimmeojqbgpea3xqjoid.onion",
- "http://w6ijuptxiku4xpnnaetxvnkc5vqcdu7mgns2u77qefoixi63vbvnpnqd.onion",
- ];
-}
+const redirects = [
+ "https://invidious.snopyta.org",
+ "https://invidious.xyz",
+ "https://invidious.kavin.rocks",
+ "https://tube.connect.cafe",
+ "https://invidious.zapashcanon.fr",
+ "https://invidiou.site",
+ "https://vid.mint.lgbt",
+ "https://invidious.site",
+ "https://yewtu.be",
+ "http://fz253lmuao3strwbfbmx46yu7acac2jz27iwtorgmbqlkurlclmancad.onion",
+ "http://qklhadlycap4cnod.onion",
+ "http://c7hqkpkpemu6e7emz5b4vyz7idjgdvgaaa3dyimmeojqbgpea3xqjoid.onion",
+ "http://w6ijuptxiku4xpnnaetxvnkc5vqcdu7mgns2u77qefoixi63vbvnpnqd.onion",
+];
+
+export default {
+ targets,
+ redirects,
+};
diff --git a/src/assets/stylesheets/styles.css b/src/assets/stylesheets/styles.css
index e11f313..b620072 100644
--- a/src/assets/stylesheets/styles.css
+++ b/src/assets/stylesheets/styles.css
@@ -481,7 +481,7 @@ input[type="range"]::-moz-range-thumb {
}
.collapsible:after {
- content: "\002B";
+ content: "\25BE";
color: var(--active);
font-weight: bold;
float: right;
@@ -496,7 +496,7 @@ input[type="range"]::-moz-range-thumb {
}
.collapsible-active:after {
- content: "\002D";
+ content: "\25B4";
color: var(--text-secondary);
font-weight: bold;
float: right;
diff --git a/src/pages/background/background.html b/src/pages/background/background.html
index 2d0fb68..6ce1fdc 100644
--- a/src/pages/background/background.html
+++ b/src/pages/background/background.html
@@ -1 +1,2 @@
+
diff --git a/src/pages/options/options.js b/src/pages/options/options.js
index e6bd224..a698073 100644
--- a/src/pages/options/options.js
+++ b/src/pages/options/options.js
@@ -25,6 +25,7 @@ const autocompletes = [
instances: searchEngineInstances.map((instance) => instance.link),
},
];
+const domparser = new DOMParser();
let nitterInstance = document.getElementById("nitter-instance");
let invidiousInstance = document.getElementById("invidious-instance");
@@ -69,7 +70,9 @@ function prependExceptionsItem(item, index) {
`;
- button.innerHTML = svg;
+ button.appendChild(
+ domparser.parseFromString(svg, "image/svg+xml").documentElement
+ );
button.addEventListener("click", () => {
exceptions.splice(index, 1);
browser.storage.sync.set({
@@ -465,9 +468,10 @@ function autocomplete(input, list) {
}
function getItem(item, val) {
let div = document.createElement("div");
- div.innerHTML = "" + item.substr(0, val.length) + "";
- div.innerHTML += item.substr(val.length);
- div.innerHTML += "";
+ let html = `${item.substr(0, val.length)}${item.substr(
+ val.length
+ )}`;
+ div.appendChild(parser.parseFromString(html, "text/html").documentElement);
div.addEventListener("click", function (e) {
input.value = e.target.getElementsByTagName("input")[0].value;
input.dispatchEvent(new Event("input"));