aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/assets/javascripts/helpers/search.js5
-rw-r--r--src/assets/javascripts/helpers/twitter.js2
-rw-r--r--src/assets/javascripts/helpers/youtube/youtube.js147
-rw-r--r--src/instances/data.json332
-rw-r--r--src/instances/get_instances.py194
-rw-r--r--src/pages/background/background.js10
6 files changed, 600 insertions, 90 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",
+ 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",
+ "invidiousNormalRedirectsChecks",
+ "invidiousNormalCustomRedirects",
- "invidiousTorRedirectsChecks",
- "invidiousTorCustomRedirects",
+ "invidiousTorRedirectsChecks",
+ "invidiousTorCustomRedirects",
- "pipedNormalRedirectsChecks",
- "pipedNormalCustomRedirects",
+ "pipedNormalRedirectsChecks",
+ "pipedNormalCustomRedirects",
- "pipedTorRedirectsChecks",
- "pipedTorCustomRedirects",
- "alwaysusePreferred",
- "freetubeFrontend",
+ "pipedTorRedirectsChecks",
+ "pipedTorCustomRedirects",
+ "alwaysusePreferred",
+ "freetubeFrontend",
- "youtubeProtocol",
- ],
- (result) => {
- if (result.youtubeRedirects) redirects = result.youtubeRedirects;
+ "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';
+ disable = result.disableYoutube ?? false;
+ protocol = result.youtubeProtocol ?? 'normal';
+ frontend = result.youtubeFrontend ?? 'piped';
+ freetubeFrontend = result.freetubeFrontend ?? 'invidious';
- invidiousAlwaysProxy = result.invidiousAlwaysProxy ?? 'DEFAULT';
- OnlyEmbeddedVideo = result.OnlyEmbeddedVideo ?? 'both';
- invidiousVideoQuality = result.invidiousVideoQuality ?? 'DEFAULT';
- invidiousPlayerStyle = result.invidiousPlayerStyle ?? 'DEFAULT';
- invidiousSubtitles = result.invidiousSubtitles || '';
+ theme = result.youtubeTheme ?? 'DEFAULT';
+ volume = result.youtubeVolume ?? '--';
+ autoplay = result.youtubeAutoplay ?? 'DEFAULT';
- invidiousNormalRedirectsChecks = result.invidiousNormalRedirectsChecks ?? [...redirects.invidious.normal];
- invidiousNormalCustomRedirects = result.invidiousNormalCustomRedirects ?? [];
+ invidiousAlwaysProxy = result.invidiousAlwaysProxy ?? 'DEFAULT';
+ OnlyEmbeddedVideo = result.OnlyEmbeddedVideo ?? 'both';
+ invidiousVideoQuality = result.invidiousVideoQuality ?? 'DEFAULT';
+ invidiousPlayerStyle = result.invidiousPlayerStyle ?? 'DEFAULT';
+ invidiousSubtitles = result.invidiousSubtitles || '';
- invidiousTorRedirectsChecks = result.invidiousTorRedirectsChecks ?? [...redirects.invidious.tor];
- invidiousTorCustomRedirects = result.invidiousTorCustomRedirects ?? [];
+ invidiousNormalRedirectsChecks = result.invidiousNormalRedirectsChecks ?? [...redirects.invidious.normal];
+ invidiousNormalCustomRedirects = result.invidiousNormalCustomRedirects ?? [];
- pipedNormalRedirectsChecks = result.pipedNormalRedirectsChecks ?? [...redirects.piped.normal];
- pipedNormalCustomRedirects = result.pipedNormalCustomRedirects ?? [];
+ invidiousTorRedirectsChecks = result.invidiousTorRedirectsChecks ?? [...redirects.invidious.tor];
+ invidiousTorCustomRedirects = result.invidiousTorCustomRedirects ?? [];
- pipedTorRedirectsChecks = result.pipedTorRedirectsChecks ?? [...redirects.piped.tor];
- pipedTorCustomRedirects = result.pipedTorCustomRedirects ?? [];
+ pipedNormalRedirectsChecks = result.pipedNormalRedirectsChecks ?? [...redirects.piped.normal];
+ pipedNormalCustomRedirects = result.pipedNormalCustomRedirects ?? [];
- persistInvidiousPrefs = result.persistInvidiousPrefs ?? false;
+ pipedTorRedirectsChecks = result.pipedTorRedirectsChecks ?? [...redirects.piped.tor];
+ pipedTorCustomRedirects = result.pipedTorCustomRedirects ?? [];
- alwaysusePreferred = result.alwaysusePreferred ?? true;
+ persistInvidiousPrefs = result.persistInvidiousPrefs ?? false;
- resolve();
- });
+ 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);