aboutsummaryrefslogtreecommitdiffstats
path: root/src/assets/javascripts
diff options
context:
space:
mode:
authorManeraKai <manerakai@protonmail.com>2022-03-10 10:30:23 +0300
committerManeraKai <manerakai@protonmail.com>2022-03-10 10:30:23 +0300
commitd3df133f4e9bf930179f700e93c2ec69058f1b44 (patch)
tree07a302ba8f83b491fa79a719c94398550c286b7c /src/assets/javascripts
parentMerge branch 'master' of https://github.com/libredirect/libredirect (diff)
downloadlibredirect-d3df133f4e9bf930179f700e93c2ec69058f1b44.zip
Added send, fixed a bug in #89
Diffstat (limited to 'src/assets/javascripts')
-rw-r--r--src/assets/javascripts/helpers/sendTargets.js188
-rw-r--r--src/assets/javascripts/helpers/wikipedia.js2
2 files changed, 189 insertions, 1 deletions
diff --git a/src/assets/javascripts/helpers/sendTargets.js b/src/assets/javascripts/helpers/sendTargets.js
new file mode 100644
index 00000000..3108257a
--- /dev/null
+++ b/src/assets/javascripts/helpers/sendTargets.js
@@ -0,0 +1,188 @@
+window.browser = window.browser || window.chrome;
+
+import commonHelper from './common.js'
+
+const targets = [
+ /^https?:\/\/send\.firefox\.com\/$/,
+ /^https?:\/\/sendfiles\.online\/$/
+];
+
+let redirects = {
+ "send": {
+ "normal": [
+ "https://send.silkky.cloud",
+ "https://send.turingpoint.de",
+ "https://send.ephemeral.land",
+ "https://send.monks.tools",
+ "https://send.jeugdhulp.be",
+ "https://send.aurorabilisim.com",
+ "https://nhanh.cloud",
+ "https://send.datahoarder.dev",
+ "https://send.navennec.net",
+ "https://fileupload.ggc-project.de",
+ "https://drop.chapril.org",
+ "https://files.psu.ru",
+ "https://send.portailpro.net",
+ "https://bytefile.de",
+ "https://transfer.acted.org ",
+ ],
+ "tor": []
+ }
+}
+
+const getRedirects = () => redirects;
+const getCustomRedirects = function () {
+ return {
+ "send": {
+ "normal": [...sendNormalRedirectsChecks, ...sendNormalCustomRedirects]
+ },
+ };
+};
+
+function setRedirects(val) {
+ redirects.send = val;
+ browser.storage.local.set({ sendTargetsRedirects: redirects })
+ console.log("sendTargetsRedirects: ", val)
+ for (const item of sendNormalRedirectsChecks)
+ if (!redirects.send.normal.includes(item)) {
+ var index = sendNormalRedirectsChecks.indexOf(item);
+ if (index !== -1) sendNormalRedirectsChecks.splice(index, 1);
+ }
+ setSendNormalRedirectsChecks(sendNormalRedirectsChecks);
+
+ for (const item of sendTorRedirectsChecks)
+ if (!redirects.send.normal.includes(item)) {
+ var index = sendTorRedirectsChecks.indexOf(item);
+ if (index !== -1) sendTorRedirectsChecks.splice(index, 1);
+ }
+ setSendTorRedirectsChecks(sendTorRedirectsChecks);
+}
+
+let sendNormalRedirectsChecks;
+const getSendNormalRedirectsChecks = () => sendNormalRedirectsChecks;
+function setSendNormalRedirectsChecks(val) {
+ sendNormalRedirectsChecks = val;
+ browser.storage.local.set({ sendNormalRedirectsChecks })
+ console.log("sendNormalRedirectsChecks: ", val)
+}
+
+let sendTorRedirectsChecks;
+const getSendTorRedirectsChecks = () => sendTorRedirectsChecks;
+function setSendTorRedirectsChecks(val) {
+ sendTorRedirectsChecks = val;
+ browser.storage.local.set({ sendTorRedirectsChecks })
+ console.log("sendTorRedirectsChecks: ", val)
+}
+
+let sendNormalCustomRedirects = [];
+const getSendNormalCustomRedirects = () => sendNormalCustomRedirects;
+function setSendNormalCustomRedirects(val) {
+ sendNormalCustomRedirects = val;
+ browser.storage.local.set({ sendNormalCustomRedirects })
+ console.log("sendNormalCustomRedirects: ", val)
+}
+
+let sendTorCustomRedirects = [];
+const getSendTorCustomRedirects = () => sendTorCustomRedirects;
+function setSendTorCustomRedirects(val) {
+ sendTorCustomRedirects = val;
+ browser.storage.local.set({ sendTorCustomRedirects })
+ console.log("sendTorCustomRedirects: ", val)
+}
+
+let disable;
+const getDisable = () => disable;
+function setDisable(val) {
+ disable = val;
+ browser.storage.local.set({ disableSendTarget: disable })
+}
+
+let protocol;
+const getProtocol = () => protocol;
+function setProtocol(val) {
+ protocol = val;
+ browser.storage.local.set({ sendTargetsProtocol: val })
+ console.log("sendTargetsProtocol: ", val)
+}
+
+function redirect(url, type, initiator) {
+
+ if (disable) return null;
+ if (initiator && ([...redirects.send.normal, ...sendNormalCustomRedirects].includes(initiator.origin) || targets.includes(initiator.host))) return null;
+ if (!targets.some((rx) => rx.test(url.href))) return null;
+
+ if (type != "main_frame") return null;
+
+ let instancesList;
+ if (protocol == 'normal') instancesList = [...sendNormalRedirectsChecks, ...sendNormalCustomRedirects];
+ if (protocol == 'tor') instancesList = [...sendTorRedirectsChecks, ...sendTorCustomRedirects];
+ if (instancesList.length === 0) return null;
+ let randomInstance = commonHelper.getRandomInstance(instancesList);
+
+ let pathName = url.pathname.replace(new RegExp(/@.*\/(?=video)/), "");
+
+ return `${randomInstance}${pathName}`;
+}
+
+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(
+ [
+ "disableSendTarget",
+ "sendTargetsRedirects",
+
+ "sendNormalRedirectsChecks",
+ "sendNormalCustomRedirects",
+
+ "sendTorRedirectsChecks",
+ "sendTorCustomRedirects",
+
+ "sendTargetsProtocol"
+ ],
+ r => {
+ disable = r.disableSendTarget ?? false;
+
+ protocol = r.sendTargetsProtocol ?? "normal";
+
+ if (r.sendTargetsRedirects) redirects = r.sendTargetsRedirects;
+
+ sendNormalRedirectsChecks = r.sendNormalRedirectsChecks ?? [...redirects.send.normal];
+ sendNormalCustomRedirects = r.sendNormalCustomRedirects ?? [];
+
+ sendTorRedirectsChecks = r.sendTorRedirectsChecks ?? [...redirects.send.tor];
+ sendTorCustomRedirects = r.sendTorCustomRedirects ?? [];
+
+ resolve();
+ }
+ )
+ });
+ });
+}
+
+export default {
+
+ getRedirects,
+ getCustomRedirects,
+ setRedirects,
+
+ getDisable,
+ setDisable,
+
+ getProtocol,
+ setProtocol,
+
+ getSendNormalRedirectsChecks,
+ setSendNormalRedirectsChecks,
+ getSendTorRedirectsChecks,
+ setSendTorRedirectsChecks,
+
+ getSendTorCustomRedirects,
+ setSendTorCustomRedirects,
+ getSendNormalCustomRedirects,
+ setSendNormalCustomRedirects,
+
+ redirect,
+ init,
+};
diff --git a/src/assets/javascripts/helpers/wikipedia.js b/src/assets/javascripts/helpers/wikipedia.js
index 299e6cde..12171625 100644
--- a/src/assets/javascripts/helpers/wikipedia.js
+++ b/src/assets/javascripts/helpers/wikipedia.js
@@ -2,7 +2,7 @@ window.browser = window.browser || window.chrome;
import commonHelper from './common.js'
-const targets = /^https?:\/\/.*wikipedia\.org\//
+const targets = /^https?:\/\/(.*\.|)wikipedia\.org/
let redirects = {
"wikiless": {