diff --git a/Privacy-Policy.md b/Privacy-Policy.md index f7ac66f..fe35754 100644 --- a/Privacy-Policy.md +++ b/Privacy-Policy.md @@ -5,14 +5,7 @@ OpenStreetMap (OSM) reverse geocoding, done via the [OSM Nomantim API](https://nominatim.org/release-docs/develop/api/Overview/), used as part of OSM redirects, which can be disabled by toggling the OSM redirects. * It also connects to [this url](https://raw.githubusercontent.com/libredirect/libredirect/master/src/instances/data.json) to update the Instances List. Though this only gets triggered when the user presses the `Update Instances` button. - -## Permissions -* `webRequest`, `webRequestBlocking`: To block http requests or redirect them. e.g redirect to YouTube => Invidious before it can reach YouTube's servers. - * `storage`: To save LibRedirect's settings permanently. - * `cookies`: To apply settings on multiple instances. Note that we use localStorage too. Those options are disabled by default though. - * `contextMenus`: For adding some buttons to the right click:\ -![contextMenu](https://user-images.githubusercontent.com/40805353/160441937-dc0c71a9-bed1-4078-81a1-189f8ff21c0e.png) - * ``: LibRedirect is dynamic and customizable. The targets e.g `https://youtube.com`, `https://twitter.com` are written in [Regex](https://en.wikipedia.org/wiki/Regular_expression) and are much more complicated than to be hard-coded in the manifest. Ex: [search Regex](https://github.com/libredirect/libredirect/blob/master/src/assets/javascripts/helpers/search.js#L6=). Further more, we need to access the instances sites too to inject some localStorage variables. There's also an option to `Always Use Preferred instances` that is to even redirect of any other invidious instance to your selected instances. This has to be dynamic and you may even add a custom instance which can't at all be hard-coded. +* For bibliogram instances. To set a cookie you should send an http request to the server as the server stores settings values itself and gives you a token to access them. ## Future Changes If we decide to change our privacy policy, we will post those changes on this page. diff --git a/src/assets/javascripts/helpers/common.js b/src/assets/javascripts/helpers/common.js index 4a264be..5ab3d2b 100644 --- a/src/assets/javascripts/helpers/common.js +++ b/src/assets/javascripts/helpers/common.js @@ -18,7 +18,7 @@ function getRandomInstance(instances) { let cloudflareList = []; async function initCloudflareList() { return new Promise(resolve => { - fetch('/instances/blocklist').then(response => response.text()).then(data => { + fetch('/instances/blocklist.json').then(response => response.text()).then(data => { cloudflareList = JSON.parse(data); resolve(); }) @@ -96,6 +96,7 @@ function protocolHost(url) { } async function processDefaultCustomInstances(target, name, protocol, document) { + function camelCase(str) { return str.charAt(0).toUpperCase() + str.slice(1); } @@ -109,6 +110,7 @@ async function processDefaultCustomInstances(target, name, protocol, document) { await initCloudflareList(); + let nameDefaultRedirects; let redirectsChecks = `${name}${camelCase(protocol)}RedirectsChecks`; @@ -271,9 +273,13 @@ async function ping(href) { let started = new Date().getTime(); http.onreadystatechange = () => { if (http.readyState == 2) { - let ended = new Date().getTime(); - http.abort(); - resolve(ended - started); + if (http.status == 200) { + let ended = new Date().getTime(); + http.abort(); + resolve(ended - started); + } + else + resolve(5000 + http.status) } }; http.ontimeout = () => resolve(5000) @@ -292,9 +298,16 @@ async function testLatency(element, instances) { for (const href of instances) await ping(href).then(m => { if (m) { myList[href] = m; - let color = m <= 1000 ? "green" : m <= 2000 ? "orange" : "red"; - let text = m == 5000 ? '5000ms+' : m + 'ms'; - element.innerHTML = `${href}: '${text}`; + let color; + if (m <= 1000) color = "green" + else if (m <= 2000) color = "orange" + else color = "red"; + + let text; + if (m == 5000) text = '5000ms+' + else if (m > 5000) text = m - 5000 + else text = `${m}ms`; + element.innerHTML = `${href}: ${text}`; } }) resolve(myList);