diff options
Diffstat (limited to 'src/assets')
-rw-r--r-- | src/assets/images/send-icon.svg | 51 | ||||
-rw-r--r-- | src/assets/javascripts/helpers/sendTargets.js | 188 | ||||
-rw-r--r-- | src/assets/javascripts/helpers/wikipedia.js | 2 |
3 files changed, 240 insertions, 1 deletions
diff --git a/src/assets/images/send-icon.svg b/src/assets/images/send-icon.svg new file mode 100644 index 00000000..2ed80a06 --- /dev/null +++ b/src/assets/images/send-icon.svg @@ -0,0 +1,51 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + width="33.866665mm" + height="33.866665mm" + viewBox="0 0 33.866665 33.866665" + version="1.1" + id="svg898" + sodipodi:docname="send-icon.svg" + inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20)" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg"> + <defs + id="defs7" /> + <sodipodi:namedview + id="namedview5" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageshadow="2" + inkscape:pageopacity="0.0" + inkscape:pagecheckerboard="0" + inkscape:document-units="mm" + showgrid="false" + inkscape:zoom="2.6623698" + inkscape:cx="46.950653" + inkscape:cy="88.079425" + inkscape:window-width="1888" + inkscape:window-height="1060" + inkscape:window-x="32" + inkscape:window-y="0" + inkscape:window-maximized="1" + inkscape:current-layer="svg898" /> + <circle + style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:2.17791" + id="path1168" + cx="16.933332" + cy="16.933332" + r="16.933332" /> + <g + id="layer1" + transform="matrix(0.36395732,0,0,0.36395732,5.286709,5.2870656)"> + <path + id="cloud-upload" + d="m 64,34.286 a 17.033,17.033 0 0 1 -4.406,11.428 14.857,14.857 0 0 1 -10.558,4.572 h -2.179 v -6.857 h 2.179 a 8.004,8.004 0 0 0 5.468,-2.31 10.184,10.184 0 0 0 2.639,-6.833 11.442,11.442 0 0 0 -11.429,-11.429 c -0.377,0 -2.312,0.242 -3.49,0.394 A 1.136,1.136 0 0 1 41.003,22.487 L 40.537,21.13 A 14.103,14.103 0 0 0 28.821,11.498 13.666,13.666 0 0 0 14.091,28.277 l 0.489,2.087 a 1.143,1.143 0 0 1 -0.783,1.355 l -2.054,0.62 a 6.794,6.794 0 0 0 -4.886,6.518 4.604,4.604 0 0 0 0.947,2.808 5.539,5.539 0 0 0 4.089,1.764 h 5.25 v 6.857 h -5.25 A 12.236,12.236 0 0 1 2.213,45.634 11.506,11.506 0 0 1 0,38.857 13.573,13.573 0 0 1 6.944,26.973 19.51,19.51 0 0 1 6.857,25.143 20.563,20.563 0 0 1 45.844,16 18.307,18.307 0 0 1 64,34.286 Z M 32.923,32.123 a 1.143,1.143 0 0 0 -1.846,0 l -8.592,11.775 a 1.143,1.143 0 0 0 0.923,1.816 h 5.163 v 12.572 a 1.143,1.143 0 0 0 1.143,1.143 h 4.572 a 1.143,1.143 0 0 0 1.143,-1.143 V 45.714 h 5.163 a 1.143,1.143 0 0 0 0.923,-1.816 z" + stroke-width="2.286" + fill="#45a1ff" + fill-opacity="1" /> + </g> +</svg> 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": { |