diff options
author | ManeraKai <manerakai@protonmail.com> | 2022-02-22 23:52:38 +0300 |
---|---|---|
committer | ManeraKai <manerakai@protonmail.com> | 2022-02-22 23:52:38 +0300 |
commit | 2570cd8d32eabe211616b2de80841a2ed29934b2 (patch) | |
tree | 50027b110a7e528ad6c8f2352fc4bdcebe05c253 /src/assets | |
parent | Added reddit tor support #32 (diff) | |
download | libredirect-2570cd8d32eabe211616b2de80841a2ed29934b2.zip |
Added wikipedia tor support #32
Diffstat (limited to 'src/assets')
-rw-r--r-- | src/assets/javascripts/helpers/instagram.js | 100 | ||||
-rw-r--r-- | src/assets/javascripts/helpers/twitter.js | 4 | ||||
-rw-r--r-- | src/assets/javascripts/helpers/wikipedia.js | 96 |
3 files changed, 148 insertions, 52 deletions
diff --git a/src/assets/javascripts/helpers/instagram.js b/src/assets/javascripts/helpers/instagram.js index 46051970..fc004e09 100644 --- a/src/assets/javascripts/helpers/instagram.js +++ b/src/assets/javascripts/helpers/instagram.js @@ -9,17 +9,8 @@ const targets = [ ]; let redirects = { "bibliogram": { - "normal": [ - "https://bibliogram.art", - "https://bibliogram.snopyta.org", - "https://bibliogram.pussthecat.org", - "https://bibliogram.1d4.us", - "https://insta.trom.tf", - "https://bib.riverside.rocks", - "https://bibliogram.esmailelbob.xyz", - "https://bib.actionsack.com", - "https://biblio.alefvanoon.xyz" - ] + "normal": [], + "tor": [] } }; const getRedirects = () => redirects; @@ -50,6 +41,14 @@ function setBibliogramNormalRedirectsChecks(val) { console.log("bibliogramNormalRedirectsChecks: ", val) } +let bibliogramTorRedirectsChecks; +const getBibliogramTorRedirectsChecks = () => bibliogramTorRedirectsChecks; +function setBibliogramTorRedirectsChecks(val) { + bibliogramTorRedirectsChecks = val; + browser.storage.local.set({ bibliogramTorRedirectsChecks }) + console.log("bibliogramTorRedirectsChecks: ", val) +} + let bibliogramNormalCustomRedirects = []; const getBibliogramNormalCustomRedirects = () => bibliogramNormalCustomRedirects; function setBibliogramNormalCustomRedirects(val) { @@ -58,6 +57,14 @@ function setBibliogramNormalCustomRedirects(val) { console.log("bibliogramNormalCustomRedirects: ", val) } +let bibliogramTorCustomRedirects = []; +const getBibliogramTorCustomRedirects = () => bibliogramTorCustomRedirects; +function setBibliogramTorCustomRedirects(val) { + bibliogramTorCustomRedirects = val; + browser.storage.local.set({ bibliogramTorCustomRedirects }) + console.log("bibliogramTorCustomRedirects: ", val) +} + const reservedPaths = [ "about", "explore", @@ -93,6 +100,14 @@ function setDisable(val) { browser.storage.local.set({ disableInstagram: disable }) } +let protocol; +const getprotocol = () => protocol; +function setProtocol(val) { + protocol = val; + browser.storage.local.set({ nitterProtocol: val }) + console.log("nitterProtocol: ", val) +} + function isInstagram(url, initiator) { if (disable) return false; if ( @@ -107,7 +122,10 @@ function redirect(url, type) { if (type !== "main_frame" || url.pathname.match(bypassPaths)) return 'CANCEL'; // Do not redirect /accounts, /embeds.js, or anything other than main_frame - let instancesList = [...bibliogramNormalRedirectsChecks, ...bibliogramNormalCustomRedirects]; + + let instancesList; + if (protocol == 'normal') instancesList = [...bibliogramNormalRedirectsChecks, ...bibliogramNormalCustomRedirects]; + else if (protocol == 'tor') instancesList = [...bibliogramTorRedirectsChecks, ...bibliogramTorCustomRedirects]; if (instancesList.length === 0) return null; let randomInstance = commonHelper.getRandomInstance(instancesList) @@ -120,24 +138,39 @@ function redirect(url, type) { async function init() { return new Promise((resolve) => { - browser.storage.local.get( - [ - "disableInstagram", - "instagramRedirects", - "bibliogramNormalRedirectsChecks", - "bibliogramNormalCustomRedirects", - ], - (result) => { - disable = result.disableInstagram ?? false; - - if (result.instagramRedirects) redirects = result.instagramRedirects - - bibliogramNormalRedirectsChecks = result.bibliogramNormalRedirectsChecks ?? [...redirects.bibliogram.normal]; - bibliogramNormalCustomRedirects = result.bibliogramNormalCustomRedirects ?? []; - - resolve(); - } - ) + fetch('/instances/data.json').then(response => response.text()).then(data => { + let dataJson = JSON.parse(data); + browser.storage.local.get( + [ + "disableInstagram", + "instagramRedirects", + + "bibliogramNormalRedirectsChecks", + "bibliogramTorRedirectsChecks", + + "bibliogramNormalCustomRedirects", + "bibliogramTorCustomRedirects", + "bibliogramProtocol" + ], + (result) => { + disable = result.disableInstagram ?? false; + + redirects.bibliogram = dataJson.bibliogram; + + if (result.instagramRedirects) redirects = result.instagramRedirects + + bibliogramNormalRedirectsChecks = result.bibliogramNormalRedirectsChecks ?? [...redirects.bibliogram.normal]; + bibliogramNormalCustomRedirects = result.bibliogramNormalCustomRedirects ?? []; + + bibliogramTorRedirectsChecks = result.bibliogramTorRedirectsChecks ?? [...redirects.bibliogram.tor]; + bibliogramTorCustomRedirects = result.bibliogramTorCustomRedirects ?? []; + + protocol = result.bibliogramProtocol ?? "normal"; + + resolve(); + } + ) + }) }) } @@ -149,11 +182,18 @@ export default { getDisable, setDisable, + getprotocol, + setProtocol, + getBibliogramNormalRedirectsChecks, setBibliogramNormalRedirectsChecks, + getBibliogramTorRedirectsChecks, + setBibliogramTorRedirectsChecks, getBibliogramNormalCustomRedirects, setBibliogramNormalCustomRedirects, + getBibliogramTorCustomRedirects, + setBibliogramTorCustomRedirects, isInstagram, diff --git a/src/assets/javascripts/helpers/twitter.js b/src/assets/javascripts/helpers/twitter.js index 4e0c4845..3edea7ac 100644 --- a/src/assets/javascripts/helpers/twitter.js +++ b/src/assets/javascripts/helpers/twitter.js @@ -149,6 +149,8 @@ async function init() { (result) => { disable = result.disableTwitter ?? false; + protocol = result.nitterProtocol ?? "normal"; + redirects.nitter = dataJson.nitter; if (result.twitterRedirects) redirects = result.twitterRedirects; @@ -158,8 +160,6 @@ async function init() { nitterTorRedirectsChecks = result.nitterTorRedirectsChecks ?? [...redirects.nitter.tor]; nitterTorCustomRedirects = result.nitterTorCustomRedirects ?? []; - protocol = result.nitterProtocol ?? "normal"; - resolve(); } ); diff --git a/src/assets/javascripts/helpers/wikipedia.js b/src/assets/javascripts/helpers/wikipedia.js index fc777bee..e27f80bc 100644 --- a/src/assets/javascripts/helpers/wikipedia.js +++ b/src/assets/javascripts/helpers/wikipedia.js @@ -21,10 +21,12 @@ const getRedirects = () => redirects; const getCustomRedirects = function () { return { "wikiless": { - "normal": [...wikilessNormalRedirectsChecks, ...wikilessNormalCustomRedirects] + "normal": [...wikilessNormalRedirectsChecks, ...wikilessNormalCustomRedirects], + "tor": [...wikilessTorRedirectsChecks, ...wikilessTorCustomRedirects] }, }; }; + function setRedirects(val) { redirects.wikiless = val; browser.storage.local.set({ wikipediaRedirects: redirects }) @@ -35,6 +37,13 @@ function setRedirects(val) { if (index !== -1) wikilessNormalRedirectsChecks.splice(index, 1); } setWikilessNormalRedirectsChecks(wikilessNormalRedirectsChecks); + + for (const item of wikilessTorRedirectsChecks) + if (!redirects.wikiless.normal.includes(item)) { + var index = wikilessTorRedirectsChecks.indexOf(item); + if (index !== -1) wikilessTorRedirectsChecks.splice(index, 1); + } + setWikilessTorRedirectsChecks(wikilessTorRedirectsChecks); } let disable; @@ -44,6 +53,15 @@ function setDisable(val) { browser.storage.local.set({ disableWikipedia: disable }) } +let protocol; +const getProtocol = () => protocol; +function setProtocol(val) { + protocol = val; + browser.storage.local.set({ wikilessProtocol: val }) + console.log("wikilessProtocol: ", val) +} + + let wikilessNormalRedirectsChecks; const getWikilessNormalRedirectsChecks = () => wikilessNormalRedirectsChecks; function setWikilessNormalRedirectsChecks(val) { @@ -52,6 +70,15 @@ function setWikilessNormalRedirectsChecks(val) { console.log("wikilessNormalRedirectsChecks: ", val) } +let wikilessTorRedirectsChecks; +const getWikilessTorRedirectsChecks = () => wikilessTorRedirectsChecks; +function setWikilessTorRedirectsChecks(val) { + wikilessTorRedirectsChecks = val; + browser.storage.local.set({ wikilessTorRedirectsChecks }) + console.log("wikilessTorRedirectsChecks: ", val) +} + + let wikilessNormalCustomRedirects = []; const getWikilessNormalCustomRedirects = () => wikilessNormalCustomRedirects; function setWikilessNormalCustomRedirects(val) { @@ -60,6 +87,14 @@ function setWikilessNormalCustomRedirects(val) { console.log("wikilessNormalCustomRedirects: ", val) } +let wikilessTorCustomRedirects = []; +const getWikilessTorCustomRedirects = () => wikilessTorCustomRedirects; +function setWikilessTorCustomRedirects(val) { + wikilessTorCustomRedirects = val; + browser.storage.local.set({ wikilessTorCustomRedirects }) + console.log("wikilessTorCustomRedirects: ", val) +} + function isWikipedia(url, initiator) { if (disable) return false; return targets.test(url.href); @@ -75,8 +110,9 @@ function redirect(url) { GETArguments.push([args[0], args[1]]); } } - - let instancesList = [...wikilessNormalRedirectsChecks, ...wikilessNormalCustomRedirects]; + let instancesList; + if (protocol == 'normal') instancesList = [...wikilessNormalRedirectsChecks, ...wikilessNormalCustomRedirects]; + else if (protocol == 'tor') instancesList = [...wikilessTorRedirectsChecks, ...wikilessTorCustomRedirects]; if (instancesList.length === 0) return null; let randomInstance = commonHelper.getRandomInstance(instancesList) @@ -100,23 +136,36 @@ function redirect(url) { async function init() { return new Promise((resolve) => { - browser.storage.local.get( - [ - "disableWikipedia", - "wikipediaRedirects", - "wikilessNormalRedirectsChecks", - "wikilessNormalCustomRedirects", - ], (result) => { - disable = result.disableWikipedia ?? false; - - if (result.wikipediaRedirects) redirects = result.wikipediaRedirects; - - wikilessNormalRedirectsChecks = result.wikilessNormalRedirectsChecks ?? [...redirects.wikiless.normal]; - wikilessNormalCustomRedirects = result.wikilessNormalCustomRedirects ?? []; - - resolve(); - } - ); + fetch('/instances/data.json').then(response => response.text()).then(data => { + let dataJson = JSON.parse(data); + browser.storage.local.get( + [ + "disableWikipedia", + "wikipediaRedirects", + "wikilessNormalRedirectsChecks", + "wikilessTorRedirectsChecks", + "wikilessNormalCustomRedirects", + "wikilessTorCustomRedirects", + "wikilessProtocol" + + ], (result) => { + disable = result.disableWikipedia ?? false; + + protocol = result.wikilessProtocol ?? "normal"; + + redirects.wikiless = dataJson.wikiless; + if (result.wikipediaRedirects) redirects = result.wikipediaRedirects; + + wikilessNormalRedirectsChecks = result.wikilessNormalRedirectsChecks ?? [...redirects.wikiless.normal]; + wikilessNormalCustomRedirects = result.wikilessNormalCustomRedirects ?? []; + + wikilessTorRedirectsChecks = result.wikilessTorRedirectsChecks ?? [...redirects.wikiless.tor]; + wikilessTorCustomRedirects = result.wikilessTorCustomRedirects ?? []; + + resolve(); + } + ); + }); }); } @@ -128,11 +177,18 @@ export default { setDisable, getDisable, + getProtocol, + setProtocol, + getWikilessNormalRedirectsChecks, setWikilessNormalRedirectsChecks, + getWikilessTorRedirectsChecks, + setWikilessTorRedirectsChecks, getWikilessNormalCustomRedirects, setWikilessNormalCustomRedirects, + getWikilessTorCustomRedirects, + setWikilessTorCustomRedirects, redirect, isWikipedia, |