aboutsummaryrefslogtreecommitdiffstats
path: root/src/assets/javascripts/helpers
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/javascripts/helpers
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/javascripts/helpers')
-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