about summary refs log tree commit diff stats
path: root/src/assets
diff options
context:
space:
mode:
authorManeraKai <manerakai@protonmail.com>2022-02-08 23:04:18 +0300
committerManeraKai <manerakai@protonmail.com>2022-02-08 23:04:18 +0300
commit6fb346569fa1fa0404c4aac3f9d979aa2c1de3ff (patch)
treec56afd935ae037e327b6e170daf58ab88825c3bf /src/assets
parentReverting scribe's regex at it's almost crashes browser #19 (diff)
downloadlibredirect-6fb346569fa1fa0404c4aac3f9d979aa2c1de3ff.zip
Added rimgo will improve on it #24
Diffstat (limited to 'src/assets')
-rw-r--r--src/assets/javascripts/helpers/imgur.js114
-rw-r--r--src/assets/javascripts/helpers/medium.js2
-rw-r--r--src/assets/javascripts/helpers/rimgo.js14
3 files changed, 115 insertions, 15 deletions
diff --git a/src/assets/javascripts/helpers/imgur.js b/src/assets/javascripts/helpers/imgur.js
new file mode 100644
index 00000000..f3f82967
--- /dev/null
+++ b/src/assets/javascripts/helpers/imgur.js
@@ -0,0 +1,114 @@
+import commonHelper from './common.js'
+
+const targets = [
+    /^https?:\/\/(i|).?imgur.com/
+];
+
+let redirects = {
+    "rimgo": {
+        "normal": [
+            "https://i.bcow.xyz",
+            "https://rimgo.bcow.xyz",
+            "https://rimgo.pussthecat.org",
+            "https://img.riverside.rocks",
+            "https://rimgo.totaldarkness.net",
+            "https://rimgo.bus-hit.me"
+        ],
+        "onion": [
+            "http://l4d4owboqr6xcmd6lf64gbegel62kbudu3x3jnldz2mx6mhn3bsv3zyd.onion",
+            "http://jx3dpcwedpzu2mh54obk5gvl64i2ln7pt5mrzd75s4jnndkqwzaim7ad.onion"
+        ]
+    }
+}
+
+const getRedirects = () => redirects;
+function setRedirects(val) {
+    redirects.rimgo = val;
+    browser.storage.sync.set({ imgurRedirects: redirects })
+    console.log("imgurRedirects: ", val)
+    for (const item of rimgoRedirectsChecks)
+        if (!redirects.rimgo.normal.includes(item)) {
+            var index = rimgoRedirectsChecks.indexOf(item);
+            if (index !== -1) rimgoRedirectsChecks.splice(index, 1);
+        }
+    setRimgoRedirectsChecks(rimgoRedirectsChecks);
+}
+
+let rimgoRedirectsChecks;
+const getRimgoRedirectsChecks = () => rimgoRedirectsChecks;
+function setRimgoRedirectsChecks(val) {
+    rimgoRedirectsChecks = val;
+    browser.storage.sync.set({ rimgoRedirectsChecks })
+    console.log("rimgoRedirectsChecks: ", val)
+}
+
+let rimgoCustomRedirects = [];
+const getRimgoCustomRedirects = () => rimgoCustomRedirects;
+function setRimgoCustomRedirects(val) {
+    rimgoCustomRedirects = val;
+    browser.storage.sync.set({ rimgoCustomRedirects })
+    console.log("rimgoCustomRedirects: ", val)
+}
+
+let disableImgur;
+const getDisableImgur = () => disableImgur;
+function setDisableImgur(val) {
+    disableImgur = val;
+    browser.storage.sync.set({ disableImgur })
+}
+
+function redirect(url, initiator, type) {
+
+    if (disableImgur) return null;
+
+    if (url.pathname == "/") return null;
+
+    if (type != "main_frame" && "sub_frame" && "xmlhttprequest" && "other") return null;
+
+    let instancesList = [...rimgoRedirectsChecks, ...rimgoCustomRedirects];
+    if (instancesList.length === 0) return null;
+    let randomInstance = commonHelper.getRandomInstance(instancesList)
+
+    if (initiator && (instancesList.includes(initiator.origin) || targets.includes(initiator.host))) return null;
+
+    return `${randomInstance}${url.pathname}${url.search}`;
+}
+
+function isImgur(url) {
+    return targets.some((rx) => rx.test(url.href));
+}
+
+async function init() {
+    let result = await browser.storage.sync.get([
+        "disableImgur",
+        "imgurRedirects",
+        "rimgoRedirectsChecks",
+        "rimgoCustomRedirects",
+    ])
+    disableImgur = result.disableImgur ?? false;
+    if (result.imgurRedirects)
+        redirects = result.imgurRedirects;
+
+    rimgoRedirectsChecks = result.rimgoRedirectsChecks ?? [...redirects.rimgo.normal];
+    rimgoCustomRedirects = result.rimgoCustomRedirects ?? [];
+}
+
+export default {
+    targets,
+
+    getRedirects,
+    setRedirects,
+
+    getDisableImgur,
+    setDisableImgur,
+
+    getRimgoRedirectsChecks,
+    setRimgoRedirectsChecks,
+
+    getRimgoCustomRedirects,
+    setRimgoCustomRedirects,
+
+    redirect,
+    isImgur,
+    init,
+};
diff --git a/src/assets/javascripts/helpers/medium.js b/src/assets/javascripts/helpers/medium.js
index bc5455f4..348313bb 100644
--- a/src/assets/javascripts/helpers/medium.js
+++ b/src/assets/javascripts/helpers/medium.js
@@ -89,7 +89,7 @@ function redirect(url, initiator, type) {
 }
 
 function isMedium(url) {
-  return targets.some((rx) => rx.test(url.href));
+  return targets.some((rx) => rx.test(url.host));
 }
 
 async function init() {
diff --git a/src/assets/javascripts/helpers/rimgo.js b/src/assets/javascripts/helpers/rimgo.js
deleted file mode 100644
index 829dd230..00000000
--- a/src/assets/javascripts/helpers/rimgo.js
+++ /dev/null
@@ -1,14 +0,0 @@
-let redirects = {
-    "normal": [
-        "https://i.bcow.xyz",
-        "https://rimgo.bcow.xyz",
-        "https://rimgo.pussthecat.org",
-        "https://img.riverside.rocks",
-        "https://rimgo.totaldarkness.net",
-        "https://rimgo.bus-hit.me"
-    ],
-    "onion": [
-        "http://l4d4owboqr6xcmd6lf64gbegel62kbudu3x3jnldz2mx6mhn3bsv3zyd.onion",
-        "http://jx3dpcwedpzu2mh54obk5gvl64i2ln7pt5mrzd75s4jnndkqwzaim7ad.onion"
-    ]
-}
\ No newline at end of file