diff options
author | ManeraKai <manerakai@protonmail.com> | 2022-02-20 19:00:12 +0300 |
---|---|---|
committer | ManeraKai <manerakai@protonmail.com> | 2022-02-20 19:00:12 +0300 |
commit | 1a1e0c988cf6ada5e7c420c721fb54858cd0481c (patch) | |
tree | baa4170b3d50e0ab75709491583925e87bd272dc /src | |
parent | update instances (diff) | |
download | libredirect-1a1e0c988cf6ada5e7c420c721fb54858cd0481c.zip |
Completing on supporting tor #32
Diffstat (limited to 'src')
-rw-r--r-- | src/assets/javascripts/helpers/search.js | 5 | ||||
-rw-r--r-- | src/assets/javascripts/helpers/twitter.js | 2 | ||||
-rw-r--r-- | src/assets/javascripts/helpers/youtube/youtube.js | 179 | ||||
-rw-r--r-- | src/instances/data.json | 332 | ||||
-rw-r--r-- | src/instances/get_instances.py | 194 | ||||
-rw-r--r-- | src/pages/background/background.js | 10 |
6 files changed, 616 insertions, 106 deletions
diff --git a/src/assets/javascripts/helpers/search.js b/src/assets/javascripts/helpers/search.js index 01c47178..39bcdcba 100644 --- a/src/assets/javascripts/helpers/search.js +++ b/src/assets/javascripts/helpers/search.js @@ -3,7 +3,7 @@ window.browser = window.browser || window.chrome; import commonHelper from './common.js' const targets = [ - /https?:\/\/(www\.|maps\.|search\.|)google\.com(\/search\?q=..*|\/$)/, + /https?:\/\/(www\.|maps\.|search\.|)google\.com(\/search\?..*|\/$)/, ]; let redirects = { "searx": { @@ -132,7 +132,8 @@ let redirects = { "https://whooglesearch.net", "https://www.whooglesearch.ml", "https://whoogle.dcs0.hu" - ] + ], + "tor": [] }, }; const getRedirects = () => redirects; diff --git a/src/assets/javascripts/helpers/twitter.js b/src/assets/javascripts/helpers/twitter.js index f3511bf7..979ae0b9 100644 --- a/src/assets/javascripts/helpers/twitter.js +++ b/src/assets/javascripts/helpers/twitter.js @@ -96,7 +96,7 @@ function setRedirects(val) { redirects.nitter = val; browser.storage.sync.set({ twitterRedirects: redirects }) console.log("twitterRedirects:", val) - for (const item of nitterRedirectsChecks) + for (const item of nitterNormalRedirectsChecks) if (!redirects.nitter.normal.includes(item)) { var index = nitterRedirectsChecks.indexOf(item); if (index !== -1) nitterRedirectsChecks.splice(index, 1); diff --git a/src/assets/javascripts/helpers/youtube/youtube.js b/src/assets/javascripts/helpers/youtube/youtube.js index 6077124d..d5dfb032 100644 --- a/src/assets/javascripts/helpers/youtube/youtube.js +++ b/src/assets/javascripts/helpers/youtube/youtube.js @@ -18,29 +18,8 @@ const targets = [ ]; let redirects = { "invidious": { - "normal": [ - "https://yewtu.be", - "https://invidious.snopyta.org", - "https://vid.puffyan.us", - "https://invidious.kavin.rocks", - "https://invidio.xamh.de", - "https://inv.riverside.rocks", - "https://invidious-us.kavin.rocks", - "https://invidious.osi.kr", - "https://inv.cthd.icu", - "https://yt.artemislena.eu", - "https://youtube.076.ne.jp", - "https://invidious.namazso.eu" - ], - "tor": [ - "http://c7hqkpkpemu6e7emz5b4vyz7idjgdvgaaa3dyimmeojqbgpea3xqjoid.onion", - "http://w6ijuptxiku4xpnnaetxvnkc5vqcdu7mgns2u77qefoixi63vbvnpnqd.onion", - "http://kbjggqkzv65ivcqj6bumvp337z6264huv5kpkwuv6gu5yjiskvan7fad.onion", - "http://grwp24hodrefzvjjuccrkw3mjq4tzhaaq32amf33dzpmuxe7ilepcmad.onion", - "http://hpniueoejy4opn7bc4ftgazyqjoeqwlvh2uiku2xqku6zpoa4bf5ruid.onion", - "http://osbivz6guyeahrwp2lnwyjk2xos342h4ocsxyqrlaopqjuhwn2djiiyd.onion", - "http://u2cvlit75owumwpy4dj2hsmvkq7nvrclkpht7xgyye2pyoxhpmclkrad.onion" - ] + "normal": [], + "tor": [] }, "piped": { "normal": [ @@ -55,7 +34,7 @@ let redirects = { const getRedirects = () => redirects; -const getCustomRedirects = function () { +function getCustomRedirects() { return { "invidious": { "normal": [...invidiousNormalRedirectsChecks, ...invidiousNormalCustomRedirects], @@ -141,9 +120,6 @@ function setPipedTorCustomRedirects(val) { console.log("pipedTorCustomRedirects: ", val) } - - - function setPipedRedirects(val) { redirects.piped = val; browser.storage.sync.set({ youtubeRedirects: redirects }) @@ -418,8 +394,9 @@ function addUrlParams(url) { ...redirects.invidious.normal, ...redirects.invidious.tor, ...invidiousNormalCustomRedirects, - ...invidiousTorCustomRedirects, - ].includes(protocolHost)) { + ...invidiousTorCustomRedirects + ].includes(protocolHost) + ) { if (!url.searchParams.has("dark_mode") && theme != "DEFAULT") { url.searchParams.append("dark_mode", theme); isChanged = true; @@ -461,7 +438,8 @@ function addUrlParams(url) { ...redirects.piped.tor, ...pipedNormalCustomRedirects, ...pipedTorCustomRedirects, - ].includes(protocolHost)) { + ].includes(protocolHost) + ) { if (!url.searchParams.has("theme") && theme != "DEFAULT") { url.searchParams.append("theme", theme); @@ -493,76 +471,81 @@ function invidiousInitCookies(tabId) { ); } + async function init() { return new Promise((resolve) => { - browser.storage.sync.get( - [ - "invidiousAlwaysProxy", - "invidiousVideoQuality", - "youtubeTheme", - "persistInvidiousPrefs", - "disableYoutube", - "OnlyEmbeddedVideo", - "youtubeVolume", - "invidiousPlayerStyle", - "invidiousSubtitles", - "youtubeAutoplay", - "youtubeRedirects", - "youtubeFrontend", - - "invidiousNormalRedirectsChecks", - "invidiousNormalCustomRedirects", - - "invidiousTorRedirectsChecks", - "invidiousTorCustomRedirects", - - "pipedNormalRedirectsChecks", - "pipedNormalCustomRedirects", - - "pipedTorRedirectsChecks", - "pipedTorCustomRedirects", - "alwaysusePreferred", - "freetubeFrontend", - - "youtubeProtocol", - ], - (result) => { - if (result.youtubeRedirects) redirects = result.youtubeRedirects; - - disable = result.disableYoutube ?? false; - protocol = result.youtubeProtocol ?? 'normal'; - frontend = result.youtubeFrontend ?? 'piped'; - freetubeFrontend = result.freetubeFrontend ?? 'invidious'; - - theme = result.youtubeTheme ?? 'DEFAULT'; - volume = result.youtubeVolume ?? '--'; - autoplay = result.youtubeAutoplay ?? 'DEFAULT'; - - invidiousAlwaysProxy = result.invidiousAlwaysProxy ?? 'DEFAULT'; - OnlyEmbeddedVideo = result.OnlyEmbeddedVideo ?? 'both'; - invidiousVideoQuality = result.invidiousVideoQuality ?? 'DEFAULT'; - invidiousPlayerStyle = result.invidiousPlayerStyle ?? 'DEFAULT'; - invidiousSubtitles = result.invidiousSubtitles || ''; - - invidiousNormalRedirectsChecks = result.invidiousNormalRedirectsChecks ?? [...redirects.invidious.normal]; - invidiousNormalCustomRedirects = result.invidiousNormalCustomRedirects ?? []; - - invidiousTorRedirectsChecks = result.invidiousTorRedirectsChecks ?? [...redirects.invidious.tor]; - invidiousTorCustomRedirects = result.invidiousTorCustomRedirects ?? []; - - pipedNormalRedirectsChecks = result.pipedNormalRedirectsChecks ?? [...redirects.piped.normal]; - pipedNormalCustomRedirects = result.pipedNormalCustomRedirects ?? []; - - pipedTorRedirectsChecks = result.pipedTorRedirectsChecks ?? [...redirects.piped.tor]; - pipedTorCustomRedirects = result.pipedTorCustomRedirects ?? []; - - persistInvidiousPrefs = result.persistInvidiousPrefs ?? false; - - alwaysusePreferred = result.alwaysusePreferred ?? true; - - resolve(); - }); - + fetch('/instances/data.json').then(response => response.text()).then(data => { + let dataJson = JSON.parse(data); + browser.storage.sync.get( + [ + "invidiousAlwaysProxy", + "invidiousVideoQuality", + "youtubeTheme", + "persistInvidiousPrefs", + "disableYoutube", + "OnlyEmbeddedVideo", + "youtubeVolume", + "invidiousPlayerStyle", + "invidiousSubtitles", + "youtubeAutoplay", + "youtubeRedirects", + "youtubeFrontend", + + "invidiousNormalRedirectsChecks", + "invidiousNormalCustomRedirects", + + "invidiousTorRedirectsChecks", + "invidiousTorCustomRedirects", + + "pipedNormalRedirectsChecks", + "pipedNormalCustomRedirects", + + "pipedTorRedirectsChecks", + "pipedTorCustomRedirects", + "alwaysusePreferred", + "freetubeFrontend", + + "youtubeProtocol", + ], + (result) => { + redirects.invidious = dataJson.invidious; + if (result.youtubeRedirects) redirects = result.youtubeRedirects; + + + disable = result.disableYoutube ?? false; + protocol = result.youtubeProtocol ?? 'normal'; + frontend = result.youtubeFrontend ?? 'piped'; + freetubeFrontend = result.freetubeFrontend ?? 'invidious'; + + theme = result.youtubeTheme ?? 'DEFAULT'; + volume = result.youtubeVolume ?? '--'; + autoplay = result.youtubeAutoplay ?? 'DEFAULT'; + + invidiousAlwaysProxy = result.invidiousAlwaysProxy ?? 'DEFAULT'; + OnlyEmbeddedVideo = result.OnlyEmbeddedVideo ?? 'both'; + invidiousVideoQuality = result.invidiousVideoQuality ?? 'DEFAULT'; + invidiousPlayerStyle = result.invidiousPlayerStyle ?? 'DEFAULT'; + invidiousSubtitles = result.invidiousSubtitles || ''; + + invidiousNormalRedirectsChecks = result.invidiousNormalRedirectsChecks ?? [...redirects.invidious.normal]; + invidiousNormalCustomRedirects = result.invidiousNormalCustomRedirects ?? []; + + invidiousTorRedirectsChecks = result.invidiousTorRedirectsChecks ?? [...redirects.invidious.tor]; + invidiousTorCustomRedirects = result.invidiousTorCustomRedirects ?? []; + + pipedNormalRedirectsChecks = result.pipedNormalRedirectsChecks ?? [...redirects.piped.normal]; + pipedNormalCustomRedirects = result.pipedNormalCustomRedirects ?? []; + + pipedTorRedirectsChecks = result.pipedTorRedirectsChecks ?? [...redirects.piped.tor]; + pipedTorCustomRedirects = result.pipedTorCustomRedirects ?? []; + + persistInvidiousPrefs = result.persistInvidiousPrefs ?? false; + + alwaysusePreferred = result.alwaysusePreferred ?? true; + + resolve(); + }); + }); }) } diff --git a/src/instances/data.json b/src/instances/data.json new file mode 100644 index 00000000..abaf2488 --- /dev/null +++ b/src/instances/data.json @@ -0,0 +1,332 @@ +{ + "invidious": { + "normal": [ + "https://yewtu.be", + "https://invidious.snopyta.org", + "https://vid.puffyan.us", + "https://invidious.kavin.rocks", + "https://invidio.xamh.de", + "https://inv.riverside.rocks", + "https://invidious-us.kavin.rocks", + "https://invidious.osi.kr", + "https://tube.cthd.icu", + "https://invidious.flokinet.to", + "https://yt.artemislena.eu", + "https://invidious.privacy.gd", + "https://youtube.076.ne.jp", + "https://invidious.namazso.eu" + ], + "tor": [ + "http://c7hqkpkpemu6e7emz5b4vyz7idjgdvgaaa3dyimmeojqbgpea3xqjoid.onion", + "http://w6ijuptxiku4xpnnaetxvnkc5vqcdu7mgns2u77qefoixi63vbvnpnqd.onion", + "http://kbjggqkzv65ivcqj6bumvp337z6264huv5kpkwuv6gu5yjiskvan7fad.onion", + "http://grwp24hodrefzvjjuccrkw3mjq4tzhaaq32amf33dzpmuxe7ilepcmad.onion", + "http://hpniueoejy4opn7bc4ftgazyqjoeqwlvh2uiku2xqku6zpoa4bf5ruid.onion", + "http://osbivz6guyeahrwp2lnwyjk2xos342h4ocsxyqrlaopqjuhwn2djiiyd.onion", + "http://u2cvlit75owumwpy4dj2hsmvkq7nvrclkpht7xgyye2pyoxhpmclkrad.onion", + "http://2rorw2w54tr7jkasn53l5swbjnbvz3ubebhswscnc54yac6gmkxaeeqd.onion" + ] + }, + "nitter": { + "normal": [ + "https://nitter.net", + "https://nitter.42l.fr", + "https://nitter.pussthecat.org", + "https://nitter.nixnet.services", + "https://nitter.fdn.fr", + "https://nitter.1d4.us", + "https://nitter.kavin.rocks", + "https://nitter.unixfox.eu", + "https://nitter.domain.glass", + "https://nitter.eu", + "https://nitter.namazso.eu", + "https://nitter.actionsack.com", + "https://birdsite.xanny.family", + "https://nitter.hu", + "https://twitr.gq", + "https://nitter.moomoo.me", + "https://nittereu.moomoo.me", + "https://bird.trom.tf", + "https://nitter.it", + "https://twitter.censors.us", + "https://nitter.grimneko.de", + "https://nitter.alefvanoon.xyz", + "https://n.hyperborea.cloud", + "https://nitter.ca", + "https://twitter.076.ne.jp", + "https://nitter.mstdn.social", + "https://nitter.fly.dev", + "https://notabird.site", + "https://nitter.weiler.rocks", + "https://nitter.silkky.cloud", + "https://nitter.sethforprivacy.com", + "https://nttr.stream", + "https://nitter.cutelab.space", + "https://nitter.nl", + "https://nitter.mint.lgbt", + "https://nitter.tokhmi.xyz", + "https://nitter.bus-hit.me", + "https://fuckthesacklers.network", + "https://nitter.govt.land", + "https://nitter.datatunnel.xyz", + "https://nitter.esmailelbob.xyz", + "https://tw.artemislena.eu", + "https://de.nttr.stream", + "https://nitter.winscloud.net", + "https://nitter.tiekoetter.com" + ], + "tor": [ + "http://3nzoldnxplag42gqjs23xvghtzf6t6yzssrtytnntc6ppc7xxuoneoad.onion", + "http://nitter.l4qlywnpwqsluw65ts7md3khrivpirse744un3x7mlskqauz5pyuzgqd.onion", + "http://nitter7bryz3jv7e3uekphigvmoyoem4al3fynerxkj22dmoxoq553qd.onion", + "http://npf37k3mtzwxreiw52ccs5ay4e6qt2fkcs2ndieurdyn2cuzzsfyfvid.onion", + "http://nitter.v6vgyqpa7yefkorazmg5d5fimstmvm2vtbirt6676mt7qmllrcnwycqd.onion", + "http://i23nv6w3juvzlw32xzoxcqzktegd4i4fu3nmnc2ewv4ggiu4ledwklad.onion", + "http://26oq3gioiwcmfojub37nz5gzbkdiqp7fue5kvye7d4txv4ny6fb4wwid.onion", + "http://vfaomgh4jxphpbdfizkm5gbtjahmei234giqj4facbwhrfjtcldauqad.onion", + "http://iwgu3cv7ywf3gssed5iqtavmrlszgsxazkmwwnt4h2kdait75thdyrqd.onion", + "http://erpnncl5nhyji3c32dcfmztujtl3xaddqb457jsbkulq24zqq7ifdgad.onion", + "http://ckzuw5misyahmg7j5t5xwwuj3bwy62jfolxyux4brfflramzsvvd3syd.onion", + "http://jebqj47jgxleaiosfcxfibx2xdahjettuydlxbg64azd4khsxv6kawid.onion", + "http://nttr2iupbb6fazdpr2rgbooon2tzbbsvvkagkgkwohhodjzj43stxhad.onion", + "http://nitraeju2mipeziu2wtcrqsxg7h62v5y4eqgwi75uprynkj74gevvuqd.onion", + "http://nitter.lqs5fjmajyp7rvp4qvyubwofzi6d4imua7vs237rkc4m5qogitqwrgyd.onion", + "http://ibsboeui2im5o7dxnik3s5yghufumgy5abevtij5nbizequfpu4qi4ad.onion" + ] + }, + "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" + ] + }, + "teddit": { + "normal": [ + "https://teddit.net", + "https://teddit.ggc-project.de", + "https://teddit.kavin.rocks", + "https://teddit.zaggy.nl", + "https://teddit.namazso.eu", + "https://teddit.nautolan.racing", + "https://teddit.tinfoil-hat.net", + "https://teddit.domain.glass", + "https://snoo.ioens.is", + "https://teddit.httpjames.space", + "https://teddit.alefvanoon.xyz", + "https://incogsnoo.com", + "https://teddit.pussthecat.org", + "https://reddit.lol", + "https://teddit.sethforprivacy.com", + "https://teddit.totaldarkness.net", + "https://teddit.adminforge.de", + "https://teddit.bus-hit.me" + ], + "tor": [ + "http://teddit4w6cmzmj5kimhfcavs7yo5s7alszvsi2khqutqtlaanpcftfyd.onion", + "http://snoo.ioensistjs7wd746zluwixvojbbkxhr37lepdvwtdfeav673o64iflqd.onion", + "http://ibarajztopxnuhabfu7fg6gbudynxofbnmvis3ltj6lfx47b6fhrd5qd.onion", + "http://tedditfyn6idalzso5wam5qd3kdtxoljjhbrbbx34q2xkcisvshuytad.onion", + "http://dawtyi5e2cfyfmoht4izmczi42aa2zwh6wi34zwvc6rzf2acpxhrcrad.onion", + "http://qtpvyiaqhmwccxwzsqubd23xhmmrt75tdyw35kp43w4hvamsgl3x27ad.onion" + ] + }, + "wikiless": { + "normal": [ + "https://wikiless.org", + "https://wikiless.alefvanoon.xyz", + "https://wikiless.sethforprivacy.com", + "https://wiki.604kph.xyz" + ], + "tor": [ + "http://dj2tbh2nqfxyfmvq33cjmhuw7nb6am7thzd3zsjvizeqf374fixbrxyd.onion" + ] + }, + "scribe": { + "normal": [ + "https://scribe.rip", + "https://scribe.nixnet.services", + "https://scribe.citizen4.eu", + "https://scribe.bus-hit.me" + ] + }, + "simplyTranslate": { + "normal": [ + "https://simplytranslate.org", + "https://st.alefvanoon.xyz", + "https://translate.josias.dev", + "https://translate.namazso.eu", + "https://translate.riverside.rocks", + "https://manerakai.asuscomm.com:447", + "https://translate.bus-hit.me", + "https://simplytranslate.pussthecat.org", + "https://translate.northboot.xyz", + "https://translate.tiekoetter.com" + ], + "tor": [ + "http://fyng2tsmzmvxmojzbbwmfnsn2lrcyftf4cw6rk5j2v2huliazud3fjid.onion", + "http://xxtbwyb5z5bdvy2f6l2yquu5qilgkjeewno4qfknvb3lkg3nmoklitid.onion" + ] + }, + "lingva": { + "normal": [ + "https://lingva.ml", + "https://translate.alefvanoon.xyz", + "https://translate.igna.rocks", + "https://lingva.pussthecat.org", + "https://translate.datatunnel.xyz", + "https://lingva.esmailelbob.xyz" + ] + }, + "searx": { + "normal": [ + "https://anon.sx", + "https://darmarit.org/searx", + "https://dynabyte.ca", + "https://engo.mint.lgbt", + "https://jsearch.pw", + "https://metasearch.nl", + "https://nibblehole.com", + "https://northboot.xyz", + "https://paulgo.io", + "https://procurx.pt", + "https://s.zhaocloud.net", + "https://search.antonkling.se", + "https://search.asynchronousexchange.com", + "https://search.biboumail.fr", + "https://search.bus-hit.me", + "https://search.disroot.org", + "https://search.ethibox.fr", + "https://search.jpope.org", + "https://search.mdosch.de", + "https://search.neet.works", + "https://search.ononoki.org", + "https://search.snopyta.org", + "https://search.st8.at", + "https://search.stinpriza.org", + "https://search.trom.tf", + "https://search.zdechov.net", + "https://search.zzls.xyz", + "https://searx-private-search.de", + "https://searx.bar", + "https://searx.be", + "https://searx.bissisoft.com", + "https://searx.divided-by-zero.eu", + "https://searx.dresden.network", + "https://searx.ebnar.xyz", + "https://searx.esmailelbob.xyz", + "https://searx.everdot.org", + "https://searx.fmac.xyz", + "https://searx.fossencdi.org", + "https://searx.gnous.eu", + "https://searx.gnu.style", + "https://searx.hardwired.link", + "https://searx.lavatech.top", + "https://searx.mastodontech.de", + "https://searx.mha.fi", + "https://searx.mxchange.org", + "https://searx.nakhan.net", + "https://searx.netzspielplatz.de", + "https://searx.nevrlands.de", + "https://searx.ninja", + "https://searx.nixnet.services", + "https://searx.openhoofd.nl", + "https://searx.operationtulip.com", + "https://searx.org", + "https://searx.prvcy.eu", + "https://searx.pwoss.org", + "https://searx.rasp.fr", + "https://searx.roughs.ru", + "https://searx.ru", + "https://searx.run", + "https://searx.sadblog.xyz", + "https://searx.semipvt.com", + "https://searx.slash-dev.de", + "https://searx.solusar.de", + "https://searx.sp-codes.de", + "https://searx.stuehieyr.com", + "https://searx.theanonymouse.xyz", + "https://searx.thegreenwebfoundation.org", + "https://searx.tiekoetter.com", + "https://searx.tk", + "https://searx.tux.land", + "https://searx.tuxcloud.net", + "https://searx.tyil.nl", + "https://searx.vitanetworks.link", + "https://searx.webheberg.info", + "https://searx.xkek.net", + "https://searx.xyz", + "https://searx.zackptg5.com", + "https://searx.zapashcanon.fr", + "https://searx.zecircle.xyz", + "https://serx.cf", + "https://spot.ecloud.global", + "https://suche.dasnetzundich.de", + "https://suche.uferwerk.org", + "https://swag.pw", + "https://sx.catgirl.cloud", + "https://sx.fedi.tech", + "https://timdor.noip.me/searx", + "https://trovu.komun.org", + "https://www.gruble.de", + "https://www.webrats.xyz", + "https://xeek.com", + "https://searx.roflcopter.fr" + ], + "tor": [ + "http://3afisqjw2rxm6z7mmstyt5rx75qfqrgxnkzftknbp2vhipr2nrmrjdyd.onion", + "http://searxbgetrkiwxhdwi6svpgh7eotopqyxhbqiokrwzg7dcte44t36kyd.onion", + "http://suche.xyzco456vwisukfg.onion", + "http://w5rl6wsd7mzj4bdkbuqvzidet5osdsm5jhg2f7nvfidakfq5exda5wid.onion", + "http://4n53nafyi77iplnbrpmxnp3x4exbswwxigujaxy3b37fvr7bvlopxeyd.onion", + "http://z34ambyi6makk6ta7ksog2sljly2ctt2sa3apekb7wkllk72sxecdtad.onion", + "http://search.4bkxscubgtxwvhpe.onion", + "http://juy4e6eicawzdrz7.onion", + "http://z5vawdol25vrmorm4yydmohsd4u6rdoj2sylvoi3e3nqvxkvpqul7bqd.onion", + "http://zbuc3bbzbfdqqo2x46repx2ddajbha6fpsjeeptjhhhhzji3zopxdqyd.onion", + "http://f4qfqajszpx5b7itzxt6mb7kj4ktpgbdq7lq6xaiqyqx6a7de3epptad.onion", + "http://searx.cwuzdtzlubq5uual.onion", + "http://rq2w52kyrif3xpfihkgjnhqm3a5aqhoikpv72z3drpjglfzc2wr5z4yd.onion", + "http://searx3aolosaf3urwnhpynlhuokqsgz47si4pzz5hvb7uuzyjncl2tid.onion", + "http://searx.bsbvtqi5oq2cqzn32zt4cr2f2z2rwots3dq7gmdcnlyqoxko2wx6reqd.onion" + ], + "i2p": [ + "http://ransack.i2p", + "http://mqamk4cfykdvhw5kjez2gnvse56gmnqxn7vkvvbuor4k4j2lbbnq.b32.i2p" + ] + }, + "whoogle": { + "normal": [ + "https://gowogle.voring.me", + "https://s.alefvanoon.xyz", + "https://search.albony.xyz", + "https://search.garudalinux.org", + "https://search.sethforprivacy.com", + "https://whoogle.fossho.st", + "https://whooglesearch.net", + "https://www.whooglesearch.ml", + "https://whoogle.dcs0.hu", + "https://whoogle.esmailelbob.xyz" + ] + }, + "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" + ] + } +} \ No newline at end of file diff --git a/src/instances/get_instances.py b/src/instances/get_instances.py new file mode 100644 index 00000000..0929bd22 --- /dev/null +++ b/src/instances/get_instances.py @@ -0,0 +1,194 @@ +# Note: Run this script from the root of the repo + +import requests +import json +from urllib.parse import urlparse +from bs4 import BeautifulSoup + +mightyList = {} + + +def get_host_name(link): + url = urlparse(link) + return url.netloc + + +# Invidious +r = requests.get('https://api.invidious.io/instances.json') +rJson = json.loads(r.text) +invidiousList = {} +invidiousList['normal'] = [] +invidiousList['tor'] = [] +for instance in rJson: + if instance[1]['type'] == 'https': + invidiousList['normal'].append(instance[1]['uri']) + elif instance[1]['type'] == 'tor': + invidiousList['tor'].append(instance[1]['uri']) +mightyList['invidious'] = invidiousList +print('fetched Invidious') + + +# Nitter +r = requests.get('https://github.com/zedeus/nitter/wiki/Instances') +soup = BeautifulSoup(r.text, 'html.parser') +markdownBody = soup.find(class_='markdown-body') +tables = markdownBody.find_all('table') +tables.pop(3) +tables.pop(3) +nitterList = {} +nitterList['normal'] = [] +nitterList['tor'] = [] +for table in tables: + tbody = table.find('tbody') + trs = tbody.find_all('tr') + for tr in trs: + td = tr.find('td') + a = td.find('a') + url = a.contents[0] + if url.endswith('.onion'): + url = 'http://' + url + nitterList['tor'].append(url) + else: + url = 'https://' + url + nitterList['normal'].append(url) +mightyList['nitter'] = nitterList +print('fetched Nitter') + +# Bibliogram +r = requests.get('https://bibliogram.art/api/instances') +rJson = json.loads(r.text) +bibliogramList = {} +bibliogramList['normal'] = [] +for item in rJson['data']: + bibliogramList['normal'].append(item['address']) +mightyList['bibliogram'] = bibliogramList +print('fetched Bibliogram') + + +# Teddit +r = requests.get( + 'https://codeberg.org/teddit/teddit/raw/branch/main/instances.json') +rJson = json.loads(r.text) +tedditList = {} +tedditList['normal'] = [] +tedditList['tor'] = [] +for item in rJson: + url = item['url'] + if url != '': + tedditList['normal'].append(url) + if 'tor' in item: + onion = item['tor'] + if onion != '': + tedditList['tor'].append(onion) + +mightyList['teddit'] = tedditList +print('fetched Teddit') + + +# Wikiless +r = requests.get('https://wikiless.org/instances.json') +rJson = json.loads(r.text) +wikilessList = {} +wikilessList['normal'] = [] +wikilessList['tor'] = [] +for item in rJson: + if item.endswith('.onion'): + wikilessList['tor'].append('http://' + item) + else: + wikilessList['normal'].append('https://' + item) +mightyList['wikiless'] = wikilessList +print('fetched Wikiless') + +# Scribe +r = requests.get( + 'https://git.sr.ht/~edwardloveall/scribe/blob/main/docs/instances.json') +rJson = json.loads(r.text) +scribeList = {} +scribeList['normal'] = [] +for item in rJson: + scribeList['normal'].append(item) +mightyList['scribe'] = scribeList +print('fetched Scribe') + + +# SimplyTranslate +r = requests.get('https://simple-web.org/instances/simplytranslate') +simplyTranslateList = {} +simplyTranslateList['normal'] = [] +for item in r.text.strip().split('\n'): + simplyTranslateList['normal'].append('https://' + item) + +r = requests.get('https://simple-web.org/instances/simplytranslate_onion') +simplyTranslateList['tor'] = [] +for item in r.text.strip().split('\n'): + simplyTranslateList['tor'].append('http://' + item) + +mightyList['simplyTranslate'] = simplyTranslateList +print('fetched SimplyTranslate') + +# LinvgaTranslate +r = requests.get( + 'https://raw.githubusercontent.com/TheDavidDelta/lingva-translate/main/instances.json') +rJson = json.loads(r.text) +lingvaList = {} +lingvaList['normal'] = [] +for item in rJson: + lingvaList['normal'].append(item) +mightyList['lingva'] = lingvaList +print('fetched LinvgaTranslate') + + +# SearX +r = requests.get('https://searx.space/data/instances.json') +rJson = json.loads(r.text) +searxList = {} +searxList['normal'] = [] +searxList['tor'] = [] +searxList['i2p'] = [] +for item in rJson['instances'].keys(): + item = item[:-1] + if item.endswith('.onion'): + searxList['tor'].append(item) + elif item.endswith('.i2p'): + searxList['i2p'].append(item) + else: + searxList['normal'].append(item) +mightyList['searx'] = searxList +print('fetched SearX') + + +# Whoogle +r = requests.get( + 'https://raw.githubusercontent.com/benbusby/whoogle-search/main/misc/instances.txt') +tmpList = r.text.strip().split('\n') +whoogleList = {} +whoogleList['normal'] = [] +for item in tmpList: + whoogleList['normal'].append(item) +mightyList['whoogle'] = whoogleList +print('fetched Whoogle') + + +# Rimgo +r = requests.get( + 'https://codeberg.org/video-prize-ranch/rimgo/raw/branch/main/instances.json') +rJson = json.loads(r.text) +rimgoList = {} +rimgoList['normal'] = [] +rimgoList['tor'] = [] + +for item in rJson: + if item.endswith('.onion'): + rimgoList['tor'].append('http://' + item) + else: + rimgoList['normal'].append('https://' + item) +mightyList['rimgo'] = rimgoList +print('fetched Rimgo') + + +# Writing to file +json_object = json.dumps(mightyList, ensure_ascii=False, indent=2) +with open('src/instances/data.json', 'w') as outfile: + outfile.write(json_object) +# print(json_object) +print('wrote instances/data.json') diff --git a/src/pages/background/background.js b/src/pages/background/background.js index 69d027bb..d8351d5e 100644 --- a/src/pages/background/background.js +++ b/src/pages/background/background.js @@ -15,21 +15,21 @@ import exceptionsHelper from "../../assets/javascripts/helpers/exceptions.js"; window.browser = window.browser || window.chrome; -function wholeInit() { +async function wholeInit() { + youtubeHelper.init() + twitterHelper.init() + instagramHelper.init() mapsHelper.init() searchHelper.init() translateHelper.init() - instagramHelper.init() mediumHelper.init() redditHelper.init() - twitterHelper.init() wikipediaHelper.init() - youtubeHelper.init() imgurHelper.init() tiktokHelper.init() exceptionsHelper.init() -} +} wholeInit(); browser.storage.onChanged.addListener(wholeInit); |