about summary refs log tree commit diff stats
path: root/src/assets/javascripts
diff options
context:
space:
mode:
authorManeraKai <manerakai@protonmail.com>2022-04-14 17:13:41 +0300
committerManeraKai <manerakai@protonmail.com>2022-04-14 17:13:41 +0300
commit0f30806ef56ecee5d33694514b65e69b2caf252c (patch)
treed5f1d06bd9753d7c07551dda5bcda9429a50cc1d /src/assets/javascripts
parentMerge branch 'master' of https://github.com/libredirect/libredirect (diff)
downloadlibredirect-0f30806ef56ecee5d33694514b65e69b2caf252c.zip
Adding speedtest #170. Adding Pug templates structure
Signed-off-by: ManeraKai <manerakai@protonmail.com>
Diffstat (limited to 'src/assets/javascripts')
-rw-r--r--src/assets/javascripts/helpers/speedtest.js173
-rw-r--r--src/assets/javascripts/helpers/twitter.js2
2 files changed, 173 insertions, 2 deletions
diff --git a/src/assets/javascripts/helpers/speedtest.js b/src/assets/javascripts/helpers/speedtest.js
new file mode 100644
index 00000000..1e2fddeb
--- /dev/null
+++ b/src/assets/javascripts/helpers/speedtest.js
@@ -0,0 +1,173 @@
+window.browser = window.browser || window.chrome;
+
+import commonHelper from './common.js'
+
+const targets = [
+    /^https?:\/{2}(www\.|)speedtest\.net\/$/
+];
+
+let redirects = {
+    "librespeed": {
+        "normal": [
+            "https://librespeed.org"
+        ],
+        "tor": []
+    }
+}
+
+const getRedirects = () => redirects;
+const getCustomRedirects = function () {
+    return {
+        "librespeed": {
+            "normal": [...librespeedNormalRedirectsChecks, ...librespeedNormalCustomRedirects],
+            "tor": []
+        },
+    };
+};
+
+function setRedirects(val) {
+    redirects.librespeed = val;
+    browser.storage.local.set({ speedtestRedirects: redirects })
+    console.log("speedtestRedirects: ", val)
+    for (const item of librespeedNormalRedirectsChecks)
+        if (!redirects.librespeed.normal.includes(item)) {
+            var index = librespeedNormalRedirectsChecks.indexOf(item);
+            if (index !== -1) librespeedNormalRedirectsChecks.splice(index, 1);
+        }
+    setLibrespeedNormalRedirectsChecks(librespeedNormalRedirectsChecks);
+
+    for (const item of librespeedTorRedirectsChecks)
+        if (!redirects.librespeed.normal.includes(item)) {
+            var index = librespeedTorRedirectsChecks.indexOf(item);
+            if (index !== -1) librespeedTorRedirectsChecks.splice(index, 1);
+        }
+    setLibrespeedTorRedirectsChecks(librespeedTorRedirectsChecks);
+}
+
+let librespeedNormalRedirectsChecks;
+const getLibrespeedNormalRedirectsChecks = () => librespeedNormalRedirectsChecks;
+function setLibrespeedNormalRedirectsChecks(val) {
+    librespeedNormalRedirectsChecks = val;
+    browser.storage.local.set({ librespeedNormalRedirectsChecks })
+    console.log("librespeedNormalRedirectsChecks: ", val)
+}
+
+let librespeedTorRedirectsChecks;
+const getLibrespeedTorRedirectsChecks = () => librespeedTorRedirectsChecks;
+function setLibrespeedTorRedirectsChecks(val) {
+    librespeedTorRedirectsChecks = val;
+    browser.storage.local.set({ librespeedTorRedirectsChecks })
+    console.log("librespeedTorRedirectsChecks: ", val)
+}
+
+let librespeedNormalCustomRedirects = [];
+const getLibrespeedNormalCustomRedirects = () => librespeedNormalCustomRedirects;
+function setLibrespeedNormalCustomRedirects(val) {
+    librespeedNormalCustomRedirects = val;
+    browser.storage.local.set({ librespeedNormalCustomRedirects })
+    console.log("librespeedNormalCustomRedirects: ", val)
+}
+
+let librespeedTorCustomRedirects = [];
+const getLibrespeedTorCustomRedirects = () => librespeedTorCustomRedirects;
+function setLibrespeedTorCustomRedirects(val) {
+    librespeedTorCustomRedirects = val;
+    browser.storage.local.set({ librespeedTorCustomRedirects })
+    console.log("librespeedTorCustomRedirects: ", val)
+}
+
+let disable;
+const getDisable = () => disable;
+function setDisable(val) {
+    disable = val;
+    browser.storage.local.set({ disableSpeedtest: disable })
+    console.log("disableSpeedtest", val);
+}
+
+let protocol;
+const getProtocol = () => protocol;
+function setProtocol(val) {
+    protocol = val;
+    browser.storage.local.set({ speedtestProtocol: val })
+    console.log("speedtestProtocol: ", val)
+}
+
+function redirect(url, type, initiator) {
+    if (disable) return null;
+    if (initiator && ([...redirects.librespeed.normal, ...librespeedNormalCustomRedirects].includes(initiator.origin) || targets.includes(initiator.host))) return null;
+    if (!targets.some(rx => rx.test(url.href))) return null;
+    console.log("Librespeed!!");
+
+    if (type != "main_frame" && type != "sub_frame") return null;
+
+    let instancesList;
+    if (protocol == 'normal') instancesList = [...librespeedNormalRedirectsChecks, ...librespeedNormalCustomRedirects];
+    if (protocol == 'tor') instancesList = [...librespeedTorRedirectsChecks, ...librespeedTorCustomRedirects];
+    if (instancesList.length === 0) return null;
+    let randomInstance = commonHelper.getRandomInstance(instancesList);
+
+    return `${randomInstance}`;
+}
+
+async function init() {
+    return new Promise(resolve => {
+        fetch('/instances/data.json').then(response => response.text()).then(data => {
+            let dataJson = JSON.parse(data);
+            browser.storage.local.get(
+                [
+                    "disableSpeedtest",
+                    "speedtestRedirects",
+
+                    "librespeedNormalRedirectsChecks",
+                    "librespeedNormalCustomRedirects",
+
+                    "librespeedTorRedirectsChecks",
+                    "librespeedTorCustomRedirects",
+
+                    "speedtestProtocol"
+                ],
+                r => {
+                    disable = r.disableSpeedtest ?? true;
+
+                    protocol = r.speedtestProtocol ?? "normal";
+
+                    if (r.speedtestRedirects) redirects = r.speedtestRedirects;
+
+                    librespeedNormalRedirectsChecks = r.librespeedNormalRedirectsChecks ?? [...redirects.librespeed.normal];
+                    librespeedNormalCustomRedirects = r.librespeedNormalCustomRedirects ?? [];
+
+                    librespeedTorRedirectsChecks = r.librespeedTorRedirectsChecks ?? [...redirects.librespeed.tor];
+                    librespeedTorCustomRedirects = r.librespeedTorCustomRedirects ?? [];
+
+                    resolve();
+                }
+            )
+        });
+    });
+}
+
+export default {
+
+    getRedirects,
+    getCustomRedirects,
+    setRedirects,
+
+    getDisable,
+    setDisable,
+
+    getProtocol,
+    setProtocol,
+
+    getLibrespeedNormalRedirectsChecks,
+    setLibrespeedNormalRedirectsChecks,
+    getLibrespeedTorRedirectsChecks,
+    setLibrespeedTorRedirectsChecks,
+
+    getLibrespeedTorCustomRedirects,
+    setLibrespeedTorCustomRedirects,
+    getLibrespeedNormalCustomRedirects,
+    setLibrespeedNormalCustomRedirects,
+
+    redirect,
+    init,
+};
diff --git a/src/assets/javascripts/helpers/twitter.js b/src/assets/javascripts/helpers/twitter.js
index a333777d..e58af78b 100644
--- a/src/assets/javascripts/helpers/twitter.js
+++ b/src/assets/javascripts/helpers/twitter.js
@@ -277,7 +277,6 @@ function isNitter(url, type) {
   ].includes(protocolHost);
 }
 
-let applyThemeToSites;
 function initNitterCookies() {
   if (enableCustomSettings) {
     let allInstances = [...redirects.nitter.normal, ...redirects.nitter.tor, ...nitterNormalCustomRedirects, ...nitterTorCustomRedirects]
@@ -410,7 +409,6 @@ async function init() {
           alwaysUsePreferred = r.alwaysUsePreferred ?? false;
 
           theme = r.theme ?? 'DEFAULT';
-          applyThemeToSites = r.applyThemeToSites ?? false;
 
           redirects.nitter = dataJson.nitter;
           if (r.twitterRedirects) redirects = r.twitterRedirects;