diff options
author | Edward <101938856+EdwardLangdon@users.noreply.github.com> | 2022-10-09 18:40:39 +0530 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-10-09 18:40:39 +0530 |
commit | 488c8c7c8b6b3431aed56c7eb1bc394fc8b6a321 (patch) | |
tree | 5e7d60bb0f818f0c37ab26babe127b26dd6baad7 /src/instances | |
parent | Update LibreDirect messages pt_BR 07-29-2022 (diff) | |
parent | Updated instances (diff) | |
download | libredirect-488c8c7c8b6b3431aed56c7eb1bc394fc8b6a321.zip |
Merge branch 'master' into patch-1
Diffstat (limited to 'src/instances')
-rw-r--r-- | src/instances/beatbump.json | 4 | ||||
-rw-r--r-- | src/instances/bibliogram.json | 6 | ||||
-rw-r--r-- | src/instances/blacklist.json | 73 | ||||
-rw-r--r-- | src/instances/cloudtube.json | 4 | ||||
-rw-r--r-- | src/instances/data.json | 718 | ||||
-rw-r--r-- | src/instances/facil.json | 2 | ||||
-rw-r--r-- | src/instances/get_instances.py | 657 | ||||
-rw-r--r-- | src/instances/neuters.json | 2 |
8 files changed, 712 insertions, 754 deletions
diff --git a/src/instances/beatbump.json b/src/instances/beatbump.json index 4c7f65a6..c5c78123 100644 --- a/src/instances/beatbump.json +++ b/src/instances/beatbump.json @@ -1,6 +1,6 @@ { - "normal": ["https://beatbump.ml"], - "tor": [], + "clearnet": ["https://beatbump.ml", "https://beatbump.esmailelbob.xyz"], + "tor": ["http://beatbump.lqs5fjmajyp7rvp4qvyubwofzi6d4imua7vs237rkc4m5qogitqwrgyd.onion"], "i2p": [], "loki": [] } diff --git a/src/instances/bibliogram.json b/src/instances/bibliogram.json new file mode 100644 index 00000000..b08aa7a0 --- /dev/null +++ b/src/instances/bibliogram.json @@ -0,0 +1,6 @@ +{ + "clearnet": ["https://bibliogram.1d4.us", "https://bibliogram.froth.zone", "https://ig.tokhmi.xyz", "https://ig.beparanoid.de", "https://bibliogram.priv.pw"], + "tor": [], + "i2p": [], + "loki": [] +} diff --git a/src/instances/blacklist.json b/src/instances/blacklist.json index 5819fb7d..8bf43ebf 100644 --- a/src/instances/blacklist.json +++ b/src/instances/blacklist.json @@ -1,56 +1,99 @@ { "cloudflare": [ "https://invidious.kavin.rocks", + "https://invidious.rhyshl.live", "https://piped.kavin.rocks", "https://piped.tokhmi.xyz", "https://piped.moomoo.me", - "https://piped.syncpundit.com", "https://piped.mha.fi", - "https://piped.shimul.me", - "https://pipedus.palash.dev", + "https://de-piped.shimul.me", + "https://watch.whatever.social", + "https://piped.garudalinux.org", + "https://y.rivo.lol", "https://nitter.domain.glass", "https://birdsite.xanny.family", - "https://nitter.moomoo.me", "https://notabird.site", "https://fuckthesacklers.network", "https://nitter.winscloud.net", "https://twtr.bch.bar", "https://twitter.dr460nf1r3.org", "https://nitter.garudalinux.org", - "https://nitter.wef.lol", "https://nitter.catalyst.sx", "https://nitter.fprivacy.com", - "https://bib.actionsack.com", + "https://read.whatever.social", + "https://nitter.rawbit.ninja", + "https://nitter.privacytools.io", + "https://nitter.sneed.network", + "https://n.sneed.network", + "https://nitter.twei.space", + "https://nitter.d420.de", "https://libreddit.domain.glass", "https://r.nf", - "https://libreddit.flux.industries", - "https://lr.oversold.host", "https://libreddit.hu", - "https://lr.stilic.ml", "https://reddi.tk", "https://r.walkx.org", - "https://libreddit.yonalee.eu", - "https://libreddit.winscloud.net", "https://r.ahwx.org", "https://reddit.dr460nf1r3.org", "https://libreddit.encrypted-data.xyz", "https://libreddit.eu.org", + "https://libreddit.cachyos.org", + "https://futureddit.gq", + "https://libreddit.freedit.eu", "https://teddit.domain.glass", "https://teddit.httpjames.space", "https://teddit.encrypted-data.xyz", "https://teddit.garudalinux.org", "https://tedd.it", + "https://wiki.privacytools.io", + "https://teddit.rawbit.ninja", "https://wiki.604kph.xyz", - "https://searx.org", + "https://wiki.privacytools.io", + "https://wikiless.rawbit.ninja", + "https://scribe.rawbit.ninja", + "https://lingva.garudalinux.org", + "https://translate.dr460nf1r3.org", + "https://libretranslate.com", "https://searx.run", - "https://search.albony.xyz", + "https://searx.org", "https://search.garudalinux.org", "https://search.dr460nf1r3.org", "https://search.wef.lol", "https://i.actionsack.com", - "https://rimgo.encrypted-data.xyz" + "https://rimgo.encrypted-data.xyz", + "https://beatbump.ml", + "https://listen.whatever.social" ], "authenticate": [ - "https://nitter.nixnet.services" + "https://nitter:nitter@nitter.nixnet.services" + ], + "offline": [ + "https://invidious.rhyshl.live", + "https://proxitok.odyssey346.dev", + "https://nhanh.cloud", + "https://ntr.odyssey346.dev", + "https://futureddit.gq", + "https://teddit.ggc-project.de", + "https://teddit.froth.zone", + "https://teddit.tokhmi.xyz", + "https://wiki.privacytools.io", + "https://quetre.odyssey346.dev", + "https://st.odyssey346.dev", + "https://translate.projectsegfau.lt", + "https://jsearch.pw", + "https://searx.gnu.style", + "https://searx.semipvt.com", + "https://etsi.me", + "https://search.chemicals-in-the-water.eu", + "https://search.zzls.xyz", + "https://searx.ericaftereric.top", + "https://searx.fmac.xyz", + "https://www.webrats.xyz", + "https://gowogle.voring.me", + "https://whoogle.esmailelbob.xyz", + "https://search.wef.lol", + "https://i.bcow.xyz", + "https://lbry.bcow.xyz", + "https://beatbump.ml", + "https://bw.odyssey346.dev" ] } \ No newline at end of file diff --git a/src/instances/cloudtube.json b/src/instances/cloudtube.json index 402adc39..8742d09c 100644 --- a/src/instances/cloudtube.json +++ b/src/instances/cloudtube.json @@ -1,6 +1,6 @@ { - "normal": ["https://tube.cadence.moe", "https://yt.beparanoid.de"], - "tor": ["http://yt.prnoid54e44a4bduq5due64jkk7wcnkxcp5kv3juncm7veptjcqudgyd.onion"], + "clearnet": ["https://tube.cadence.moe"], + "tor": [], "i2p": [], "loki": [] } diff --git a/src/instances/data.json b/src/instances/data.json index a532260f..a5a7177e 100644 --- a/src/instances/data.json +++ b/src/instances/data.json @@ -1,86 +1,110 @@ { "invidious": { - "normal": [ + "clearnet": [ "https://yewtu.be", "https://vid.puffyan.us", "https://invidious.snopyta.org", "https://invidious.kavin.rocks", "https://inv.riverside.rocks", - "https://invidious.osi.kr", + "https://invidio.xamh.de", "https://y.com.sb", "https://yt.artemislena.eu", - "https://invidious.flokinet.to", "https://invidious.sethforprivacy.com", "https://invidious.tiekoetter.com", + "https://invidious.flokinet.to", "https://inv.bp.projectsegfau.lt", - "https://invidious.projectsegfau.lt", "https://inv.vern.cc", "https://invidious.nerdvpn.de", + "https://invidious.projectsegfau.lt", + "https://invidious.rhyshl.live", + "https://inv.privacy.com.de", "https://invidious.slipfox.xyz", - "https://youtube.076.ne.jp", "https://invidious.esmailelbob.xyz", - "https://invidious.weblibre.org", + "https://youtube.076.ne.jp", "https://invidious.namazso.eu" ], "tor": [ - "http://c7hqkpkpemu6e7emz5b4vyz7idjgdvgaaa3dyimmeojqbgpea3xqjoid.onion", "http://w6ijuptxiku4xpnnaetxvnkc5vqcdu7mgns2u77qefoixi63vbvnpnqd.onion", - "http://kbjggqkzv65ivcqj6bumvp337z6264huv5kpkwuv6gu5yjiskvan7fad.onion", + "http://c7hqkpkpemu6e7emz5b4vyz7idjgdvgaaa3dyimmeojqbgpea3xqjoid.onion", "http://grwp24hodrefzvjjuccrkw3mjq4tzhaaq32amf33dzpmuxe7ilepcmad.onion", "http://osbivz6guyeahrwp2lnwyjk2xos342h4ocsxyqrlaopqjuhwn2djiiyd.onion", "http://u2cvlit75owumwpy4dj2hsmvkq7nvrclkpht7xgyye2pyoxhpmclkrad.onion", "http://euxxcnhsynwmfidvhjf6uzptsmh4dipkmgdmcmxxuo7tunp3ad2jrwyd.onion", - "http://invidious.lqs5fjmajyp7rvp4qvyubwofzi6d4imua7vs237rkc4m5qogitqwrgyd.onion", - "http://inv.vernccvbvyi5qhfzyqengccj7lkove6bjot2xhh5kajhwvidqafczrad.onion" + "http://invidious.esmail5pdn24shtvieloeedh7ehz3nrwcdivnfhfcedl7gf4kwddhkqd.onion", + "http://inv.vernccvbvyi5qhfzyqengccj7lkove6bjot2xhh5kajhwvidqafczrad.onion", + "http://am74vkcrjp2d5v36lcdqgsj2m6x36tbrkhsruoegwfcizzabnfgf5zyd.onion", + "http://ng27owmagn5amdm7l5s3rsqxwscl5ynppnis5dqcasogkyxcfqn7psid.onion", + "http://kbjggqkzv65ivcqj6bumvp337z6264huv5kpkwuv6gu5yjiskvan7fad.onion" + ], + "i2p": [ + "http://verni6dr4qxjgjumnvesxerh5rvhv6oy5ddeibaqy5d7tgbiiyfa.b32.i2p" ], - "i2p": [], "loki": [] }, "piped": { - "normal": [ + "clearnet": [ "https://piped.kavin.rocks", "https://piped.tokhmi.xyz", "https://piped.moomoo.me", - "https://il.ax", - "https://piped.syncpundit.com", "https://piped.mha.fi", - "https://piped.shimul.me", + "https://de-piped.shimul.me", "https://pipedus.palash.dev", + "https://watch.whatever.social", + "https://piped.garudalinux.org", + "https://y.rivo.lol", "https://yt.jae.fi", "https://piped.mint.lgbt", - "https://piped.privacy.com.de", - "https://piped.esmailelbob.xyz" - ], - "tor": [ - "http://piped2bbch4xslbl2ckr6k62q56kon56ffowxaqzy42ai22a4sash3ad.onion" + "https://il.ax", + "https://piped.esmailelbob.xyz", + "https://piped.projectsegfau.lt", + "https://piped.privacydev.net", + "https://piped.smnz.de", + "https://piped.adminforge.de", + "https://watch.whatevertinfoil.de", + "https://piped.qdi.fi" ], + "tor": [], "i2p": [], "loki": [] }, "pipedMaterial": { - "normal": [ - "https://piped-material.১.net", - "https://piped-material.ftp.sh", - "https://piped-staging.ftp.sh", - "https://ui.piped.১.net" + "clearnet": [ + "https://piped-material.xn--17b.net", + "https://piped-material.ftp.sh" + ], + "tor": [], + "i2p": [], + "loki": [] + }, + "cloudtube": { + "clearnet": [ + "https://tube.cadence.moe" ], "tor": [], "i2p": [], "loki": [] }, "proxiTok": { - "normal": [ - "https://proxitok.herokuapp.com", + "clearnet": [ + "https://proxitok.pabloferreiro.es", "https://proxitok.pussthecat.org", + "https://tok.habedieeh.re", + "https://proxitok.esmailelbob.xyz", + "https://proxitok.dhusch.de", "https://proxitok.privacydev.net", - "https://tok.habedieeh.re" + "https://proxitok.odyssey346.dev", + "https://tok.artemislena.eu", + "https://tok.adminforge.de", + "https://proxitok.manasiwibi.com" + ], + "tor": [ + "http://vywqfflneajejuhg7o5iklqvzemu2fcdrb3gtkvnyqsho6qin5svdsad.onion" ], - "tor": [], "i2p": [], "loki": [] }, "send": { - "normal": [ + "clearnet": [ "https://send.vis.ee", "https://send.zcyph.cc", "https://send.turingpoint.de", @@ -104,11 +128,11 @@ "loki": [] }, "nitter": { - "normal": [ + "clearnet": [ "https://nitter.net", - "https://nitter.42l.fr", + "https://nitter.lacontrevoie.fr", "https://nitter.pussthecat.org", - "https://nitter.nixnet.services", + "https://nitter:nitter@nitter.nixnet.services", "https://nitter.fdn.fr", "https://nitter.1d4.us", "https://nitter.kavin.rocks", @@ -122,7 +146,6 @@ "https://nitter.it", "https://twitter.censors.us", "https://nitter.grimneko.de", - "https://n.hyperborea.cloud", "https://nitter.ca", "https://twitter.076.ne.jp", "https://nitter.fly.dev", @@ -137,14 +160,11 @@ "https://fuckthesacklers.network", "https://nitter.esmailelbob.xyz", "https://tw.artemislena.eu", - "https://de.nttr.stream", "https://nitter.winscloud.net", "https://nitter.tiekoetter.com", "https://nitter.spaceint.fr", "https://twtr.bch.bar", "https://nitter.privacy.com.de", - "https://nitter.mastodon.pro", - "https://nitter.notraxx.ch", "https://nitter.poast.org", "https://nitter.bird.froth.zone", "https://nitter.dcs0.hu", @@ -154,13 +174,11 @@ "https://n.ramle.be", "https://nitter.cz", "https://nitter.privacydev.net", + "https://nitter.evil.site", "https://tweet.lambda.dance", - "https://nitter.ebnar.xyz", "https://nitter.kylrth.com", "https://nitter.foss.wtf", "https://nitter.priv.pw", - "https://nt.vern.cc", - "https://nitter.wef.lol", "https://nitter.tokhmi.xyz", "https://nitter.catalyst.sx", "https://unofficialbird.com", @@ -173,15 +191,31 @@ "https://nederland.unofficialbird.com", "https://uk.unofficialbird.com", "https://n.l5.ca", - "https://nitter.slipfox.xyz" + "https://nitter.slipfox.xyz", + "https://nitter.soopy.moe", + "https://nitter.qwik.space", + "https://read.whatever.social", + "https://nitter.rawbit.ninja", + "https://nt.vern.cc", + "https://ntr.odyssey346.dev", + "https://nitter.ir", + "https://nitter.privacytools.io", + "https://nitter.sneed.network", + "https://n.sneed.network", + "https://nitter.manasiwibi.com", + "https://nitter.smnz.de", + "https://nitter.twei.space", + "https://nitter.inpt.fr", + "https://nitter.d420.de", + "https://nitter.caioalonso.com", + "https://nitter.at", + "https://nitter.drivet.xyz", + "https://nitter.pw", + "https://nitter.nicfab.eu" ], "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", @@ -190,7 +224,7 @@ "http://jebqj47jgxleaiosfcxfibx2xdahjettuydlxbg64azd4khsxv6kawid.onion", "http://nttr2iupbb6fazdpr2rgbooon2tzbbsvvkagkgkwohhodjzj43stxhad.onion", "http://nitraeju2mipeziu2wtcrqsxg7h62v5y4eqgwi75uprynkj74gevvuqd.onion", - "http://nitter.lqs5fjmajyp7rvp4qvyubwofzi6d4imua7vs237rkc4m5qogitqwrgyd.onion", + "http://nitter.esmail5pdn24shtvieloeedh7ehz3nrwcdivnfhfcedl7gf4kwddhkqd.onion", "http://ibsboeui2im5o7dxnik3s5yghufumgy5abevtij5nbizequfpu4qi4ad.onion", "http://ec5nvbycpfa5k6ro77blxgkyrzbkv7uy6r5cngcbkadtjj2733nm3uyd.onion", "http://twitter.ap3jtgssd7qn4vfoa62gi2ijddoblslbeuw5dan3xt7myvqpura5i4qd.onion", @@ -200,123 +234,98 @@ "http://nitterqdyumlovt7tjqpdjrluitgmtpa53qq3idlpgoe4kxo7gs3xvad.onion", "http://nitter.privpw3tndpkw6pnp3g727zfgfdzbu3k6a7chv226s3xymv2p4eiuqyd.onion", "http://aaaaaxx74hbzeibageieowryhsqvimbdiitfkfe47tvgawkwkjh3coqd.onion", - "http://wiio4sgs4247brk7hj6qck2jxnvldwfdbguigc5ivpxrsegnliyfvuqd.onion" + "http://wiio4sgs4247brk7hj6qck2jxnvldwfdbguigc5ivpxrsegnliyfvuqd.onion", + "http://qwikxx2erhx6qrymued6ox2qkf2yeogjwypqvzoif4fqkljixasr6oid.onion", + "http://4g47cxugkohbweao2x66nnxxfoe3k7gdfzxej537nhdbwr522sbjxeqd.onion", + "http://nt.vernccvbvyi5qhfzyqengccj7lkove6bjot2xhh5kajhwvidqafczrad.onion", + "http://tw.lpoaj7z2zkajuhgnlltpeqh3zyq7wk2iyeggqaduhgxhyajtdt2j7wad.onion", + "http://r2eqimhkvxboaltbdsectoo3hkf476pyemsdykclexzajbfx5v6ojlyd.onion", + "http://li7snkj6oituazbkr5clmilccwwumhd2dntbhttxomy4dfakeeoar4qd.onion", + "http://a5xyidyppowvblric6k6nixgf2eqwnb7zzeaarj7slqbv7tb6ip5t3ad.onion" ], - "i2p": [], - "loki": [] + "i2p": [ + "http://axd6uavsstsrvstva4mzlzh4ct76rc6zdug3nxdgeitrzczhzf4q.b32.i2p", + "http://u6ikd6zndl3c4dsdq4mmujpntgeevdk5qzkfb57r4tnfeccrn2qa.b32.i2p", + "http://gseczlzmiv23p5vhsktyd7whquq2uy3c5fgkmdohh453qp3daoua.b32.i2p", + "http://tm4rwkeysv3zz3q5yacyr4rlmca2c4etkdobfvuqzt6vsfsu4weq.b32.i2p", + "http://vernzdedoxuflrrxc4vbatbkpjh4k22ecgiqgimdiif62onhagva.b32.i2p" + ], + "loki": [ + "http://nitter.priv.loki" + ] }, "bibliogram": { - "normal": [ - "https://bibliogram.art", - "https://bibliogram.snopyta.org", - "https://bibliogram.pussthecat.org", + "clearnet": [ "https://bibliogram.1d4.us", "https://bibliogram.froth.zone", - "https://insta.trom.tf", - "https://insta.tromdienste.de", "https://ig.tokhmi.xyz", "https://ig.beparanoid.de", - "https://bibliogram.privacydev.net", - "https://bibliogram.priv.pw", - "https://ig.funami.tech", - "https://bib.actionsack.com" + "https://bibliogram.priv.pw" ], "tor": [], "i2p": [], "loki": [] }, "libreddit": { - "normal": [ - "https://libredd.it", + "clearnet": [ "https://libreddit.spike.codes", - "https://libreddit.dothq.co", "https://libreddit.kavin.rocks", "https://reddit.invak.id", - "https://reddit.phii.me", "https://lr.riverside.rocks", "https://libreddit.strongthany.cc", - "https://libreddit.database.red", "https://libreddit.privacy.com.de", "https://libreddit.domain.glass", - "https://libreddit.sugoma.tk", - "https://libreddit.jamiethalacker.dev", - "https://reddit.artemislena.eu", "https://r.nf", - "https://libreddit.some-things.org", "https://reddit.stuehieyr.com", "https://lr.mint.lgbt", - "https://libreddit.igna.rocks", - "https://libreddit.autarkic.org", - "https://libreddit.flux.industries", "https://libreddit.drivet.xyz", - "https://lr.oversold.host", "https://libreddit.de", "https://libreddit.pussthecat.org", - "https://libreddit.mutahar.rocks", "https://libreddit.northboot.xyz", "https://leddit.xyz", - "https://de.leddit.xyz", - "https://lr.cowfee.moe", "https://libreddit.hu", "https://libreddit.totaldarkness.net", "https://libreddit.esmailelbob.xyz", "https://lr.vern.cc", "https://libreddit.nl", - "https://lr.stilic.ml", "https://reddi.tk", - "https://libreddit.bus-hit.me", - "https://libreddit.datatunnel.xyz", - "https://libreddit.crewz.me", "https://r.walkx.org", "https://libreddit.kylrth.com", - "https://libreddit.yonalee.eu", - "https://libreddit.winscloud.net", "https://libreddit.tiekoetter.com", "https://reddit.rtrace.io", - "https://libreddit.lunar.icu", "https://libreddit.privacydev.net", - "https://libreddit.notyourcomputer.net", "https://r.ahwx.org", "https://bob.fr.to", - "https://reddit.beparanoid.de", "https://libreddit.dcs0.hu", "https://reddit.dr460nf1r3.org", "https://rd.jae.su", - "https://libreddit.mha.fi", "https://libreddit.foss.wtf", "https://libreddit.encrypted-data.xyz", "https://libreddit.eu.org", - "https://l.opnxng.com" + "https://l.opnxng.com", + "https://libreddit.cachyos.org", + "https://rd.funami.tech", + "https://libreddit.projectsegfau.lt", + "https://futureddit.gq", + "https://lr.slipfox.xyz", + "https://libreddit.oxymagnesium.com", + "https://reddit.utsav2.dev", + "https://libreddit.freedit.eu" ], "tor": [ - "http://spjmllawtheisznfs7uryhxumin26ssv2draj7oope3ok3wuhy43eoyd.onion", - "http://fwhhsbrbltmrct5hshrnqlqygqvcgmnek3cnka55zj4y7nuus5muwyyd.onion", - "http://kphht2jcflojtqte4b4kyx7p2ahagv4debjj32nre67dxz7y57seqwyd.onion", - "http://inytumdgnri7xsqtvpntjevaelxtgbjqkuqhtf6txxhwbll2fwqtakqd.onion", - "http://liredejj74h5xjqr2dylnl5howb2bpikfowqoveub55ru27x43357iid.onion", - "http://kzhfp3nvb4qp575vy23ccbrgfocezjtl5dx66uthgrhu7nscu6rcwjyd.onion", "http://ecue64ybzvn6vjzl37kcsnwt4ycmbsyf74nbttyg7rkc3t3qwnj7mcyd.onion", - "http://ledditqo2mxfvlgobxnlhrkq4dh34jss6evfkdkb2thlvy6dn4f4gpyd.onion", - "http://libredoxhxwnmsb6dvzzd35hmgzmawsq5i764es7witwhddvpc2razid.onion", - "http://libreddit.2syis2nnyytz6jnusnjurva4swlaizlnleiks5mjp46phuwjbdjqwgqd.onion", - "http://ol5begilptoou34emq2sshf3may3hlblvipdjtybbovpb7c7zodxmtqd.onion", - "http://lbrdtjaj7567ptdd4rv74lv27qhxfkraabnyphgcvptl64ijx2tijwid.onion", - "http://libreddit.lqs5fjmajyp7rvp4qvyubwofzi6d4imua7vs237rkc4m5qogitqwrgyd.onion", - "http://reddit.prnoid54e44a4bduq5due64jkk7wcnkxcp5kv3juncm7veptjcqudgyd.onion", - "http://inz6tbezfwzexva6dize4cqraj2tjdhygxabmcgysccesvw2pybzhbyd.onion", - "http://libreddit.micohauwkjbyw5meacrb4ipicwvwg4xtzl7y7viv53kig2mdcsvwkyyd.onion", - "http://lr.vernccvbvyi5qhfzyqengccj7lkove6bjot2xhh5kajhwvidqafczrad.onion" + "http://libreddit.esmail5pdn24shtvieloeedh7ehz3nrwcdivnfhfcedl7gf4kwddhkqd.onion", + "http://ojwp2gtj7dq7scd7gnbac6wp53tklgsicteabrnx2pr7zai64wriiaad.onion" ], "i2p": [], "loki": [] }, "teddit": { - "normal": [ + "clearnet": [ "https://teddit.net", "https://teddit.ggc-project.de", "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", @@ -334,20 +343,35 @@ "https://i.opnxng.com", "https://teddit.tokhmi.xyz", "https://teddit.garudalinux.org", - "https://tedd.it" + "https://tedd.it", + "https://wiki.privacytools.io", + "https://td.vern.cc", + "https://teddit.rawbit.ninja", + "https://teddit.artemislena.eu", + "https://teddit.manasiwibi.com" ], "tor": [ "http://snoo.ioensistjs7wd746zluwixvojbbkxhr37lepdvwtdfeav673o64iflqd.onion", "http://ibarajztopxnuhabfu7fg6gbudynxofbnmvis3ltj6lfx47b6fhrd5qd.onion", "http://tedditfyn6idalzso5wam5qd3kdtxoljjhbrbbx34q2xkcisvshuytad.onion", "http://dawtyi5e2cfyfmoht4izmczi42aa2zwh6wi34zwvc6rzf2acpxhrcrad.onion", - "http://qtpvyiaqhmwccxwzsqubd23xhmmrt75tdyw35kp43w4hvamsgl3x27ad.onion" + "http://qtpvyiaqhmwccxwzsqubd23xhmmrt75tdyw35kp43w4hvamsgl3x27ad.onion", + "http://jnuonmf2n36sfdmyksqqqyab3w63cq4kx24olyjleh5z6zzfvyt7uqqd.onion", + "http://td.vernccvbvyi5qhfzyqengccj7lkove6bjot2xhh5kajhwvidqafczrad.onion", + "http://yqu4yj5lju7bmlwpzpmltb5gsu6cw7nnbcxxx4iqemwa56nxjiggf4qd.onion", + "http://teddit.lpoaj7z2zkajuhgnlltpeqh3zyq7wk2iyeggqaduhgxhyajtdt2j7wad.onion", + "http://24fympskbrdgbf4afuvhqwwl2tv3y2vwxg5t2ktozd4j5b3fob5ntzyd.onion" + ], + "i2p": [ + "http://xugoqcf2pftm76vbznx4xuhrzyb5b6zwpizpnw2hysexjdn5l2tq.b32.i2p", + "http://teddit.i2p", + "http://vzeiwzi7ogwl3ijrfek4fbtwhvamxcpyqoc3s4vcgnhlp54s5clq.b32.i2p", + "http://verncco2oaxjikammz4pi7umzp673cme6zuemx7yeeewspwrw3va.b32.i2p" ], - "i2p": [], "loki": [] }, "wikiless": { - "normal": [ + "clearnet": [ "https://wikiless.org", "https://wikiless.sethforprivacy.com", "https://wiki.604kph.xyz", @@ -357,65 +381,91 @@ "https://wikiless.tiekoetter.com", "https://wikiless.esmailelbob.xyz", "https://wiki.slipfox.xyz", - "https://wikiless.funami.tech" + "https://wikiless.funami.tech", + "https://wl.vern.cc", + "https://wiki.privacytools.io", + "https://wikiless.rawbit.ninja", + "https://wiki.adminforge.de" ], "tor": [ "http://dj2tbh2nqfxyfmvq33cjmhuw7nb6am7thzd3zsjvizeqf374fixbrxyd.onion", "http://ybgg2evrcdz37y2qes23ff3wjqjdn33tthgoagi76vhxytu4mpxiz5qd.onion", - "http://wikiless.lqs5fjmajyp7rvp4qvyubwofzi6d4imua7vs237rkc4m5qogitqwrgyd.onion", - "http://c2pesewpalbi6lbfc5hf53q4g3ovnxe4s7tfa6k2aqkf7jd7a7dlz5ad.onion" + "http://wikiless.esmail5pdn24shtvieloeedh7ehz3nrwcdivnfhfcedl7gf4kwddhkqd.onion", + "http://c2pesewpalbi6lbfc5hf53q4g3ovnxe4s7tfa6k2aqkf7jd7a7dlz5ad.onion", + "http://wl.vernccvbvyi5qhfzyqengccj7lkove6bjot2xhh5kajhwvidqafczrad.onion", + "http://tdx37ew3oke5rxn3yi5r5665ka7ozvehnd4xmnjxxdvqorias2nyl4qd.onion" ], "i2p": [ + "http://wikiless.i2p", "http://hflqp2ejxygpj6cdwo3ogfieqmxw3b56w7dblt7bor2ltwk6kcfa.b32.i2p", - "http://x33lx4h6d7h6xs4eiqwhvaxn3ea5gn2ifmu3jobnvuvn4k4aej7a.b32.i2p" + "http://x33lx4h6d7h6xs4eiqwhvaxn3ea5gn2ifmu3jobnvuvn4k4aej7a.b32.i2p", + "http://vernesciy2defjsputrjrv6pa5ll6qzrckfffi5lgkumstdojyga.b32.i2p" ], "loki": [] }, "scribe": { - "normal": [ + "clearnet": [ "https://scribe.rip", "https://scribe.nixnet.services", "https://scribe.citizen4.eu", "https://scribe.bus-hit.me", - "https://scribe.froth.zone" + "https://scribe.froth.zone", + "https://scribe.esmailelbob.xyz", + "https://scribe.privacydev.net", + "https://scribe.rawbit.ninja", + "https://sc.vern.cc" ], "tor": [], "i2p": [], "loki": [] }, "quetre": { - "normal": [ - "https://quetre.herokuapp.com", - "https://quora.vern.cc", + "clearnet": [ + "https://quetre.iket.me", + "https://qr.vern.cc", "https://quetre.pussthecat.org", "https://wuetre.herokuapp.com", "https://quetreus.herokuapp.com", "https://quetre.tokhmi.xyz", - "https://quetre.projectsegfau.lt" + "https://quetre.projectsegfau.lt", + "https://quetre.esmailelbob.xyz", + "https://quetre.odyssey346.dev" + ], + "tor": [ + "http://quetre.esmail5pdn24shtvieloeedh7ehz3nrwcdivnfhfcedl7gf4kwddhkqd.onion", + "http://qr.vernccvbvyi5qhfzyqengccj7lkove6bjot2xhh5kajhwvidqafczrad.onion" + ], + "i2p": [ + "http://vernnflenvsqccuanaun7yydnmturi4jkyxlyzhn6ultpje66c3q.b32.i2p" ], - "tor": [], - "i2p": [], "loki": [] }, "libremdb": { - "normal": [ - "https://libremdb.herokuapp.com", + "clearnet": [ + "https://libremdb.iket.me", "https://libremdb.pussthecat.org", "https://libremdbeu.herokuapp.com", - "https://lmdb.tokhmi.xyz" + "https://lmdb.tokhmi.xyz", + "https://libremdb.esmailelbob.xyz", + "https://ld.vern.cc" + ], + "tor": [ + "http://libremdb.esmail5pdn24shtvieloeedh7ehz3nrwcdivnfhfcedl7gf4kwddhkqd.onion", + "http://ld.vernccvbvyi5qhfzyqengccj7lkove6bjot2xhh5kajhwvidqafczrad.onion" + ], + "i2p": [ + "http://vernz3ubrntql4wrgyrssd6u3qzi36zrhz2agbo6vibzbs5olk2q.b32.i2p" ], - "tor": [], - "i2p": [], "loki": [] }, "simplyTranslate": { - "normal": [ + "clearnet": [ "https://simplytranslate.org", "https://st.tokhmi.xyz", "https://translate.josias.dev", "https://translate.namazso.eu", "https://translate.riverside.rocks", - "https://st.manerakai.com", + "https://simplytranslate.manerakai.com", "https://translate.bus-hit.me", "https://simplytranslate.pussthecat.org", "https://translate.northboot.xyz", @@ -425,36 +475,60 @@ "https://translate.slipfox.xyz", "https://st.privacydev.net", "https://translate.beparanoid.de", - "https://translate.priv.pw" + "https://translate.priv.pw", + "https://st.odyssey346.dev" ], "tor": [ "http://fyng2tsmzmvxmojzbbwmfnsn2lrcyftf4cw6rk5j2v2huliazud3fjid.onion", "http://xxtbwyb5z5bdvy2f6l2yquu5qilgkjeewno4qfknvb3lkg3nmoklitid.onion", - "http://translate.prnoid54e44a4bduq5due64jkk7wcnkxcp5kv3juncm7veptjcqudgyd.onion" + "http://translate.prnoid54e44a4bduq5due64jkk7wcnkxcp5kv3juncm7veptjcqudgyd.onion", + "http://simplytranslate.esmail5pdn24shtvieloeedh7ehz3nrwcdivnfhfcedl7gf4kwddhkqd.onion", + "http://tl.vernccvbvyi5qhfzyqengccj7lkove6bjot2xhh5kajhwvidqafczrad.onion" ], "i2p": [ - "http://kmnkkp4v4ublygtnyq46oacy3qw75nrxxniriuaersumw7bfsm2a.b32.i2p" + "http://kmnkkp4v4ublygtnyq46oacy3qw75nrxxniriuaersumw7bfsm2a.b32.i2p", + "http://verna7avzgd4qqal7k2onjzwxcceqby2gwvya2a2frdswb7z2k4q.b32.i2p" ], "loki": [ "http://translate.priv.loki" ] }, "lingva": { - "normal": [ + "clearnet": [ "https://lingva.ml", "https://translate.igna.ooo", "https://lingva.pussthecat.org", "https://translate.plausibility.cloud", "https://lingva.lunar.icu", - "https://lingva.opnxng.com" + "https://lingva.opnxng.com", + "https://translate.projectsegfau.lt", + "https://lingva.garudalinux.org", + "https://translate.dr460nf1r3.org" ], "tor": [], "i2p": [], "loki": [] }, + "libreTranslate": { + "clearnet": [ + "https://libretranslate.com", + "https://libretranslate.de", + "https://translate.argosopentech.com", + "https://translate.api.skitzen.com", + "https://translate.fortytwo-it.com", + "https://translate.terraprint.co", + "https://lt.vern.cc" + ], + "tor": [ + "http://lt.vernccvbvyi5qhfzyqengccj7lkove6bjot2xhh5kajhwvidqafczrad.onion" + ], + "i2p": [ + "http://vernf45n7mxwqnp5riaax7p67pwcl7wcefdcnqqvim7ckdx4264a.b32.i2p" + ], + "loki": [] + }, "searx": { - "normal": [ - "https://anon.sx", + "clearnet": [ "https://dynabyte.ca", "https://jsearch.pw", "https://search.ethibox.fr", @@ -471,9 +545,7 @@ "https://searx.nakhan.net", "https://searx.netzspielplatz.de", "https://searx.nixnet.services", - "https://searx.org", - "https://searx.pwoss.org", - "https://searx.rasp.fr", + "https://searx.rimkus.it", "https://searx.ru", "https://searx.run", "https://searx.semipvt.com", @@ -496,11 +568,12 @@ ], "tor": [ "http://3afisqjw2rxm6z7mmstyt5rx75qfqrgxnkzftknbp2vhipr2nrmrjdyd.onion", - "http://w5rl6wsd7mzj4bdkbuqvzidet5osdsm5jhg2f7nvfidakfq5exda5wid.onion", + "http://privateoz3u5utrimal2edr56j3r5caakektxxgixigdkycuxigvquid.onion", "http://yra4tke2pwcnatxjkufpw6kvebu3h3ti2jca2lcdpgx3mpwol326lzid.onion", "http://z5vawdol25vrmorm4yydmohsd4u6rdoj2sylvoi3e3nqvxkvpqul7bqd.onion", "http://zbuc3bbzbfdqqo2x46repx2ddajbha6fpsjeeptjhhhhzji3zopxdqyd.onion", - "http://f4qfqajszpx5b7itzxt6mb7kj4ktpgbdq7lq6xaiqyqx6a7de3epptad.onion" + "http://f4qfqajszpx5b7itzxt6mb7kj4ktpgbdq7lq6xaiqyqx6a7de3epptad.onion", + "http://searx.micohauwkjbyw5meacrb4ipicwvwg4xtzl7y7viv53kig2mdcsvwkyyd.onion" ], "i2p": [ "http://ransack.i2p", @@ -509,39 +582,48 @@ "loki": [] }, "searxng": { - "normal": [ + "clearnet": [ "https://darmarit.org/searx", "https://de.xcxc.ml", "https://etsi.me", - "https://icanfindit.online", "https://jackgoss.xyz", + "https://metasearch.nl", "https://northboot.xyz", + "https://notsearch.uk", "https://opnxng.com", "https://paulgo.io", "https://priv.au", - "https://private-searx.ml", "https://privatus.live", "https://s.frlt.one", + "https://s.trung.fun", "https://s.zhaocloud.net", + "https://saber.tk", + "https://search.0relay.com", "https://search.affusio.com", - "https://search.ashs.club", - "https://search.bingowaves.xyz", "https://search.bus-hit.me", "https://search.chemicals-in-the-water.eu", + "https://search.cronobox.one", "https://search.disroot.org", "https://search.gcomm.ch", "https://search.kiwitalk.de", "https://search.mdosch.de", + "https://search.mpx.wtf", "https://search.neet.works", "https://search.ononoki.org", "https://search.privacyguides.net", "https://search.projectsegfau.lt", "https://search.rabbit-company.com", + "https://search.rhscze.cf", + "https://search.rowie.at", "https://search.sapti.me", + "https://search.serginho.dev", + "https://search.smnz.de", "https://search.teamriverbubbles.com", "https://search.unlocked.link", + "https://search.uspersec.com", "https://search.vidhukant.xyz", "https://search.zzls.xyz", + "https://searx.baczek.me", "https://searx.be", "https://searx.becomesovran.com", "https://searx.chocoflan.net", @@ -551,50 +633,55 @@ "https://searx.fi", "https://searx.fmac.xyz", "https://searx.gnous.eu", - "https://searx.loafland.xyz", + "https://searx.kujonello.cf", "https://searx.mha.fi", "https://searx.mistli.net", "https://searx.namejeff.xyz", + "https://searx.org", "https://searx.orion-hub.fr", "https://searx.priv.pw", "https://searx.prvcy.eu", - "https://searx.rimkus.it", "https://searx.sethforprivacy.com", "https://searx.sev.monster", "https://searx.slipfox.xyz/searx", "https://searx.tiekoetter.com", - "https://searx.vimproved.me", - "https://searx.youshitsune.me", "https://searx.zcyph.cc", - "https://searxng.au/searx", - "https://searxng.tordenskjold.de", + "https://searxng.dupa.edu.pl", + "https://searxng.nicfab.eu", "https://searxng.zackptg5.com", "https://serx.ml", + "https://sh0.it", + "https://soek.allesbeste.com", "https://srx.cosmohub.io", "https://swag.pw", + "https://trydex.tk/searxng", "https://www.gruble.de", "https://www.webrats.xyz", - "https://xcxc.ml" + "https://xcxc.ml", + "https://xo.wtf" ], "tor": [ + "http://w5rl6wsd7mzj4bdkbuqvzidet5osdsm5jhg2f7nvfidakfq5exda5wid.onion", "http://4n53nafyi77iplnbrpmxnp3x4exbswwxigujaxy3b37fvr7bvlopxeyd.onion", - "http://x5gdjh6t7kb4yubpufhtc3l3df2acev3emxdasd5vyuyoon5rzf5zkyd.onion", - "http://search3q76rqpektbrchlf2rjq4fnbxzeov6rljdywg3nwbunpgd7bid.onion", - "http://searchoorwalty5a2ailrboa2asqyts2u7bdoqwnjefpgjobpvtzn4qd.onion", + "http://b6sxmon57qza6dt36li7huabie5ntrvjr4q5rc2vvbn4hqvzd4phrvyd.onion", + "http://searxngg6zleq6ceboe5ltkyo4hyrb3aaycrgzmrljv3jjlb5vcytead.onion", "http://gbat2pbpg7ys3fi3pbp64667tt5x66mg45xok35bxdw7v55brm7a27yd.onion", + "http://b2c7fvbhnfvwnl6oh2tydhzfx4i37kmmrycq42heqbbe7wovq3uzenid.onion", "http://searxdr3pqz4nydgnqocsia2xbywptxbkympa2emn7zlgggrir4bkfad.onion", - "http://searx.micohauwkjbyw5meacrb4ipicwvwg4xtzl7y7viv53kig2mdcsvwkyyd.onion", + "http://searx.esmail5pdn24shtvieloeedh7ehz3nrwcdivnfhfcedl7gf4kwddhkqd.onion", + "http://searxfilowxokbogygrigir4wqxfxqzuxofxgdon7dg6rsii4yxzytyd.onion", "http://searx.privpw3tndpkw6pnp3g727zfgfdzbu3k6a7chv226s3xymv2p4eiuqyd.onion", "http://rq2w52kyrif3xpfihkgjnhqm3a5aqhoikpv72z3drpjglfzc2wr5z4yd.onion", "http://fub6vgedgeadlu3ctskrpkcqjruh76tckwtj5swfhyblgml2tzgzckqd.onion/searx", "http://searx3aolosaf3urwnhpynlhuokqsgz47si4pzz5hvb7uuzyjncl2tid.onion", - "http://4tz2vlnwk2apf2rpinkqv6uxvfgo5xjx6vl5vp7lxgaiooumetjpstqd.onion" + "http://4tz2vlnwk2apf2rpinkqv6uxvfgo5xjx6vl5vp7lxgaiooumetjpstqd.onion", + "https://lgmekfnpealdqhnctyg3p5fuelpdwnbqbwnl2ickpdoodzatzgz27ryd.onion" ], "i2p": [], "loki": [] }, "whoogle": { - "normal": [ + "clearnet": [ "https://gowogle.voring.me", "https://s.tokhmi.xyz", "https://search.albony.xyz", @@ -614,28 +701,32 @@ "loki": [] }, "librex": { - "normal": [ + "clearnet": [ "https://librex.beparanoid.de", + "https://librex.extravi.dev", "https://search.davidovski.xyz", + "https://librex.kitscomputer.tk", "https://search.funami.tech", - "https://librex.catalyst.sx" + "https://librex.catalyst.sx", + "https://search.madreyk.xyz", + "https://search.pabloferreiro.es" ], "tor": [ - "http://librex.prnoid54e44a4bduq5due64jkk7wcnkxcp5kv3juncm7veptjcqudgyd.onion", - "http://librex.so2mpiyfo4cje7bof5v52y3cvjyo2haxpqfvut4sr6gj2ul4mddx2jid.onion" + "http://librex.2356uhnbpv5nk3bni5bv6jg2cd6lgj664kwx3lhyelstpttpyv4kk2qd.onion", + "http://ncblhz7q4sfbf755bdbhebfzxcpypz7ewafgi4agatecojz7pln4i3id.onion" ], "i2p": [ - "http://fboseyskrqpi6yjiifvz4ryuoiswjezkqsfxfkm2vmbuhehbpr7q.b32.i2p" + "http://rra33hiaf6nmby7jfpqe2gqmng3jnzkvbu2n7jgce7vbhoyuhzya.b32.i2p" ], "loki": [] }, "rimgo": { - "normal": [ + "clearnet": [ "https://i.bcow.xyz", "https://rimgo.pussthecat.org", + "https://rimgo.totaldarkness.net", "https://rimgo.bus-hit.me", "https://rimgo.esmailelbob.xyz", - "https://rimgo.lunar.icu", "https://i.actionsack.com", "https://rimgo.privacydev.net", "https://imgur.artemislena.eu", @@ -644,7 +735,7 @@ "https://rimgo.mha.fi" ], "tor": [ - "http://rimgo.lqs5fjmajyp7rvp4qvyubwofzi6d4imua7vs237rkc4m5qogitqwrgyd.onion", + "http://rimgo.esmail5pdn24shtvieloeedh7ehz3nrwcdivnfhfcedl7gf4kwddhkqd.onion", "http://rimgo.vernccvbvyi5qhfzyqengccj7lkove6bjot2xhh5kajhwvidqafczrad.onion", "http://rimgo.micohauwkjbyw5meacrb4ipicwvwg4xtzl7y7viv53kig2mdcsvwkyyd.onion" ], @@ -652,43 +743,135 @@ "loki": [] }, "librarian": { - "normal": [ + "clearnet": [ "https://lbry.bcow.xyz", "https://odysee.076.ne.jp", "https://librarian.pussthecat.org", - "https://lbry.mutahar.rocks", + "https://lbry.projectsegfau.lt", "https://librarian.esmailelbob.xyz", - "https://lbry.vern.cc" + "https://lbry.vern.cc", + "https://lbry.slipfox.xyz", + "https://lbry.sytes.net", + "https://lbry.webhop.me", + "https://lbry.mywire.org" + ], + "tor": [ + "http://librarian.esmail5pdn24shtvieloeedh7ehz3nrwcdivnfhfcedl7gf4kwddhkqd.onion", + "http://lbry.vernccvbvyi5qhfzyqengccj7lkove6bjot2xhh5kajhwvidqafczrad.onion", + "http://5znbzx2xcymhddzekfjib3isgqq4ilcyxa2bsq6vqmnvbtgu4f776lqd.onion", + "http://zjmls4urccc5wxc64ilbv4oqarjab6pbanvmhd2qqt6p7fgqrjjnryqd.onion", + "http://bxewpsswttslepw27w2hhxhlizwm7l7y54x3jw5cfrb64hb6lgc557ad.onion" + ], + "i2p": [], + "loki": [] + }, + "neuters": { + "clearnet": [ + "https://neuters.de" + ], + "tor": [], + "i2p": [], + "loki": [] + }, + "beatbump": { + "clearnet": [ + "https://beatbump.ml", + "https://beatbump.esmailelbob.xyz" + ], + "tor": [ + "http://beatbump.lqs5fjmajyp7rvp4qvyubwofzi6d4imua7vs237rkc4m5qogitqwrgyd.onion" + ], + "i2p": [], + "loki": [] + }, + "hyperpipe": { + "clearnet": [ + "https://hyperpipe.surge.sh", + "https://hyperpipe.esmailelbob.xyz", + "https://listen.whatever.social", + "https://music.adminforge.de" ], "tor": [ - "http://librarian.lqs5fjmajyp7rvp4qvyubwofzi6d4imua7vs237rkc4m5qogitqwrgyd.onion", - "http://lbry.vernccvbvyi5qhfzyqengccj7lkove6bjot2xhh5kajhwvidqafczrad.onion" + "http://hyperpipe.esmail5pdn24shtvieloeedh7ehz3nrwcdivnfhfcedl7gf4kwddhkqd.onion" + ], + "i2p": [], + "loki": [] + }, + "facil": { + "clearnet": [ + "https://facilmap.org" ], + "tor": [], + "i2p": [], + "loki": [] + }, + "simpleertube": { + "clearnet": [ + "https://tube.simple-web.org", + "https://simpleertube.esmailelbob.xyz", + "https://stube.tokhmi.xyz", + "https://st.vern.cc" + ], + "tor": [], + "i2p": [], + "loki": [] + }, + "breezeWiki": { + "clearnet": [ + "https://breezewiki.com", + "https://breezewiki.pussthecat.org", + "https://bw.odyssey346.dev", + "https://bw.vern.cc", + "https://breezewiki.esmailelbob.xyz" + ], + "tor": [], "i2p": [], "loki": [] }, "peertube": [ + "https://search.joinpeertube.org", + "https://video.bmu.cloud", + "https://freedomadultgames.video", + "https://tbh.co-shaoghal.net", + "https://tube.kansanvalta.org", + "https://ytube.retronerd.at", + "https://tube.media-techport.de", + "https://notobono.de", + "https://video.vegafjord.me", + "https://peertube-us.howlround.com", + "https://peertube-eu.howlround.com", + "https://pt.freedomwolf.cc", + "https://vr360tube.online", + "https://bodavr.com", + "https://peertube.tni-hosted.nl", + "https://videos.parleur.net", + "https://tube.azadehafzar.ir", + "https://pewflix.com", + "https://video.electronicping.net", + "https://videos.im.allmendenetz.de", + "https://tube.cyberia.club", + "https://casstream.nohost.me", + "https://peertube.askan.info", + "https://apertatube.net", + "https://beetoons.tv", + "https://rankett.net", + "https://tube.xsoftware.it", + "https://video.ut0pia.org", + "https://kinotu.be", + "https://tube.nogafa.org", + "https://www.neptube.io", + "https://tube.ghk-academy.info", + "https://pcbu.nl", "https://pire.artisanlogiciel.net", - "https://trutube.xyz", "https://tube-test.apps.education.fr", "https://tube-sciences-technologies.apps.education.fr", - "https://stream.conesphere.cloud", "https://tube-institutionnel.apps.education.fr", - "https://trutube.online", "https://tube-cycle-3.apps.education.fr", "https://video.manicphase.me", - "https://tube.emy.plus", - "https://v.bearvideo.win", "https://tubulus.openlatin.org", - "https://peertube.securetown.top", - "https://tv.datamol.org", "https://video.graine-pdl.org", - "https://tube.zee.li", "https://tube-cycle-2.apps.education.fr", - "https://mikeclips.net", - "https://tube.s1gm4.eu", "https://videos.keyedlimepie.org", - "https://video.cpn.so", "https://video.davduf.net", "https://tube.oldkid.digital", "https://tube.fofoca.eu", @@ -699,246 +882,164 @@ "https://media.theplattform.net", "https://peertube.offerman.com", "https://v.lastorder.xyz", - "https://video.eradicatinglove.xyz", - "https://peertube.thele.me", - "https://video.schnitzler.one", "https://tube.cybershock.life", "https://tube.reseau-canope.fr", "https://frentube.myyouniverse.observer", "https://tube-maternelle.apps.education.fr", - "https://peertube.onionstorm.net", "https://dev.dollarvigilante.tv", "https://video.trankil.info", "https://video.uriopss-pdl.fr", "https://pt.bolapara.mywire.org", - "https://ptube.ranranhome.info", - "https://vidid.pl", "https://video.3cmr.fr", - "https://tube.die-rote-front.de", "https://peertube.miguelcr.me", "https://video.thinkof.name", - "https://nekofans.tv", - "https://video.comun.al", - "https://peertube.nrsk.no", "https://video.occm.cc", - "https://peertube.viviers-fibre.net", "https://tube-action-educative.apps.education.fr", - "https://themadlads.live", "https://jahve.pl", "https://videos.yesil.club", "https://peertube.adjutor.xyz", - "https://peertube.terranout.mine.nu", "https://tube.hunterjozwiak.com", "https://tube-numerique-educatif.apps.education.fr", "https://tube.itsg.host", - "https://tube.valinor.fr", "https://lucarne.balsamine.be", "https://peertube.suranyami.com", "https://video.ados.accoord.fr", "https://t.0x0.st", "https://tube-education-physique-et-sportive.apps.education.fr", "https://videos.lemouvementassociatif-pdl.org", - "https://videos.casually.cat", "https://playroom.kitsunes.world", - "https://tube2.nous.media", - "https://peertube.freenet.ru", "https://peertube.0x5e.eu", "https://tube.darknight-coffee.org", "https://play.mittdata.se", - "https://peertube.lhc.net.br", - "https://see.vtopia.live", "https://peertube.letoine.fr", "https://tube-enseignement-professionnel.apps.education.fr", - "https://socpeertube.ru", "https://videos.laliguepaysdelaloire.org", - "https://videotube.duckdns.org", "https://quantube.win", "https://twctube.twc-zone.eu", "https://vhs.absturztau.be", - "https://video.espr.moe", "https://peertube.social.my-wan.de", "https://phijkchu.com", "https://video.lycee-experimental.org", - "https://galileo.news", - "https://peertube.otakufarms.com", "https://tube.motuhake.xyz", "https://pt.m0r016.net", "https://hitchtube.fr", "https://video.fox-romka.ru", "https://peertube.ctrl-c.liu.se", - "https://peertube.live", "https://video.slipfox.xyz", - "https://pt.vern.cc", "https://vnop.org", "https://videos.cassidypunchmachine.com", - "https://tv1.gomntu.space", "https://dalek.zone", "https://seka.pona.la", "https://syop.tv", "https://watch.thelema.social", - "https://tube.miegl.cz", "https://mov.clov.fr", - "https://videomensoif.ynh.fr", - "https://videos.neongarden.life", "https://video.vaku.org.ua", "https://videos.trom.lt", - "https://videod.fr", "https://vid.mkp.ca", "https://jupiter.tube", - "https://tuvideo.encanarias.info", "https://videos.squat.net", "https://peertube.chaunchy.com", "https://tube.vrpnet.org", "https://video.tii.space", - "https://peertube.familleboisteau.fr", - "https://peertube.inubo.ch", "https://nightshift.minnix.dev", "https://tube.friloux.me", "https://peertube.virtual-assembly.org", - "https://video.olos311.org", "https://peertube.atilla.org", - "https://video.lapineige.fr", - "https://zapping.no-ip.info", "https://tube.azkware.net", "https://video.lunasqu.ee", "https://v.mkp.ca", "https://peertube.eus", "https://infothema.net", "https://tube.nilsu.org", - "https://podlibre.video", - "https://videos.tankernn.eu", "https://watch.autonomous-zone.earth", "https://pirtube.calut.fr", "https://y.melonia.se", - "https://peertube.cirkau.art", - "https://peertube.2i2l.net", "https://videos.martyn.berlin", "https://turkum.me", "https://video.colibris-outilslibres.org", - "https://invoice.peertube.biz", "https://peertube.chantierlibre.org", "https://video.9wd.eu", "https://video.niboe.info", "https://peertuibe.fedsinfo.nohost.me", - "https://s9.gegenstimme.tv", - "https://pocketnetpeertube1.nohost.me", "https://videos.alamaisondulibre.org", "https://videos.tormentasolar.win", "https://tube.nestor.coop", "https://live.oldskool.fi", - "https://dytube.com", - "https://tube.thierrytalbert.fr", "https://peertube.informaction.info", "https://tube.ac-amiens.fr", "https://tube.alado.space", "https://tube.network.europa.eu", - "https://vnchich.com", "https://pt.maciej.website", "https://peertube.frontmediatique.fr", "https://peertube.bgzashtita.es", "https://tube.genb.de", "https://cliptube.org", - "https://tube.tr4sk.me", "https://videos.campdarling.com", - "https://video.mikka.md", - "https://www.aktion-nordost.tv", "https://tube.rooty.fr", "https://tube.dnet.one", - "https://peertube.io", - "https://peertube.echelon4.space", "https://www.kotikoff.net", "https://peertube.nz", "https://videos.grafo.zone", "https://tube.chocoflan.net", "https://video.pthreat.co", - "https://peertube.egroc.de", "https://pt.k2s.sk", "https://video.cats-home.net", "https://peertube.narrativerry.xyz", "https://tube.9minuti.it", "https://krdtube.org", - "https://peertube.elforcer.ru", "https://tubocatodico.bida.im", - "https://linhtran.eu", "https://torstenwitte.peertube-host.de", "https://peertube.hackerfraternity.org", "https://openmedia.edunova.it", "https://ocfedtest.hosted.spacebear.ee", "https://video.lono.space", "https://mirrored.rocks", - "https://videopen.net", "https://demo.lioncast.org", "https://peertube.get-racing.de", "https://pierre.tube", "https://mirametube.fr", "https://vidz.dou.bet", - "https://videos.redeyes.site", "https://video.hostpath.de", "https://free-streams.com", - "https://tube.pawelko.net", "https://video.livecchi.cloud", - "https://anarchy.video", "https://peertube.gsugambit.com", - "https://media.zat.im", - "https://videos.sadx.moe", "https://pt.nospy.net", "https://yhwh.tube", - "https://peerlook.ru", - "https://monero.wf", "https://tube.kicou.info", "https://video.aqr.af", "https://videos-passages.huma-num.fr", "https://video.linc.systems", "https://video.sftblw.moe", - "https://peertube.dsmouse.net", "https://ptube.horsentiers.fr", "https://video.cnt.social", - "https://peertube.okko.io", - "https://video.mentality.rip", "https://tube.03281.fspfc.org", - "https://tube.linc.systems", "https://peertube.ketchup.noho.st", "https://yt.x1337x.fr", "https://videos.rabbit-company.com", "https://video.paradigmthreat.net", - "https://video.lincolncyber.com", "https://vid.twhtv.club", "https://video.retroedge.tech", - "https://truvitv.com", "https://pt.ilyamikcoder.com", "https://peertube.sensin.eu", - "https://watch.riverside.rocks", - "https://sharetube.us", "https://video.sadmin.io", "https://stream.jurnalfm.md", - "https://video.asgardius.company", "https://video.publicspaces.net", "https://video.eientei.org", "https://tv.suwerenni.org", "https://tube.revertron.com", "https://tube.erzbistum-hamburg.de", - "https://video.germanische-heilkunde.at", "https://views.southfox.me", - "https://vide.oxel.me", "https://video.mttv.it", "https://peertube.cloud.nerdraum.de", "https://vid.pretok.tv", - "https://videos.slownewsdayshow.com", "https://videos.sarcasmstardust.com", "https://videos.factsonthegroundshow.com", - "https://video.regenpfeifer.net", - "https://video.pe6.eu", "https://tv.santic-zombie.ru", "https://tube.sleeping.town", - "https://tube.globalfrens.com", "https://peertube.hacknews.pmdcollab.org", - "https://freetubes.nohost.me", "https://video.snug.moe", "https://video.avant-le-strike.buzz", "https://videos.ritimo.org", - "https://videos.ephphatha.church", - "https://video.cerclearistote.com", - "https://computerstuff.mooo.com", "https://video.greenmycity.eu", "https://przej.me", "https://pt.mezzo.moe", @@ -950,60 +1051,44 @@ "https://bee-tube.fr", "https://vid.prometheus.systems", "https://tube.nx12.net", - "https://redundant2.peertube.support", "https://peertube.ignifi.me", "https://tv.based.quest", "https://peertube.beardedtek.com", "https://creemoseducacioninclusiva.uma.es", "https://videos.yeswiki.net", - "https://tube.lrk.sh", - "https://peertube.autogestioncitoyenne.org", - "https://stream.dynacloud.ynh.fr", "https://video.r3s.nrw", "https://peertube.semweb.pro", "https://poast.tv", "https://testube.distrilab.fr", "https://peertube.rse43.com", - "https://libremedia.video", "https://vid.lelux.fi", "https://v.wolfskaempf.de", - "https://peertube.chevro.fr", "https://media.econoalchemist.com", "https://video.qoto.org", "https://peertube.maxweiss.io", "https://peertube.chatinbit.com", "https://peertube.ffs2play.fr", "https://peertube.swarm.solvingmaz.es", - "https://film.node9.org", "https://peertube.mi-site.net", - "https://tube.nowtech.io", "https://raptube.antipub.org", "https://video.cm-en-transition.fr", "https://tube.koweb.fr", "https://peertube.genma.fr", "https://tv.generallyrubbish.net.au", - "https://video.travisshears.xyz", - "https://videos.codingotaku.com", "https://foss.tube", "https://peertube.satoshishop.de", "https://ua.peertube.red", "https://peertube.zwindler.fr", "https://videos.fsci.in", - "https://swebbtube.se", "https://video.dnfi.no", "https://peertube.revelin.fr", - "https://armstube.com", "https://peertube.ti-fr.com", "https://video.turbo.chat", - "https://tube.toldi.eu", - "https://review.peertube.biz", - "https://peertube.am-networks.fr", "https://video.chbmeyer.de", "https://video.rs-einrich.de", "https://p2ptv.ru", "https://peertube.librenet.co.za", "https://h3h3.club", - "https://watch.snoot.tube", "https://tube.freepeople.fr", "https://watch.rt4mn.org", "https://video.lrose.de", @@ -1016,13 +1101,9 @@ "https://polskijutub.mkljczk.pl", "https://peertube.noussommes.org", "https://exode.me", - "https://megatube.lilomoino.fr", "https://video.anartist.org", "https://peertube.home.x0r.fr", "https://peertube.marud.fr", - "https://freetubehub.live", - "https://peertube.librelabucm.org", - "https://tube4.apolut.net", "https://mtube.mooo.com", "https://skeptube.fr", "https://tube.villejuif.fr", @@ -1039,9 +1120,7 @@ "https://open.movie", "https://tube.rfc1149.net", "https://tube.radiomercure.fr", - "https://medias.debrouillonet.org", "https://peertube.1984.cz", - "https://tube.sp4ke.com", "https://pt.nix.uno", "https://videos.openmandriva.org", "https://video.vanderwarker.photos", @@ -1063,21 +1142,16 @@ "https://tube.childrenshealthdefense.eu", "https://stream.litera.tools", "https://peertube.kriom.net", - "https://peertube.grosist.fr", "https://peertube.gemlog.ca", "https://nettube.uc-netcorsoft.de", "https://live.solari.com", "https://live.codinglab.ch", "https://dud-video.inf.tu-dresden.de", - "https://media-test.interior.edu.uy", "https://media.interior.edu.uy", - "https://peertube.la-scic.fr", - "https://phoenixproject.group", "https://peertube.sebu77.com", "https://www.orion-hub.fr", "https://tv.orion-serv.fr", "https://video.interru.io", - "https://tube.cnr.it", "https://peertube.dtmf.ca", "https://tube.ponsonaille.fr", "https://tube.int5.net", @@ -1095,12 +1169,9 @@ "https://video.antopie.org", "https://vtr.chikichiki.tube", "https://fedimovie.com", - "https://videos.thinkerview.com", "https://tube.doctors4covidethics.org", - "https://yoba.tv", "https://tube.mediainformationcenter.de", "https://peertube.communecter.org", - "https://peertube.librosphere.fr", "https://queermotion.org", "https://video.audiovisuel-participatif.org", "https://peertube.vip", @@ -1113,7 +1184,6 @@ "https://tube.nuxnik.com", "https://tube.froth.zone", "https://peertube.ethibox.fr", - "https://www.freetubehub.live", "https://tube.communia.org", "https://peertube.dragonborn.app", "https://ai-tube.ch", @@ -1124,16 +1194,12 @@ "https://video.windfluechter.org", "https://pocketnetpeertube10.nohost.me", "https://tube.io18.top", - "https://peertube.remerge.net", - "https://video.wuatek.is", "https://tube.geekyboo.net", "https://notretube.asselma.eu", "https://canal.facil.services", - "https://ukva.li", "https://pt.gordons.gen.nz", "https://tube.misterbanal.net", "https://peertube.fomin.site", - "https://peertube.kenjiyon.xyz", "https://tube.g1zm0.de", "https://video.ellijaymakerspace.org", "https://videos.benpro.fr", @@ -1169,20 +1235,17 @@ "https://bideoak.argia.eus", "https://video.hainry.fr", "https://video.gresille.org", - "https://peertube.tangentfox.com", "https://puffy.tube", "https://tube.kher.nl", "https://watch.ocaml.org", "https://peertube.kleph.eu", "https://tube.missbanal.net", "https://pityu.flaki.hu", - "https://tv.catalpafestival.fr", "https://pony.tube", "https://peertube.umeahackerspace.se", "https://tube.okcinfo.news", "https://www.rocaguinarda.tv", "https://videos.wirtube.de", - "https://tube.tinfoil-hat.net", "https://livegram.net", "https://video.ustim.ru", "https://merci-la-police.fr", @@ -1197,7 +1260,6 @@ "https://peertube.scyldings.com", "https://gade.o-k-i.net", "https://peertube.mobilsicher.de", - "https://video.jigmedatse.com", "https://video.amiga-ng.org", "https://peertube.espace.si", "https://videos.supertuxkart.net", @@ -1211,7 +1273,6 @@ "https://peertube.w.utnw.de", "https://tube.sp-codes.de", "https://tube.apolut.net", - "https://tube.mfraters.net", "https://tube.pyngu.com", "https://peertube.troback.com", "https://peertube.ucy.de", @@ -1225,7 +1286,6 @@ "https://kino.kompot.si", "https://tube.kockatoo.org", "https://peertube.cabaal.net", - "https://sovran.video", "https://stream.k-prod.fr", "https://tube.tylerdavis.xyz", "https://video.marcorennmaus.de", @@ -1241,14 +1301,12 @@ "https://peertube.alpharius.io", "https://ptb.lunarviews.net", "https://ovaltube.codinglab.ch", - "https://video.wilkie.how", "https://videos.ahp-numerique.fr", "https://auf1.eu", "https://tube.toontoet.nl", "https://video.gyt.is", "https://peertube.jensdiemer.de", "https://tube.futuretic.fr", - "https://libra.syntazia.org", "https://peertube.beeldengeluid.nl", "https://tv.lumbung.space", "https://peertube.cuatrolibertades.org", @@ -1266,7 +1324,6 @@ "https://peertube.radres.xyz", "https://darkvapor.nohost.me", "https://tube.chaoszone.tv", - "https://media.over-world.org", "https://tube.avensio.de", "https://peertube.klaewyss.fr", "https://sender-fm.veezee.tube", @@ -1280,7 +1337,6 @@ "https://peertube.iriseden.eu", "https://video.shitposter.club", "https://tv.mattchristiansenmedia.com", - "https://tube.hackerscop.org", "https://peertube.kx.studio", "https://videos.3d-wolf.com", "https://tube.octaplex.net", @@ -1303,7 +1359,6 @@ "https://tube.frischesicht.de", "https://peertube1.zeteo.me", "https://conspiracydistillery.com", - "https://peertube.chemnitz.freifunk.net", "https://hpstube.fr", "https://video.blast-info.fr", "https://peertube.bubuit.net", @@ -1328,7 +1383,6 @@ "https://peertube.inapurna.org", "https://watch.libertaria.space", "https://video.triplea.fr", - "https://video.catgirl.biz", "https://vulgarisation-informatique.fr", "https://tube.kotur.org", "https://peertube.euskarabildua.eus", @@ -1339,7 +1393,6 @@ "https://video.lespoesiesdheloise.fr", "https://peertube.luga.at", "https://peertube.roflcopter.fr", - "https://ptube.rousset.nom.fr", "https://peertube.swrs.net", "https://tube.shanti.cafe", "https://videos.cloudron.io", @@ -1376,14 +1429,10 @@ "https://videos.john-livingston.fr", "https://melsungen.peertube-host.de", "https://evangelisch.video", - "https://tube.anufrij.de", "https://videos.mastodont.cat", - "https://video.taboulisme.com", "https://media.undeadnetwork.de", "https://tube.dragonpsi.xyz", - "https://veezee.tube", "https://peertube.nicolastissot.fr", - "https://s2.veezee.tube", "https://tubes.jodh.us", "https://tube.lucie-philou.com", "https://video.odayacres.farm", @@ -1403,7 +1452,6 @@ "https://video.ecole-89.com", "https://tube.kai-stuht.com", "https://video.fbxl.net", - "https://live.libratoi.org", "https://video.p1ng0ut.social", "https://watch.deranalyst.ch", "https://video.discord-insoumis.fr", @@ -1431,8 +1479,6 @@ "https://video.mycrowd.ca", "https://kodcast.com", "https://video.altertek.org", - "https://ruraletv.ovh", - "https://videos.weblib.re", "https://tube.oisux.org", "https://peertube.louisematic.site", "https://clap.nerv-project.eu", @@ -1440,7 +1486,6 @@ "https://peertube.tspu.edu.ru", "https://p.lu", "https://serv3.wiki-tube.de", - "https://serv1.wiki-tube.de", "https://video.lavolte.net", "https://peertube.public.cat", "https://peertube.anduin.net", @@ -1451,15 +1496,12 @@ "https://fotogramas.politicaconciencia.org", "https://peertube.pl", "https://peertube.manalejandro.com", - "https://www4.mir.inter21.net", "https://video.csc49.fr", "https://tube.wolfe.casa", "https://video.dresden.network", - "https://peertube.zapashcanon.fr", "https://40two.tube", "https://tube.amic37.fr", "https://video.comptoir.net", - "https://kino.schuerz.at", "https://peertube.tiennot.net", "https://tututu.tube", "https://tube.picasoft.net", @@ -1472,21 +1514,17 @@ "https://videos.testimonia.org", "https://video.mass-trespass.uk", "https://peertube.cipherbliss.com", - "https://peertube.stemy.me", "https://daschauher.aksel.rocks", "https://tube.cyano.at", "https://tube.nox-rhea.org", "https://peertube.securitymadein.lu", "https://tube.rita.moe", - "https://tuktube.com", - "https://v.basspistol.org", "https://mytube.kn-cloud.de", "https://tube.nuagelibre.fr", "https://video.nogafam.es", "https://peertube.stream", "https://videos.leslionsfloorball.fr", "https://player.ojamajo.moe", - "https://ftsi.ru", "https://video.cigliola.com", "https://xxx.noho.st", "https://peertube.stefofficiel.me", @@ -1498,9 +1536,7 @@ "https://cinema.yunohost.support", "https://peertube.s2s.video", "https://peertube.travelpandas.eu", - "https://video.sdm-tools.net", "https://peertube.anzui.dev", - "https://video.up.edu.ph", "https://video.igem.org", "https://worldofvids.com", "https://peertube.underworld.fr", @@ -1508,7 +1544,6 @@ "https://video.pony.gallery", "https://tube.skrep.in", "https://tube.others.social", - "https://videos.ubuntu-paris.org", "https://tube-poitiers.beta.education.fr", "https://vid.wildeboer.net", "https://battlepenguin.video", @@ -1519,7 +1554,6 @@ "https://peertube.davigge.com", "https://vod.ksite.de", "https://tube.grin.hu", - "https://media.inno3.cricket", "https://tube.cryptography.dog", "https://peertube.zergy.net", "https://vid.ncrypt.at", @@ -1529,8 +1563,6 @@ "https://video.violoncello.ch", "https://peertube.gidikroon.eu", "https://tubedu.org", - "https://watch.breadtube.tv", - "https://video.exodus-privacy.eu.org", "https://tilvids.com", "https://peertube.devloprog.org", "https://peertube.designersethiques.org", @@ -1567,11 +1599,9 @@ "https://peertube.netzbegruenung.de", "https://plextube.nl", "https://tube.opportunis.me", - "https://nanawel-peertube.dyndns.org", "https://tube-strasbourg.beta.education.fr", "https://tube.graz.social", "https://tube-besancon.beta.education.fr", - "https://vid.garwood.io", "https://kolektiva.media", "https://peertube.ichigo.everydayimshuflin.com", "https://video.lundi.am", @@ -1588,7 +1618,6 @@ "https://peertube.debian.social", "https://tube.piweb.be", "https://peertube.su", - "https://video.hackers.town", "https://tube.fdn.fr", "https://peertube.demonix.fr", "https://videos.hauspie.fr", @@ -1596,7 +1625,6 @@ "https://mplayer.demouliere.eu", "https://video.liberta.vip", "https://peertube.gcfamily.fr", - "https://video.ploud.fr", "https://tube.plaf.fr", "https://tube.nah.re", "https://dreiecksnebel.alex-detsch.de", @@ -1635,7 +1663,6 @@ "https://video.vny.fr", "https://peervideo.club", "https://tube.taker.fr", - "https://peertube.co.uk", "https://video.fitchfamily.org", "https://video.fdlibre.eu", "https://peer.philoxweb.be", @@ -1684,7 +1711,6 @@ "https://peertube.makotoworkshop.org", "https://peertube.serveur.slv-valbonne.fr", "https://video.netsyms.com", - "https://video.writeas.org", "https://videos.adhocmusic.com", "https://vid.y-y.li", "https://diode.zone", @@ -1712,6 +1738,20 @@ "https://peertube.qtg.fr", "https://tube.p2p.legal", "https://troll.tv", - "https://videos.iut-orsay.fr" + "https://videos.iut-orsay.fr", + "https://peertube.solidev.net", + "https://videos.cemea.org", + "https://video.passageenseine.fr", + "https://peertube.touhoppai.moe", + "https://share.tube", + "https://peertube.heraut.eu", + "https://peertube.gegeweb.eu", + "https://framatube.org", + "https://tube.conferences-gesticulees.net", + "https://peertube.datagueule.tv", + "https://video.lqdn.fr", + "https://peertube3.cpy.re", + "https://peertube2.cpy.re", + "https://peertube.cpy.re" ] } \ No newline at end of file diff --git a/src/instances/facil.json b/src/instances/facil.json index 798a9cfb..6c89eb17 100644 --- a/src/instances/facil.json +++ b/src/instances/facil.json @@ -1,5 +1,5 @@ { - "normal": ["https://facilmap.org"], + "clearnet": ["https://facilmap.org"], "tor": [], "i2p": [], "loki": [] diff --git a/src/instances/get_instances.py b/src/instances/get_instances.py index 5edbfb68..b36cf7ab 100644 --- a/src/instances/get_instances.py +++ b/src/instances/get_instances.py @@ -1,36 +1,57 @@ # Note: Run this script from the root of the repo +import traceback +import logging import requests import json from urllib.parse import urlparse -from bs4 import BeautifulSoup import re -from colorama import Fore, Back, Style -from urllib.parse import urlparse +from colorama import Fore, Style import socket -import subprocess mightyList = {} +config = {} -startRegex = "https?:\/{2}(?:[^\s\/]+\.)+" +startRegex = r"https?:\/{2}(?:[^\s\/]+\.)+" endRegex = "(?:\/[^\s\/]+)*\/?" torRegex = startRegex + "onion" + endRegex i2pRegex = startRegex + "i2p" + endRegex lokiRegex = startRegex + "loki" + endRegex -authRegex = "https?:\/{2}\S+:\S+@(?:[^\s\/]+\.)+[a-zA-Z0-9]+" + endRegex +authRegex = r"https?:\/{2}\S+:\S+@(?:[^\s\/]+\.)+[a-zA-Z0-9]+" + endRegex + +with open('./src/config/config.json', 'rt') as tmp: + config['networks'] = json.load(tmp)['networks'] + def filterLastSlash(urlList): tmp = {} - for x in urlList: - tmp[x] = {} - for y in urlList[x]: - tmp[x][y] = [] - for z in urlList[x][y]: - if z.endswith('/'): - tmp[x][y].append(z[:-1]) - print(Fore.YELLOW + "Fixed " + Style.RESET_ALL + z) + for frontend in urlList: + tmp[frontend] = {} + for network in urlList[frontend]: + tmp[frontend][network] = [] + for url in urlList[frontend][network]: + if url.endswith('/'): + tmp[frontend][network].append(url[:-1]) + print(Fore.YELLOW + "Fixed " + Style.RESET_ALL + url) else: - tmp[x][y].append(z) + tmp[frontend][network].append(url) + return tmp + + +def idnaEncode(urlList): + tmp = {} + for frontend in urlList: + tmp[frontend] = {} + for network in urlList[frontend]: + tmp[frontend][network] = [] + for url in urlList[frontend][network]: + try: + encodedUrl = url.encode("idna").decode("utf8") + tmp[frontend][network].append(encodedUrl) + if (encodedUrl != url): + print(Fore.YELLOW + "Fixed " + Style.RESET_ALL + url) + except Exception: + tmp[frontend][network].append(url) return tmp @@ -58,7 +79,7 @@ def is_cloudflare(url): instance_ip = socket.gethostbyname(urlparse(url).hostname) if instance_ip is None: return False - except: + except Exception: return False instance_bin = ip2bin(instance_ip) @@ -85,297 +106,244 @@ def is_authenticate(url): if 'www-authenticate' in r.headers: print(url + ' requires ' + Fore.RED + 'authentication' + Style.RESET_ALL) return True - except: + except Exception: return False return False +def is_offline(url): + try: + r = requests.get(url, timeout=5) + if r.status_code >= 400: + print(url + ' is ' + Fore.RED + 'offline' + Style.RESET_ALL) + print("Status code") + print(r.status_code) + return True + else: + return False + except Exception: + return False + + +def fetchCache(frontend, name): + with open('./src/instances/data.json') as file: + mightyList[frontend] = json.load(file)[frontend] + print(Fore.YELLOW + 'Failed' + Style.RESET_ALL + ' to fetch ' + name) + + +def fetchFromFile(frontend, name): + with open('./src/instances/' + frontend + '.json') as file: + mightyList[frontend] = json.load(file) + print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + name) + + +def fetchJsonList(frontend, name, url, urlItem, jsonObject): + try: + r = requests.get(url) + rJson = json.loads(r.text) + if jsonObject: + rJson = rJson['instances'] + _list = {} + for network in config['networks']: + _list[network] = [] + if type(urlItem) == dict: + for item in rJson: + for network in config['networks']: + if urlItem[network] is not None: + if urlItem[network] in item and item[urlItem[network]] is not None: + if item[urlItem[network]].strip() != '': + _list[network].append(item[urlItem[network]]) + else: + for item in rJson: + tmpItem = item + if urlItem is not None: + tmpItem = item[urlItem] + if tmpItem.strip() == '': + continue + elif re.search(torRegex, tmpItem): + _list['tor'].append(tmpItem) + elif re.search(i2pRegex, tmpItem): + _list['i2p'].append(tmpItem) + elif re.search(lokiRegex, tmpItem): + _list['loki'].append(tmpItem) + else: + _list['clearnet'].append(tmpItem) + + mightyList[frontend] = _list + print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + name) + except Exception: + fetchCache(frontend, name) + logging.error(traceback.format_exc()) + + +def fetchRegexList(frontend, name, url, regex): + try: + r = requests.get(url) + _list = {} + for network in config['networks']: + _list[network] = [] + + tmp = re.findall(regex, r.text) + + for item in tmp: + if item.strip() == "": + continue + elif re.search(torRegex, item): + _list['tor'].append(item) + elif re.search(i2pRegex, item): + _list['i2p'].append(item) + elif re.search(lokiRegex, item): + _list['loki'].append(item) + else: + _list['clearnet'].append(item) + mightyList[frontend] = _list + print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + name) + except Exception: + fetchCache(frontend, name) + logging.error(traceback.format_exc()) + + +def fetchTextList(frontend, name, url, prepend): + try: + r = requests.get(url) + tmp = r.text.strip().split('\n') + + _list = {} + for network in config['networks']: + _list[network] = [] + + for item in tmp: + item = prepend + item + if re.search(torRegex, item): + _list['tor'].append(item) + elif re.search(i2pRegex, item): + _list['i2p'].append(item) + elif re.search(lokiRegex, item): + _list['loki'].append(item) + else: + _list['clearnet'].append(item) + mightyList[frontend] = _list + print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + name) + except Exception: + fetchCache(frontend, name) + logging.error(traceback.format_exc()) + + def invidious(): - r = requests.get('https://api.invidious.io/instances.json') - rJson = json.loads(r.text) - invidiousList = {} - invidiousList['normal'] = [] - invidiousList['tor'] = [] - invidiousList['i2p'] = [] - invidiousList['loki'] = [] - for instance in rJson: - if instance[1]['type'] == 'https': - invidiousList['normal'].append(instance[1]['uri']) - elif instance[1]['type'] == 'onion': - invidiousList['tor'].append(instance[1]['uri']) - mightyList['invidious'] = invidiousList - print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + 'Invidious') + name = 'Invidious' + frontend = 'invidious' + url = 'https://api.invidious.io/instances.json' + try: + _list = {} + _list['clearnet'] = [] + _list['tor'] = [] + _list['i2p'] = [] + _list['loki'] = [] + r = requests.get(url) + rJson = json.loads(r.text) + for instance in rJson: + if instance[1]['type'] == 'https': + _list['clearnet'].append(instance[1]['uri']) + elif instance[1]['type'] == 'onion': + _list['tor'].append(instance[1]['uri']) + elif instance[1]['type'] == 'i2p': + _list['i2p'].append(instance[1]['uri']) + mightyList[frontend] = _list + print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + name) + except Exception: + fetchCache(frontend, name) + logging.error(traceback.format_exc()) def piped(): - r = requests.get( - 'https://raw.githubusercontent.com/wiki/TeamPiped/Piped/Instances.md') - - tmp = re.findall( - '(?:[^\s\/]+\.)+[a-zA-Z]+ (?:\(Official\) )?\| (https:\/{2}(?:[^\s\/]+\.)+[a-zA-Z]+) \| ', r.text) - _list = {} - _list['normal'] = [] - _list['tor'] = [] - _list['i2p'] = [] - _list['loki'] = [] - for item in tmp: - try: - url = requests.get(item, timeout=5).url - if url.strip("/") == item: + frontend = 'piped' + name = 'Piped' + try: + _list = {} + _list['clearnet'] = [] + _list['tor'] = [] + _list['i2p'] = [] + _list['loki'] = [] + r = requests.get( + 'https://raw.githubusercontent.com/wiki/TeamPiped/Piped/Instances.md') + + tmp = re.findall( + r'(?:[^\s\/]+\.)+[a-zA-Z]+ (?:\(Official\) )?\| (https:\/{2}(?:[^\s\/]+\.)+[a-zA-Z]+) \| ', r.text) + for item in tmp: + try: + url = requests.get(item, timeout=5).url + if url.strip("/") == item: + continue + else: + _list['clearnet'].append(url) + except Exception: + logging.error(traceback.format_exc()) continue - else: - _list['normal'].append(url) - except: - continue - mightyList['piped'] = _list - print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + 'Piped') + mightyList[frontend] = _list + print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + name) + except Exception: + fetchCache(frontend, name) + logging.error(traceback.format_exc()) def pipedMaterial(): - r = requests.get( - 'https://raw.githubusercontent.com/mmjee/Piped-Material/master/README.md') - - tmp = re.findall( - r"\| (https?:\/{2}(?:\S+\.)+[a-zA-Z0-9]*) +\|", r.text) - pipedMaterialList = {} - pipedMaterialList['normal'] = [] - pipedMaterialList['tor'] = [] - pipedMaterialList['i2p'] = [] - pipedMaterialList['loki'] = [] - for item in tmp: - pipedMaterialList['normal'].append(item) - mightyList['pipedMaterial'] = pipedMaterialList - print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + 'pipedMaterial') + fetchRegexList('pipedMaterial', 'Piped-Material', 'https://raw.githubusercontent.com/mmjee/Piped-Material/master/README.md', r"\| (https?:\/{2}(?:\S+\.)+[a-zA-Z0-9]*) +\| Production") def cloudtube(): - json_object = json.dumps(mightyList, ensure_ascii=False, indent=2) - with open('./src/instances/cloudtube.json') as file: - mightyList['cloudtube'] = json.load(file) - print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + 'CloudTube') + fetchFromFile('cloudtube', 'Cloudtube') def proxitok(): - r = requests.get( - 'https://raw.githubusercontent.com/wiki/pablouser1/ProxiTok/Public-instances.md') - - tmp = re.findall( - r"\| \[.*\]\(([-a-zA-Z0-9@:%_\+.~#?&//=]{2,}\.[a-z]{2,}\b(?:\/[-a-zA-Z0-9@:%_\+.~#?&//=]*)?)\)*\|*[A-Z]{0,}.*\|.*\|", r.text) - proxiTokList = {} - proxiTokList['normal'] = [] - proxiTokList['tor'] = [] - proxiTokList['i2p'] = [] - proxiTokList['loki'] = [] - for item in tmp: - proxiTokList['normal'].append(re.sub(r'/$', '', item)) - mightyList['proxiTok'] = proxiTokList - print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + 'ProxiTok') + fetchRegexList('proxiTok', 'ProxiTok', 'https://raw.githubusercontent.com/wiki/pablouser1/ProxiTok/Public-instances.md', r"\| \[.*\]\(([-a-zA-Z0-9@:%_\+.~#?&//=]{2,}\.[a-z]{2,}\b(?:\/[-a-zA-Z0-9@:%_\+.~#?&//=]*)?)\)(?: \(Official\))? +\|(?:(?: [A-Z]*.*\|.*\|)|(?:$))") def send(): - r = requests.get( - 'https://gitlab.com/timvisee/send-instances/-/raw/master/README.md') - tmp = re.findall( - r"- ([-a-zA-Z0-9@:%_\+.~#?&//=]{2,}\.[a-z0-9]{2,}\b(?:\/[-a-zA-Z0-9@:%_\+.~#?&//=]*)?)\)*\|*[A-Z]{0,}", r.text) - sendList = {} - sendList['normal'] = [] - sendList['tor'] = [] - sendList['i2p'] = [] - sendList['loki'] = [] - for item in tmp: - sendList['normal'].append(item) - mightyList['send'] = sendList - print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + 'Send') + fetchRegexList('send', 'Send', 'https://gitlab.com/timvisee/send-instances/-/raw/master/README.md', r"- ([-a-zA-Z0-9@:%_\+.~#?&//=]{2,}\.[a-z0-9]{2,}\b(?:\/[-a-zA-Z0-9@:%_\+.~#?&//=]*)?)\)*\|*[A-Z]{0,}") def nitter(): - r = requests.get('https://raw.githubusercontent.com/wiki/zedeus/nitter/Instances.md') - tmp = re.findall( - r"(?:(?:\| \[(?:\S+\.)+[a-zA-Z]+\]\((https?:\/{2}(?:\S+\.)+[a-zA-Z]+)\/?\) (?:\((?:\S+ ?\S*)\) )? *\| (?:✅|🇩🇪) +\|(?:(?:\n)|(?: (?:❌)|(?: ✅)|(?: ❓)|(?: \[))))|(?:- \[(?:\S+\.)+(?:(?:i2p)|(?:loki))\]\((https?:\/{2}(?:\S+\.)(?:(?:i2p)|(?:loki)))\/?\)))", r.text) - - nitterList = {} - nitterList['normal'] = [] - nitterList['tor'] = [] - nitterList['i2p'] = [] - nitterList['loki'] = [] - for item in tmp: - for i in item: - if i == '': - continue - else: - item = i - if re.search(torRegex, item): - nitterList['tor'].append(item) - elif re.search(i2pRegex, item): - nitterList['i2p'].append(item) - elif re.search(lokiRegex, item): - nitterList['loki'].append(item) - else: - nitterList['normal'].append(item) - mightyList['nitter'] = nitterList - print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + 'Nitter') + fetchRegexList('nitter', 'Nitter', 'https://raw.githubusercontent.com/wiki/zedeus/nitter/Instances.md', r"(?:(?:\| )|(?:- ))\[(?:(?:\S+\.)+[a-zA-Z0-9]+)\/?\]\((https?:\/{2}(?:\S+\.)+[a-zA-Z0-9]+)\/?\)(?:(?: (?:\((?:\S+ ?\S*)\) )? *\| [^❌]{1,4} +\|(?:(?:\n)|(?: ❌)|(?: ✅)|(?: ❓)|(?: \[)))|(?:\n))") def bibliogram(): - r = requests.get('https://bibliogram.art/api/instances') - rJson = json.loads(r.text) - bibliogramList = {} - bibliogramList['normal'] = [] - bibliogramList['tor'] = [] - bibliogramList['i2p'] = [] - bibliogramList['loki'] = [] - for item in rJson['data']: - bibliogramList['normal'].append(item['address']) - mightyList['bibliogram'] = bibliogramList - print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + 'Bibliogram') + fetchFromFile('bibliogram', 'Bibliogram') def libreddit(): - r = requests.get( - 'https://raw.githubusercontent.com/spikecodes/libreddit/master/README.md') - libredditList = {} - libredditList['normal'] = [] - libredditList['tor'] = [] - libredditList['i2p'] = [] - libredditList['loki'] = [] - - tmp = re.findall( - r"\| \[.*\]\(([-a-zA-Z0-9@:%_\+.~#?&//=]{2,}\.[a-z]{2,}\b(?:\/[-a-zA-Z0-9@:%_\+.~#?&//=]*)?)\)*\|*[A-Z]{0,}.*\|.*\|", r.text) - - for item in tmp: - if re.search(torRegex, item): - libredditList['tor'].append(item) - else: - libredditList['normal'].append(item) - mightyList['libreddit'] = libredditList - print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + 'LibReddit') + fetchJsonList('libreddit', 'Libreddit', 'https://github.com/libbacon/libreddit-instances/raw/master/instances.json', {'clearnet': 'url', 'tor': 'onion', 'i2p': 'i2p', 'loki': None}, True) def teddit(): - r = requests.get( - 'https://codeberg.org/teddit/teddit/raw/branch/main/instances.json') - rJson = json.loads(r.text) - tedditList = {} - tedditList['normal'] = [] - tedditList['tor'] = [] - tedditList['i2p'] = [] - tedditList['loki'] = [] - for item in rJson: - url = item['url'] - if url != '': - tedditList['normal'].append(url) - if 'onion' in item: - onion = item['onion'] - if onion != '': - tedditList['tor'].append(onion) - - mightyList['teddit'] = tedditList - print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + 'Teddit') + fetchJsonList('teddit', 'Teddit', 'https://codeberg.org/teddit/teddit/raw/branch/main/instances.json', {'clearnet': 'url', 'tor': 'onion', 'i2p': 'i2p', 'loki': None}, False) def wikiless(): - r = requests.get('https://wikiless.org/instances.json') - rJson = json.loads(r.text) - wikilessList = {} - wikilessList['normal'] = [] - wikilessList['tor'] = [] - wikilessList['i2p'] = [] - wikilessList['loki'] = [] - for item in rJson: - if 'url' in item: - if item['url'].strip() != "": - wikilessList['normal'].append(item['url']) - if 'onion' in item: - if item['onion'].strip() != "": - wikilessList['tor'].append(item['onion']) - if 'i2p' in item: - if item['i2p'].strip() != "": - wikilessList['i2p'].append(item['i2p']) - mightyList['wikiless'] = wikilessList - print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + 'Wikiless') + fetchJsonList('wikiless', 'Wikiless', 'https://wikiless.org/instances.json', {'clearnet': 'url', 'tor': 'onion', 'i2p': 'i2p', 'loki': None}, False) def scribe(): - r = requests.get( - 'https://git.sr.ht/~edwardloveall/scribe/blob/main/docs/instances.json') - rJson = json.loads(r.text) - scribeList = {} - scribeList['normal'] = [] - scribeList['tor'] = [] - scribeList['i2p'] = [] - scribeList['loki'] = [] - for item in rJson: - scribeList['normal'].append(item) - mightyList['scribe'] = scribeList - print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + 'Scribe') + fetchJsonList('scribe', 'Scribe', 'https://git.sr.ht/~edwardloveall/scribe/blob/main/docs/instances.json', None, False) def quetre(): - r = requests.get( - 'https://raw.githubusercontent.com/zyachel/quetre/main/README.md') - _list = {} - _list['normal'] = [] - _list['tor'] = [] - _list['i2p'] = [] - _list['loki'] = [] - - tmp = re.findall( - r"\| \[.*\]\(([-a-zA-Z0-9@:%_\+.~#?&//=]{2,}\.[a-z]{2,}\b(?:\/[-a-zA-Z0-9@:%_\+.~#?&//=]*)?)\)*\|*[A-Z]{0,}.*\|.*\|", r.text) - - - for item in tmp: - if re.search(torRegex, item): - _list['tor'].append(item) - else: - _list['normal'].append(item) - mightyList['quetre'] = _list - print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + 'Quetre') + fetchRegexList('quetre', 'Quetre', 'https://raw.githubusercontent.com/zyachel/quetre/main/README.md', r"\| \[.*\]\(([-a-zA-Z0-9@:%_\+.~#?&//=]{2,}\.[a-z0-9]{2,}\b(?:\/[-a-zA-Z0-9@:%_\+.~#?&//=]*)?)\)*\|*[A-Z]{0,}.*\|.*\|") def libremdb(): - r = requests.get( - 'https://raw.githubusercontent.com/zyachel/libremdb/main/README.md') - _list = {} - _list['normal'] = [] - _list['tor'] = [] - _list['i2p'] = [] - _list['loki'] = [] - - tmp = re.findall( - r"\| ([-a-zA-Z0-9@:%_\+.~#?&//=]{2,}\.[a-z]{2,}\b(?:\/[-a-zA-Z0-9@:%_\+.~#?&//=]*)?)*\|*[A-Z]{0,}.*\|.*\|", r.text) - - - for item in tmp: - if item.strip() == "": - continue - if re.search(torRegex, item): - _list['tor'].append(item) - else: - _list['normal'].append(item) + fetchRegexList('libremdb', 'libremdb', 'https://raw.githubusercontent.com/zyachel/libremdb/main/README.md', r"\| \[.*\]\(([-a-zA-Z0-9@:%_\+.~#?&//=]{2,}\.[a-z0-9]{2,}\b(?:\/[-a-zA-Z0-9@:%_\+.~#?&//=]*)?)\)*\|*[A-Z]{0,}.*\|.*\|") - mightyList['libremdb'] = _list - print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + 'Libremdb') def simpleertube(): - r = requests.get('https://simple-web.org/instances/simpleertube') - _list = {} - _list['normal'] = [] - _list['tor'] = [] - _list['i2p'] = [] - _list['loki'] = [] - for item in r.text.strip().split('\n'): - _list['normal'].append('https://' + item) - - mightyList['simpleertube'] = _list - print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + 'SimpleerTube') + fetchTextList('simpleertube', 'SimpleerTube', 'https://simple-web.org/instances/simpleertube', 'https://') def simplytranslate(): r = requests.get('https://simple-web.org/instances/simplytranslate') simplyTranslateList = {} - simplyTranslateList['normal'] = [] + simplyTranslateList['clearnet'] = [] for item in r.text.strip().split('\n'): - simplyTranslateList['normal'].append('https://' + item) + simplyTranslateList['clearnet'].append('https://' + item) r = requests.get('https://simple-web.org/instances/simplytranslate_onion') simplyTranslateList['tor'] = [] @@ -397,31 +365,19 @@ def simplytranslate(): def linvgatranslate(): - r = requests.get( - 'https://raw.githubusercontent.com/TheDavidDelta/lingva-translate/main/instances.json') - rJson = json.loads(r.text) - lingvaList = {} - lingvaList['normal'] = [] - lingvaList['tor'] = [] - lingvaList['i2p'] = [] - lingvaList['loki'] = [] - for item in rJson: - lingvaList['normal'].append(item) - - mightyList['lingva'] = lingvaList - print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + 'LinvgaTranslate') + fetchJsonList('lingva', 'LingvaTranslate', 'https://raw.githubusercontent.com/TheDavidDelta/lingva-translate/main/instances.json', None, False) def searx_searxng(): r = requests.get('https://searx.space/data/instances.json') rJson = json.loads(r.text) searxList = {} - searxList['normal'] = [] + searxList['clearnet'] = [] searxList['tor'] = [] searxList['i2p'] = [] searxList['loki'] = [] searxngList = {} - searxngList['normal'] = [] + searxngList['clearnet'] = [] searxngList['tor'] = [] searxngList['i2p'] = [] searxngList['loki'] = [] @@ -431,16 +387,16 @@ def searx_searxng(): searxngList['tor'].append(item[:-1]) else: searxList['tor'].append(item[:-1]) - elif re.search(torRegex, item[:-1]): + elif re.search(i2pRegex, item[:-1]): if (rJson['instances'][item].get('generator') == 'searxng'): searxngList['i2p'].append(item[:-1]) else: searxList['i2p'].append(item[:-1]) else: if (rJson['instances'][item].get('generator') == 'searxng'): - searxngList['normal'].append(item[:-1]) + searxngList['clearnet'].append(item[:-1]) else: - searxList['normal'].append(item[:-1]) + searxList['clearnet'].append(item[:-1]) mightyList['searx'] = searxList mightyList['searxng'] = searxngList @@ -448,160 +404,66 @@ def searx_searxng(): def whoogle(): - r = requests.get( - 'https://raw.githubusercontent.com/benbusby/whoogle-search/main/misc/instances.txt') - tmpList = r.text.strip().split('\n') - whoogleList = {} - whoogleList['normal'] = [] - whoogleList['tor'] = [] - whoogleList['i2p'] = [] - whoogleList['loki'] = [] - for item in tmpList: - if re.search(torRegex, item): - whoogleList['tor'].append(item) - elif re.search(torRegex, item): - whoogleList['i2p'].append(item) - else: - whoogleList['normal'].append(item) - mightyList['whoogle'] = whoogleList - print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + 'Whoogle') + fetchTextList('whoogle', 'Whoogle', 'https://raw.githubusercontent.com/benbusby/whoogle-search/main/misc/instances.txt', '') def librex(): - r = requests.get( - 'https://raw.githubusercontent.com/hnhx/librex/main/README.md') - _list = {} - _list['normal'] = [] - _list['tor'] = [] - _list['i2p'] = [] - _list['loki'] = [] - - tmp = re.findall( - r"\| {1,2}\[(?:(?:[a-zA-Z0-9]+\.)+[a-zA-Z]{2,}|✅)\]\((https?:\/{2}(?:[a-zA-Z0-9]+\.)+[a-zA-Z0-9]{2,})", r.text) - - for item in tmp: - if item.strip() == "": - continue - elif re.search(torRegex, item): - _list['tor'].append(item) - elif re.search(i2pRegex, item): - _list['i2p'].append(item) - else: - _list['normal'].append(item) - mightyList['librex'] = _list - print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + 'Librex') + fetchJsonList('librex', 'LibreX', 'https://raw.githubusercontent.com/hnhx/librex/main/instances.json', {'clearnet': 'clearnet', 'tor': 'tor', 'i2p': 'i2p', 'loki': None}, True) def 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'] = [] - rimgoList['i2p'] = [] - rimgoList['loki'] = [] - for item in rJson: - if 'url' in item: - rimgoList['normal'].append(item['url']) - if 'onion' in item: - rimgoList['tor'].append(item['onion']) - if 'i2p' in item: - rimgoList['i2p'].append(item['i2p']) - mightyList['rimgo'] = rimgoList - print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + 'Rimgo') + fetchJsonList('rimgo', 'rimgo', 'https://codeberg.org/video-prize-ranch/rimgo/raw/branch/main/instances.json', {'clearnet': 'url', 'tor': 'onion', 'i2p': 'i2p', 'loki': None}, False) def librarian(): - r = requests.get( - 'https://codeberg.org/librarian/librarian/raw/branch/main/instances.json') - rJson = json.loads(r.text) - librarianList = {} - librarianList['normal'] = [] - librarianList['tor'] = [] - librarianList['i2p'] = [] - librarianList['loki'] = [] - instances = rJson['instances'] - for item in instances: - url = item['url'] - if url.strip() == "": - continue - elif re.search(torRegex, url): - librarianList['tor'].append(url) - elif re.search(i2pRegex, url): - librarianList['i2p'].append(url) - elif re.search(lokiRegex, url): - librarianList['loki'].append(url) - else: - librarianList['normal'].append(url) - mightyList['librarian'] = librarianList - print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + 'Librarian') + fetchJsonList('librarian', 'Librarian', 'https://codeberg.org/librarian/librarian/raw/branch/main/instances.json', 'url', True) def neuters(): - json_object = json.dumps(mightyList, ensure_ascii=False, indent=2) - with open('./src/instances/neuters.json') as file: - mightyList['neuters'] = json.load(file) - print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + 'Neuters') + fetchFromFile('neuters', 'Neuters') def beatbump(): - json_object = json.dumps(mightyList, ensure_ascii=False, indent=2) - with open('./src/instances/beatbump.json') as file: - mightyList['beatbump'] = json.load(file) - print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + 'Beatbump') + fetchFromFile('beatbump', 'Beatbump') def hyperpipe(): - r = requests.get( - 'https://codeberg.org/Hyperpipe/pages/raw/branch/main/api/frontend.json') - rJson = json.loads(r.text) - hyperpipeList = {} - hyperpipeList['normal'] = [] - hyperpipeList['tor'] = [] - hyperpipeList['i2p'] = [] - hyperpipeList['loki'] = [] - for item in rJson: - url = item['url'] - if url.strip() == "": - continue - elif re.search(torRegex, url): - hyperpipeList['tor'].append(url) - elif re.search(i2pRegex, url): - hyperpipeList['i2p'].append(url) - elif re.search(lokiRegex, url): - hyperpipeList['loki'].append(url) - else: - hyperpipeList['normal'].append(url) - mightyList['hyperpipe'] = hyperpipeList - print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + 'Hyperpipe') + fetchJsonList('hyperpipe', 'Hyperpipe', 'https://codeberg.org/Hyperpipe/pages/raw/branch/main/api/frontend.json', 'url', False) def facil(): - json_object = json.dumps(mightyList, ensure_ascii=False, indent=2) - with open('./src/instances/facil.json') as file: - mightyList['facil'] = json.load(file) - print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + 'FacilMap') + fetchFromFile('facil', 'FacilMap') + + +def libreTranslate(): + fetchRegexList('libreTranslate', 'LibreTranslate', 'https://raw.githubusercontent.com/LibreTranslate/LibreTranslate/main/README.md', r"\[(?:[^\s\/]+\.)+[a-zA-Z0-9]+\]\((https?:\/{2}(?:[^\s\/]+\.)+[a-zA-Z0-9]+)\/?\)\|") + + +def breezeWiki(): + fetchRegexList('breezeWiki', 'BreezeWiki', 'https://gitdab.com/cadence/breezewiki-docs/raw/branch/main/docs.scrbl', r"\(\"[^\n\s\r\t\f\v\"]+\" \"https?:\/{2}(?:[^\s\/]+\.)+[a-zA-Z0-9]+(?:\/[^\s\/]+)*\" \"(https?:\/{2}(?:[^\s\/]+\.)+[a-zA-Z0-9]+(?:\/[^\s\/]+)*)\"\)") def peertube(): - r = requests.get( - 'https://instances.joinpeertube.org/api/v1/instances?start=0&count=1045&sort=-createdAt') - rJson = json.loads(r.text) + try: + r = requests.get( + 'https://instances.joinpeertube.org/api/v1/instances?start=0&count=1045&sort=-createdAt') + rJson = json.loads(r.text) - myList = [] - for k in rJson['data']: - myList.append('https://'+k['host']) + myList = ['https://search.joinpeertube.org'] + for k in rJson['data']: + myList.append('https://'+k['host']) - mightyList['peertube'] = myList - print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + 'PeerTube') + mightyList['peertube'] = myList + print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + 'PeerTube') + except Exception: + fetchCache('peertube', 'PeerTube') def isValid(url): # This code is contributed by avanitrachhadiya2155 try: result = urlparse(url) return all([result.scheme, result.netloc]) - except: + except Exception: return False @@ -621,6 +483,7 @@ quetre() libremdb() simplytranslate() linvgatranslate() +libreTranslate() searx_searxng() whoogle() librex() @@ -631,10 +494,13 @@ beatbump() hyperpipe() facil() simpleertube() +breezeWiki() mightyList = filterLastSlash(mightyList) +mightyList = idnaEncode(mightyList) cloudflare = [] authenticate = [] +offline = [] for k1, v1 in mightyList.items(): if type(mightyList[k1]) is dict: for k2, v2 in mightyList[k1].items(): @@ -647,12 +513,15 @@ for k1, v1 in mightyList.items(): cloudflare.append(instance) if not instance.endswith('.onion') and not instance.endswith('.i2p') and not instance.endswith('.loki') and is_authenticate(instance): authenticate.append(instance) + elif not instance.endswith('.onion') and not instance.endswith('.i2p') and not instance.endswith('.loki') and is_offline(instance): + offline.append(instance) peertube() blacklist = { 'cloudflare': cloudflare, - 'authenticate': authenticate + 'authenticate': authenticate, + 'offline': offline } # Writing to file diff --git a/src/instances/neuters.json b/src/instances/neuters.json index 9e224a52..8023079b 100644 --- a/src/instances/neuters.json +++ b/src/instances/neuters.json @@ -1,5 +1,5 @@ { - "normal": ["https://neuters.de"], + "clearnet": ["https://neuters.de"], "tor": [], "i2p": [], "loki": [] |