diff options
author | ManeraKai <manerakai@protonmail.com> | 2022-02-23 20:21:19 +0300 |
---|---|---|
committer | ManeraKai <manerakai@protonmail.com> | 2022-02-23 20:21:19 +0300 |
commit | c5ef434b2835905ba5e21153411e2c2ec4c1f770 (patch) | |
tree | 1ccc315bddb452dafd9230aeb5174c56a9229207 /src/assets | |
parent | Added translate tor support #32 (diff) | |
download | libredirect-c5ef434b2835905ba5e21153411e2c2ec4c1f770.zip |
Added imgur, tiktok tor support #32
Diffstat (limited to 'src/assets')
-rw-r--r-- | src/assets/javascripts/helpers/imgur.js | 113 | ||||
-rw-r--r-- | src/assets/javascripts/helpers/instagram.js | 4 | ||||
-rw-r--r-- | src/assets/javascripts/helpers/tiktok.js | 99 | ||||
-rw-r--r-- | src/assets/javascripts/helpers/twitter.js | 8 |
4 files changed, 162 insertions, 62 deletions
diff --git a/src/assets/javascripts/helpers/imgur.js b/src/assets/javascripts/helpers/imgur.js index f54ec52c..560c396d 100644 --- a/src/assets/javascripts/helpers/imgur.js +++ b/src/assets/javascripts/helpers/imgur.js @@ -3,23 +3,13 @@ window.browser = window.browser || window.chrome; import commonHelper from './common.js' const targets = [ - /^https?:\/\/(i|).?imgur.com/ + /^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" - ], - "tor": [ - "http://l4d4owboqr6xcmd6lf64gbegel62kbudu3x3jnldz2mx6mhn3bsv3zyd.onion", - "http://jx3dpcwedpzu2mh54obk5gvl64i2ln7pt5mrzd75s4jnndkqwzaim7ad.onion" - ] + "normal": [], + "tor": [] } } @@ -28,7 +18,8 @@ const getRedirects = () => redirects; const getCustomRedirects = function () { return { "rimgo": { - "normal": [...rimgoNormalRedirectsChecks, ...rimgoNormalCustomRedirects] + "normal": [...rimgoNormalRedirectsChecks, ...rimgoNormalCustomRedirects], + "tor": [...rimgoTorRedirectsChecks, ...rimgoTorCustomRedirects] }, }; }; @@ -43,6 +34,13 @@ function setRedirects(val) { if (index !== -1) rimgoNormalRedirectsChecks.splice(index, 1); } setRimgoNormalRedirectsChecks(rimgoNormalRedirectsChecks); + + for (const item of rimgoTorRedirectsChecks) + if (!redirects.rimgo.normal.includes(item)) { + var index = rimgoTorRedirectsChecks.indexOf(item); + if (index !== -1) rimgoTorRedirectsChecks.splice(index, 1); + } + setRimgoTorRedirectsChecks(rimgoTorRedirectsChecks); } let rimgoNormalRedirectsChecks; @@ -53,6 +51,14 @@ function setRimgoNormalRedirectsChecks(val) { console.log("rimgoNormalRedirectsChecks: ", val) } +let rimgoTorRedirectsChecks; +const getRimgoTorRedirectsChecks = () => rimgoTorRedirectsChecks; +function setRimgoTorRedirectsChecks(val) { + rimgoTorRedirectsChecks = val; + browser.storage.local.set({ rimgoTorRedirectsChecks }) + console.log("rimgoTorRedirectsChecks: ", val) +} + let rimgoNormalCustomRedirects = []; const getRimgoNormalCustomRedirects = () => rimgoNormalCustomRedirects; function setRimgoNormalCustomRedirects(val) { @@ -61,6 +67,14 @@ function setRimgoNormalCustomRedirects(val) { console.log("rimgoNormalCustomRedirects: ", val) } +let rimgoTorCustomRedirects = []; +const getRimgoTorCustomRedirects = () => rimgoTorCustomRedirects; +function setRimgoTorCustomRedirects(val) { + rimgoTorCustomRedirects = val; + browser.storage.local.set({ rimgoTorCustomRedirects }) + console.log("rimgoTorCustomRedirects: ", val) +} + let disable; const getDisable = () => disable; function setDisable(val) { @@ -68,6 +82,14 @@ function setDisable(val) { browser.storage.local.set({ disableImgur: disable }) } +let protocol; +const getProtocol = () => protocol; +function setProtocol(val) { + protocol = val; + browser.storage.local.set({ imgurProtocol: val }) + console.log("imgurProtocol: ", val) +} + function isImgur(url, initiator) { if (disable) return false; if (url.pathname == "/") return false; @@ -85,9 +107,11 @@ function redirect(url, type) { // https://imgur.com/gallery/cTRwaJU // https://i.imgur.com/CFSQArP.jpeg - if (type != "main_frame" && "sub_frame" && "xmlhttprequest" && "other") return null; + if (type != "main_frame" && type != "sub_frame" && type != "xmlhttprequest" && type != "other") return null; - let instancesList = [...rimgoNormalRedirectsChecks, ...rimgoNormalCustomRedirects]; + let instancesList; + if (protocol == 'normal') instancesList = [...rimgoNormalRedirectsChecks, ...rimgoNormalCustomRedirects]; + if (protocol == 'tor') instancesList = [...rimgoTorRedirectsChecks, ...rimgoTorCustomRedirects]; if (instancesList.length === 0) return null; let randomInstance = commonHelper.getRandomInstance(instancesList) @@ -96,24 +120,38 @@ function redirect(url, type) { async function init() { return new Promise((resolve) => { - browser.storage.local.get( - [ - "disableImgur", - "imgurRedirects", - "rimgoNormalRedirectsChecks", - "rimgoNormalCustomRedirects", - ], - (result) => { - disable = result.disableImgur ?? false; - - if (result.imgurRedirects) redirects = result.imgurRedirects; - - rimgoNormalRedirectsChecks = result.rimgoNormalRedirectsChecks ?? [...redirects.rimgo.normal]; - rimgoNormalCustomRedirects = result.rimgoNormalCustomRedirects ?? []; - - resolve(); - } - ) + fetch('/instances/data.json').then(response => response.text()).then(data => { + let dataJson = JSON.parse(data); + browser.storage.local.get( + [ + "disableImgur", + "imgurRedirects", + + "rimgoNormalRedirectsChecks", + "rimgoNormalCustomRedirects", + "rimgoTorRedirectsChecks", + "rimgoTorCustomRedirects", + + "imgurProtocol", + ], + (result) => { + disable = result.disableImgur ?? false; + + protocol = result.imgurProtocol ?? "normal"; + + redirects.rimgo = dataJson.rimgo; + if (result.imgurRedirects) redirects = result.imgurRedirects; + + rimgoNormalRedirectsChecks = result.rimgoNormalRedirectsChecks ?? [...redirects.rimgo.normal]; + rimgoNormalCustomRedirects = result.rimgoNormalCustomRedirects ?? []; + + rimgoTorRedirectsChecks = result.rimgoTorRedirectsChecks ?? [...redirects.rimgo.tor]; + rimgoTorCustomRedirects = result.rimgoTorCustomRedirects ?? []; + + resolve(); + } + ) + }); }); } @@ -125,11 +163,18 @@ export default { getDisable, setDisable, + getProtocol, + setProtocol, + getRimgoNormalRedirectsChecks, setRimgoNormalRedirectsChecks, + getRimgoTorRedirectsChecks, + setRimgoTorRedirectsChecks, getRimgoNormalCustomRedirects, setRimgoNormalCustomRedirects, + getRimgoTorCustomRedirects, + setRimgoTorCustomRedirects, redirect, isImgur, diff --git a/src/assets/javascripts/helpers/instagram.js b/src/assets/javascripts/helpers/instagram.js index 3145fb65..9aeeebc0 100644 --- a/src/assets/javascripts/helpers/instagram.js +++ b/src/assets/javascripts/helpers/instagram.js @@ -150,7 +150,7 @@ async function init() { "bibliogramNormalCustomRedirects", "bibliogramTorCustomRedirects", - "bibliogramProtocol" + "instagramProtocol" ], (result) => { disable = result.disableInstagram ?? false; @@ -165,7 +165,7 @@ async function init() { bibliogramTorRedirectsChecks = result.bibliogramTorRedirectsChecks ?? [...redirects.bibliogram.tor]; bibliogramTorCustomRedirects = result.bibliogramTorCustomRedirects ?? []; - protocol = result.bibliogramProtocol ?? "normal"; + protocol = result.instagramProtocol ?? "normal"; resolve(); } diff --git a/src/assets/javascripts/helpers/tiktok.js b/src/assets/javascripts/helpers/tiktok.js index 1ad35be9..fe0c31e0 100644 --- a/src/assets/javascripts/helpers/tiktok.js +++ b/src/assets/javascripts/helpers/tiktok.js @@ -9,8 +9,9 @@ const targets = [ let redirects = { "proxiTok": { "normal": [ - "https://proxitok.herokuapp.com", - ] + "https://proxitok.herokuapp.com" + ], + "tor": [] } } @@ -33,6 +34,13 @@ function setRedirects(val) { if (index !== -1) proxiTokNormalRedirectsChecks.splice(index, 1); } setProxiTokNormalRedirectsChecks(proxiTokNormalRedirectsChecks); + + for (const item of proxiTokTorRedirectsChecks) + if (!redirects.proxiTok.normal.includes(item)) { + var index = proxiTokTorRedirectsChecks.indexOf(item); + if (index !== -1) proxiTokTorRedirectsChecks.splice(index, 1); + } + setProxiTokTorRedirectsChecks(proxiTokTorRedirectsChecks); } let proxiTokNormalRedirectsChecks; @@ -43,6 +51,14 @@ function setProxiTokNormalRedirectsChecks(val) { console.log("proxiTokNormalRedirectsChecks: ", val) } +let proxiTokTorRedirectsChecks; +const getProxiTokTorRedirectsChecks = () => proxiTokTorRedirectsChecks; +function setProxiTokTorRedirectsChecks(val) { + proxiTokTorRedirectsChecks = val; + browser.storage.local.set({ proxiTokTorRedirectsChecks }) + console.log("proxiTokTorRedirectsChecks: ", val) +} + let proxiTokNormalCustomRedirects = []; const getProxiTokNormalCustomRedirects = () => proxiTokNormalCustomRedirects; function setProxiTokNormalCustomRedirects(val) { @@ -51,6 +67,14 @@ function setProxiTokNormalCustomRedirects(val) { console.log("proxiTokNormalCustomRedirects: ", val) } +let proxiTokTorCustomRedirects = []; +const getProxiTokTorCustomRedirects = () => proxiTokTorCustomRedirects; +function setProxiTokTorCustomRedirects(val) { + proxiTokTorCustomRedirects = val; + browser.storage.local.set({ proxiTokTorCustomRedirects }) + console.log("proxiTokTorCustomRedirects: ", val) +} + let disable; const getDisable = () => disable; function setDisable(val) { @@ -58,6 +82,14 @@ function setDisable(val) { browser.storage.local.set({ disableTiktok: disable }) } +let protocol; +const getProtocol = () => protocol; +function setProtocol(val) { + protocol = val; + browser.storage.local.set({ tiktokProtocol: val }) + console.log("tiktokProtocol: ", val) +} + function isTiktok(url, initiator) { if (disable) return false; if (initiator && ([...redirects.proxiTok.normal, ...proxiTokNormalCustomRedirects].includes(initiator.origin) || targets.includes(initiator.host))) return false; @@ -70,7 +102,9 @@ function redirect(url, type) { if (type != "main_frame" && "sub_frame" && "xmlhttprequest") return null; - let instancesList = [...proxiTokNormalRedirectsChecks, ...proxiTokNormalCustomRedirects]; + let instancesList; + if (protocol == 'normal') instancesList = [...proxiTokNormalRedirectsChecks, ...proxiTokNormalCustomRedirects]; + if (protocol == 'tor') instancesList = [...proxiTokTorRedirectsChecks, ...proxiTokTorCustomRedirects]; if (instancesList.length === 0) return null; let randomInstance = commonHelper.getRandomInstance(instancesList); @@ -81,25 +115,39 @@ function redirect(url, type) { async function init() { return new Promise((resolve) => { - browser.storage.local.get( - [ - "disableTiktok", - "tiktokRedirects", - "proxiTokNormalRedirectsChecks", - "proxiTokNormalCustomRedirects", - ], - (result) => { - disable = result.disableTiktok ?? false; - - if (result.tiktokRedirects) redirects = result.tiktokRedirects; - - proxiTokNormalRedirectsChecks = result.proxiTokNormalRedirectsChecks ?? [...redirects.proxiTok.normal]; - proxiTokNormalCustomRedirects = result.proxiTokNormalCustomRedirects ?? []; - - resolve(); - } - ) - }) + fetch('/instances/data.json').then(response => response.text()).then(data => { + let dataJson = JSON.parse(data); + browser.storage.local.get( + [ + "disableTiktok", + "tiktokRedirects", + + "proxiTokNormalRedirectsChecks", + "proxiTokNormalCustomRedirects", + + "proxiTokTorRedirectsChecks", + "proxiTokTorCustomRedirects", + + "tiktokProtocol" + ], + (result) => { + disable = result.disableTiktok ?? false; + + protocol = result.tiktokProtocol ?? "normal"; + + if (result.tiktokRedirects) redirects = result.tiktokRedirects; + + proxiTokNormalRedirectsChecks = result.proxiTokNormalRedirectsChecks ?? [...redirects.proxiTok.normal]; + proxiTokNormalCustomRedirects = result.proxiTokNormalCustomRedirects ?? []; + + proxiTokTorRedirectsChecks = result.proxiTokTorRedirectsChecks ?? [...redirects.proxiTok.tor]; + proxiTokTorCustomRedirects = result.proxiTokTorCustomRedirects ?? []; + + resolve(); + } + ) + }); + }); } export default { @@ -111,9 +159,16 @@ export default { getDisable, setDisable, + getProtocol, + setProtocol, + getProxiTokNormalRedirectsChecks, setProxiTokNormalRedirectsChecks, + getProxiTokTorRedirectsChecks, + setProxiTokTorRedirectsChecks, + getProxiTokTorCustomRedirects, + setProxiTokTorCustomRedirects, getProxiTokNormalCustomRedirects, setProxiTokNormalCustomRedirects, diff --git a/src/assets/javascripts/helpers/twitter.js b/src/assets/javascripts/helpers/twitter.js index a1b9979b..3757edc4 100644 --- a/src/assets/javascripts/helpers/twitter.js +++ b/src/assets/javascripts/helpers/twitter.js @@ -91,8 +91,8 @@ let protocol; const getProtocol = () => protocol; function setProtocol(val) { protocol = val; - browser.storage.local.set({ nitterProtocol: val }) - console.log("nitterProtocol: ", val) + browser.storage.local.set({ twitterProtocol: val }) + console.log("twitterProtocol: ", val) } function isTwitter(url, initiator) { @@ -144,12 +144,12 @@ async function init() { "nitterNormalCustomRedirects", "nitterTorRedirectsChecks", "nitterTorCustomRedirects", - "nitterProtocol", + "twitterProtocol", ], (result) => { disable = result.disableTwitter ?? false; - protocol = result.nitterProtocol ?? "normal"; + protocol = result.twitterProtocol ?? "normal"; redirects.nitter = dataJson.nitter; if (result.twitterRedirects) redirects = result.twitterRedirects; |