diff options
author | ManeraKai <manerakai@protonmail.com> | 2022-03-10 10:30:23 +0300 |
---|---|---|
committer | ManeraKai <manerakai@protonmail.com> | 2022-03-10 10:30:23 +0300 |
commit | d3df133f4e9bf930179f700e93c2ec69058f1b44 (patch) | |
tree | 07a302ba8f83b491fa79a719c94398550c286b7c /src/assets/javascripts | |
parent | Merge branch 'master' of https://github.com/libredirect/libredirect (diff) | |
download | libredirect-d3df133f4e9bf930179f700e93c2ec69058f1b44.zip |
Added send, fixed a bug in #89
Diffstat (limited to 'src/assets/javascripts')
-rw-r--r-- | src/assets/javascripts/helpers/sendTargets.js | 188 | ||||
-rw-r--r-- | src/assets/javascripts/helpers/wikipedia.js | 2 |
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": { |