Added LibMedium, Dumb, AnonymousOverflow
このコミットが含まれているのは:
コミット
a4bb1b4a78
|
@ -11,6 +11,7 @@
|
||||||
- Teddit: [https://codeberg.org/teddit/teddit/src/branch/main/instances.json](https://codeberg.org/teddit/teddit/src/branch/main/instances.json)
|
- Teddit: [https://codeberg.org/teddit/teddit/src/branch/main/instances.json](https://codeberg.org/teddit/teddit/src/branch/main/instances.json)
|
||||||
- Rimgo: [https://codeberg.org/video-prize-ranch/rimgo/src/branch/main/instances.json](https://codeberg.org/video-prize-ranch/rimgo/src/branch/main/instances.json)
|
- Rimgo: [https://codeberg.org/video-prize-ranch/rimgo/src/branch/main/instances.json](https://codeberg.org/video-prize-ranch/rimgo/src/branch/main/instances.json)
|
||||||
- Scribe: [https://git.sr.ht/~edwardloveall/scribe/tree/main/item/docs/instances.json](https://git.sr.ht/~edwardloveall/scribe/tree/main/item/docs/instances.json)
|
- Scribe: [https://git.sr.ht/~edwardloveall/scribe/tree/main/item/docs/instances.json](https://git.sr.ht/~edwardloveall/scribe/tree/main/item/docs/instances.json)
|
||||||
|
- LibMedium: [https://github.com/realaravinth/libmedium#instances](https://github.com/realaravinth/libmedium#instances)
|
||||||
- Quetre: [https://github.com/zyachel/quetre#instances](https://github.com/zyachel/quetre#instances)
|
- Quetre: [https://github.com/zyachel/quetre#instances](https://github.com/zyachel/quetre#instances)
|
||||||
- libremdb: [https://github.com/zyachel/libremdb#instances](https://github.com/zyachel/libremdb#instances)
|
- libremdb: [https://github.com/zyachel/libremdb#instances](https://github.com/zyachel/libremdb#instances)
|
||||||
- Librarian: [https://codeberg.org/librarian/librarian/src/branch/main/instances.json](https://codeberg.org/librarian/librarian/src/branch/main/instances.json)
|
- Librarian: [https://codeberg.org/librarian/librarian/src/branch/main/instances.json](https://codeberg.org/librarian/librarian/src/branch/main/instances.json)
|
||||||
|
@ -21,6 +22,8 @@
|
||||||
- LingvaTranslate: [https://github.com/thedaviddelta/lingva-translate/blob/main/instances.json](https://github.com/thedaviddelta/lingva-translate/blob/main/instances.json)
|
- LingvaTranslate: [https://github.com/thedaviddelta/lingva-translate/blob/main/instances.json](https://github.com/thedaviddelta/lingva-translate/blob/main/instances.json)
|
||||||
- LibreTranslate: [https://github.com/LibreTranslate/LibreTranslate#mirrors](https://github.com/LibreTranslate/LibreTranslate#mirrors)
|
- LibreTranslate: [https://github.com/LibreTranslate/LibreTranslate#mirrors](https://github.com/LibreTranslate/LibreTranslate#mirrors)
|
||||||
- Send: [https://github.com/timvisee/send-instances](https://github.com/timvisee/send-instances)
|
- Send: [https://github.com/timvisee/send-instances](https://github.com/timvisee/send-instances)
|
||||||
|
- Dumb: [https://github.com/rramiachraf/dumb#public-instances](https://github.com/rramiachraf/dumb#public-instances)
|
||||||
|
- AnonymousOverflow: [https://github.com/httpjamesm/AnonymousOverflow#clearnet-instances](https://github.com/httpjamesm/AnonymousOverflow#clearnet-instances)
|
||||||
|
|
||||||
|
|
||||||
## How to run:
|
## How to run:
|
||||||
|
|
|
@ -5,10 +5,9 @@
|
||||||
"https://yt.oelrichsgarcia.de",
|
"https://yt.oelrichsgarcia.de",
|
||||||
"https://piped.video",
|
"https://piped.video",
|
||||||
"https://piped.tokhmi.xyz",
|
"https://piped.tokhmi.xyz",
|
||||||
"https://piped.moomoo.me",
|
|
||||||
"https://piped.mha.fi",
|
"https://piped.mha.fi",
|
||||||
"https://piped.garudalinux.org",
|
"https://piped.garudalinux.org",
|
||||||
"https://watch.leptons.xyz",
|
"https://efy.piped.pages.dev",
|
||||||
"https://piped.lunar.icu",
|
"https://piped.lunar.icu",
|
||||||
"https://piped.video",
|
"https://piped.video",
|
||||||
"https://proxitok.marcopisco.com",
|
"https://proxitok.marcopisco.com",
|
||||||
|
@ -62,11 +61,15 @@
|
||||||
"https://search.albony.xyz",
|
"https://search.albony.xyz",
|
||||||
"https://search.garudalinux.org",
|
"https://search.garudalinux.org",
|
||||||
"https://search.dr460nf1r3.org",
|
"https://search.dr460nf1r3.org",
|
||||||
|
"https://whoogle.hxvy0.gq",
|
||||||
"https://whoogle.lunar.icu",
|
"https://whoogle.lunar.icu",
|
||||||
"https://whoogle.rhyshl.live",
|
"https://whoogle.rhyshl.live",
|
||||||
"https://rimgo.privacytools.io",
|
"https://rimgo.privacytools.io",
|
||||||
"https://rimgo.marcopisco.com",
|
"https://rimgo.marcopisco.com",
|
||||||
"https://rimgo.lunar.icu",
|
"https://rimgo.lunar.icu",
|
||||||
"https://beatbump.ml"
|
"https://imgur.010032.xyz",
|
||||||
|
"https://beatbump.ml",
|
||||||
|
"https://dumb.lunar.icu",
|
||||||
|
"https://overflow.lunar.icu"
|
||||||
]
|
]
|
||||||
}
|
}
|
|
@ -0,0 +1,53 @@
|
||||||
|
import traceback
|
||||||
|
import logging
|
||||||
|
import requests
|
||||||
|
import json
|
||||||
|
from urllib.parse import urlparse
|
||||||
|
import re
|
||||||
|
from colorama import Fore, Style
|
||||||
|
import socket
|
||||||
|
|
||||||
|
def get_cloudflare_ips():
|
||||||
|
r = requests.get('https://www.cloudflare.com/ips-v4')
|
||||||
|
return r.text.split('\n')
|
||||||
|
|
||||||
|
|
||||||
|
cloudflare_ips = get_cloudflare_ips()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
def ip2bin(ip): return "".join(
|
||||||
|
map(
|
||||||
|
str,
|
||||||
|
[
|
||||||
|
"{0:08b}".format(int(x)) for x in ip.split(".")
|
||||||
|
]
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def is_cloudflare(url):
|
||||||
|
instance_ip = None
|
||||||
|
try:
|
||||||
|
instance_ip = socket.gethostbyname(urlparse(url).hostname)
|
||||||
|
if instance_ip is None:
|
||||||
|
return False
|
||||||
|
except Exception:
|
||||||
|
return False
|
||||||
|
instance_bin = ip2bin(instance_ip)
|
||||||
|
|
||||||
|
for cloudflare_ip_mask in cloudflare_ips:
|
||||||
|
cloudflare_ip = cloudflare_ip_mask.split('/')[0]
|
||||||
|
cloudflare_bin = ip2bin(cloudflare_ip)
|
||||||
|
|
||||||
|
mask = int(cloudflare_ip_mask.split('/')[1])
|
||||||
|
cloudflare_bin_masked = cloudflare_bin[:mask]
|
||||||
|
instance_bin_masked = instance_bin[:mask]
|
||||||
|
|
||||||
|
if cloudflare_bin_masked == instance_bin_masked:
|
||||||
|
print(url + ' is behind ' + Fore.RED +
|
||||||
|
'cloudflare' + Style.RESET_ALL)
|
||||||
|
return True
|
||||||
|
return False
|
||||||
|
|
||||||
|
is_cloudflare('https://pipedapi-libre.kavin.rocks')
|
108
data.json
108
data.json
|
@ -10,34 +10,34 @@
|
||||||
"https://invidious.nerdvpn.de",
|
"https://invidious.nerdvpn.de",
|
||||||
"https://invidious.tiekoetter.com",
|
"https://invidious.tiekoetter.com",
|
||||||
"https://yt.artemislena.eu",
|
"https://yt.artemislena.eu",
|
||||||
"https://invidious.flokinet.to",
|
|
||||||
"https://inv.bp.projectsegfau.lt",
|
"https://inv.bp.projectsegfau.lt",
|
||||||
"https://inv.odyssey346.dev",
|
"https://inv.odyssey346.dev",
|
||||||
"https://invidious.baczek.me",
|
"https://invidious.baczek.me",
|
||||||
"https://invidious.snopyta.org",
|
"https://invidious.snopyta.org",
|
||||||
"https://invidious.sethforprivacy.com",
|
"https://invidious.sethforprivacy.com",
|
||||||
"https://yt.funami.tech",
|
"https://yt.funami.tech",
|
||||||
"https://invidious.drivet.xyz",
|
|
||||||
"https://iv.ggtyler.dev",
|
|
||||||
"https://invidious.epicsite.xyz",
|
"https://invidious.epicsite.xyz",
|
||||||
"https://invidious.silur.me",
|
"https://iv.ggtyler.dev",
|
||||||
|
"https://yt.oelrichsgarcia.de",
|
||||||
"https://vid.priv.au",
|
"https://vid.priv.au",
|
||||||
"https://invidious.slipfox.xyz",
|
|
||||||
"https://inv.vern.cc",
|
"https://inv.vern.cc",
|
||||||
"https://invidious.weblibre.org",
|
|
||||||
"https://invidious.esmailelbob.xyz",
|
|
||||||
"https://iv.melmac.space",
|
|
||||||
"https://invidious.dhusch.de",
|
|
||||||
"https://invidious.privacydev.net",
|
|
||||||
"https://invidious.slipfox.xyz",
|
"https://invidious.slipfox.xyz",
|
||||||
|
"https://invidious.esmailelbob.xyz",
|
||||||
|
"https://invidious.dhusch.de",
|
||||||
|
"https://invidious.weblibre.org",
|
||||||
|
"https://iv.melmac.space",
|
||||||
|
"https://invidious.silur.me",
|
||||||
"https://invidious.lidarshield.cloud",
|
"https://invidious.lidarshield.cloud",
|
||||||
|
"https://invidious.drivet.xyz",
|
||||||
|
"https://invidious.privacydev.net",
|
||||||
|
"https://invidious.flokinet.to",
|
||||||
"https://invidious.namazso.eu"
|
"https://invidious.namazso.eu"
|
||||||
],
|
],
|
||||||
"tor": [
|
"tor": [
|
||||||
"http://w6ijuptxiku4xpnnaetxvnkc5vqcdu7mgns2u77qefoixi63vbvnpnqd.onion",
|
"http://w6ijuptxiku4xpnnaetxvnkc5vqcdu7mgns2u77qefoixi63vbvnpnqd.onion",
|
||||||
"http://kbjggqkzv65ivcqj6bumvp337z6264huv5kpkwuv6gu5yjiskvan7fad.onion",
|
"http://kbjggqkzv65ivcqj6bumvp337z6264huv5kpkwuv6gu5yjiskvan7fad.onion",
|
||||||
"http://grwp24hodrefzvjjuccrkw3mjq4tzhaaq32amf33dzpmuxe7ilepcmad.onion",
|
"http://grwp24hodrefzvjjuccrkw3mjq4tzhaaq32amf33dzpmuxe7ilepcmad.onion",
|
||||||
"http://osbivz6guyeahrwp2lnwyjk2xos342h4ocsxyqrlaopqjuhwn2djiiyd.onion",
|
"http://c7hqkpkpemu6e7emz5b4vyz7idjgdvgaaa3dyimmeojqbgpea3xqjoid.onion",
|
||||||
"http://u2cvlit75owumwpy4dj2hsmvkq7nvrclkpht7xgyye2pyoxhpmclkrad.onion",
|
"http://u2cvlit75owumwpy4dj2hsmvkq7nvrclkpht7xgyye2pyoxhpmclkrad.onion",
|
||||||
"http://euxxcnhsynwmfidvhjf6uzptsmh4dipkmgdmcmxxuo7tunp3ad2jrwyd.onion",
|
"http://euxxcnhsynwmfidvhjf6uzptsmh4dipkmgdmcmxxuo7tunp3ad2jrwyd.onion",
|
||||||
"http://invidious.esmail5pdn24shtvieloeedh7ehz3nrwcdivnfhfcedl7gf4kwddhkqd.onion",
|
"http://invidious.esmail5pdn24shtvieloeedh7ehz3nrwcdivnfhfcedl7gf4kwddhkqd.onion",
|
||||||
|
@ -46,7 +46,7 @@
|
||||||
"http://ng27owmagn5amdm7l5s3rsqxwscl5ynppnis5dqcasogkyxcfqn7psid.onion",
|
"http://ng27owmagn5amdm7l5s3rsqxwscl5ynppnis5dqcasogkyxcfqn7psid.onion",
|
||||||
"http://iv.odysfvr23q5wgt7i456o5t3trw2cw5dgn56vbjfbq2m7xsc5vqbqpcyd.onion",
|
"http://iv.odysfvr23q5wgt7i456o5t3trw2cw5dgn56vbjfbq2m7xsc5vqbqpcyd.onion",
|
||||||
"http://invidious.g4c3eya4clenolymqbpgwz3q3tawoxw56yhzk4vugqrl6dtu3ejvhjid.onion",
|
"http://invidious.g4c3eya4clenolymqbpgwz3q3tawoxw56yhzk4vugqrl6dtu3ejvhjid.onion",
|
||||||
"http://c7hqkpkpemu6e7emz5b4vyz7idjgdvgaaa3dyimmeojqbgpea3xqjoid.onion"
|
"http://osbivz6guyeahrwp2lnwyjk2xos342h4ocsxyqrlaopqjuhwn2djiiyd.onion"
|
||||||
],
|
],
|
||||||
"i2p": [
|
"i2p": [
|
||||||
"http://verni6dr4qxjgjumnvesxerh5rvhv6oy5ddeibaqy5d7tgbiiyfa.b32.i2p"
|
"http://verni6dr4qxjgjumnvesxerh5rvhv6oy5ddeibaqy5d7tgbiiyfa.b32.i2p"
|
||||||
|
@ -57,22 +57,18 @@
|
||||||
"clearnet": [
|
"clearnet": [
|
||||||
"https://piped.video",
|
"https://piped.video",
|
||||||
"https://piped.tokhmi.xyz",
|
"https://piped.tokhmi.xyz",
|
||||||
"https://piped.moomoo.me",
|
|
||||||
"https://piped.mha.fi",
|
"https://piped.mha.fi",
|
||||||
"https://watch.whatever.social",
|
"https://watch.whatever.social",
|
||||||
"https://piped.garudalinux.org",
|
"https://piped.garudalinux.org",
|
||||||
"https://watch.leptons.xyz",
|
"https://efy.piped.pages.dev",
|
||||||
"https://piped.lunar.icu",
|
"https://piped.lunar.icu",
|
||||||
"https://piped.video",
|
"https://piped.video",
|
||||||
"https://yt.jae.fi",
|
"https://yt.jae.fi",
|
||||||
"https://il.ax",
|
"https://il.ax",
|
||||||
"https://piped.esmailelbob.xyz",
|
|
||||||
"https://piped.projectsegfau.lt",
|
"https://piped.projectsegfau.lt",
|
||||||
"https://piped.privacydev.net",
|
"https://piped.privacydev.net",
|
||||||
"https://piped.palveluntarjoaja.eu",
|
|
||||||
"https://piped.smnz.de",
|
"https://piped.smnz.de",
|
||||||
"https://piped.adminforge.de",
|
"https://piped.adminforge.de",
|
||||||
"https://piped.qdi.fi",
|
|
||||||
"https://piped.hostux.net",
|
"https://piped.hostux.net",
|
||||||
"https://pd.vern.cc",
|
"https://pd.vern.cc",
|
||||||
"https://piped.chauvet.pro"
|
"https://piped.chauvet.pro"
|
||||||
|
@ -562,7 +558,6 @@
|
||||||
"searx": {
|
"searx": {
|
||||||
"clearnet": [
|
"clearnet": [
|
||||||
"https://jsearch.pw",
|
"https://jsearch.pw",
|
||||||
"https://search.kvj.ovh",
|
|
||||||
"https://search.stinpriza.org",
|
"https://search.stinpriza.org",
|
||||||
"https://search.trom.tf",
|
"https://search.trom.tf",
|
||||||
"https://searx.bissisoft.com",
|
"https://searx.bissisoft.com",
|
||||||
|
@ -587,11 +582,9 @@
|
||||||
],
|
],
|
||||||
"tor": [
|
"tor": [
|
||||||
"http://3afisqjw2rxm6z7mmstyt5rx75qfqrgxnkzftknbp2vhipr2nrmrjdyd.onion",
|
"http://3afisqjw2rxm6z7mmstyt5rx75qfqrgxnkzftknbp2vhipr2nrmrjdyd.onion",
|
||||||
"http://searchvrzxoqa4k76duqh4wtzpr553hfl53qpytclxf7zci53lwklfyd.onion",
|
|
||||||
"http://z5vawdol25vrmorm4yydmohsd4u6rdoj2sylvoi3e3nqvxkvpqul7bqd.onion",
|
"http://z5vawdol25vrmorm4yydmohsd4u6rdoj2sylvoi3e3nqvxkvpqul7bqd.onion",
|
||||||
"http://zbuc3bbzbfdqqo2x46repx2ddajbha6fpsjeeptjhhhhzji3zopxdqyd.onion",
|
"http://zbuc3bbzbfdqqo2x46repx2ddajbha6fpsjeeptjhhhhzji3zopxdqyd.onion",
|
||||||
"http://f4qfqajszpx5b7itzxt6mb7kj4ktpgbdq7lq6xaiqyqx6a7de3epptad.onion",
|
"http://f4qfqajszpx5b7itzxt6mb7kj4ktpgbdq7lq6xaiqyqx6a7de3epptad.onion",
|
||||||
"http://searx.esmail5pdn24shtvieloeedh7ehz3nrwcdivnfhfcedl7gf4kwddhkqd.onion",
|
|
||||||
"http://searxfilowxokbogygrigir4wqxfxqzuxofxgdon7dg6rsii4yxzytyd.onion",
|
"http://searxfilowxokbogygrigir4wqxfxqzuxofxgdon7dg6rsii4yxzytyd.onion",
|
||||||
"http://searx.micohauwkjbyw5meacrb4ipicwvwg4xtzl7y7viv53kig2mdcsvwkyyd.onion"
|
"http://searx.micohauwkjbyw5meacrb4ipicwvwg4xtzl7y7viv53kig2mdcsvwkyyd.onion"
|
||||||
],
|
],
|
||||||
|
@ -608,8 +601,8 @@
|
||||||
"https://darmarit.org/searx",
|
"https://darmarit.org/searx",
|
||||||
"https://dynabyte.ca",
|
"https://dynabyte.ca",
|
||||||
"https://etsi.me",
|
"https://etsi.me",
|
||||||
"https://gsch.eu",
|
|
||||||
"https://intelwinds.com",
|
"https://intelwinds.com",
|
||||||
|
"https://myprivatesrx.us",
|
||||||
"https://northboot.xyz",
|
"https://northboot.xyz",
|
||||||
"https://notsearch.uk",
|
"https://notsearch.uk",
|
||||||
"https://ooglester.com",
|
"https://ooglester.com",
|
||||||
|
@ -632,6 +625,7 @@
|
||||||
"https://search.disroot.org",
|
"https://search.disroot.org",
|
||||||
"https://search.gcomm.ch",
|
"https://search.gcomm.ch",
|
||||||
"https://search.kiwitalk.de",
|
"https://search.kiwitalk.de",
|
||||||
|
"https://search.kvj.ovh",
|
||||||
"https://search.leptons.xyz",
|
"https://search.leptons.xyz",
|
||||||
"https://search.mdosch.de",
|
"https://search.mdosch.de",
|
||||||
"https://search.mpx.wtf",
|
"https://search.mpx.wtf",
|
||||||
|
@ -692,13 +686,16 @@
|
||||||
"http://4n53nafyi77iplnbrpmxnp3x4exbswwxigujaxy3b37fvr7bvlopxeyd.onion",
|
"http://4n53nafyi77iplnbrpmxnp3x4exbswwxigujaxy3b37fvr7bvlopxeyd.onion",
|
||||||
"http://privateoz3u5utrimal2edr56j3r5caakektxxgixigdkycuxigvquid.onion",
|
"http://privateoz3u5utrimal2edr56j3r5caakektxxgixigdkycuxigvquid.onion",
|
||||||
"http://searxyqdegtqksicnwpxa24ipnb2ylmp6iutnnwtazbhup4dit4eeyqd.onion",
|
"http://searxyqdegtqksicnwpxa24ipnb2ylmp6iutnnwtazbhup4dit4eeyqd.onion",
|
||||||
|
"http://searchvrzxoqa4k76duqh4wtzpr553hfl53qpytclxf7zci53lwklfyd.onion",
|
||||||
"http://gbat2pbpg7ys3fi3pbp64667tt5x66mg45xok35bxdw7v55brm7a27yd.onion",
|
"http://gbat2pbpg7ys3fi3pbp64667tt5x66mg45xok35bxdw7v55brm7a27yd.onion",
|
||||||
"http://qyyb5xsar7gp4q3agxnrxgajx4nnnihptqhmyee5nolidtkhxjks6ayd.onion",
|
"http://qyyb5xsar7gp4q3agxnrxgajx4nnnihptqhmyee5nolidtkhxjks6ayd.onion",
|
||||||
"http://searxdr3pqz4nydgnqocsia2xbywptxbkympa2emn7zlgggrir4bkfad.onion",
|
"http://searxdr3pqz4nydgnqocsia2xbywptxbkympa2emn7zlgggrir4bkfad.onion",
|
||||||
|
"http://searx.esmail5pdn24shtvieloeedh7ehz3nrwcdivnfhfcedl7gf4kwddhkqd.onion",
|
||||||
"http://searx.privpw3tndpkw6pnp3g727zfgfdzbu3k6a7chv226s3xymv2p4eiuqyd.onion",
|
"http://searx.privpw3tndpkw6pnp3g727zfgfdzbu3k6a7chv226s3xymv2p4eiuqyd.onion",
|
||||||
"http://rq2w52kyrif3xpfihkgjnhqm3a5aqhoikpv72z3drpjglfzc2wr5z4yd.onion",
|
"http://rq2w52kyrif3xpfihkgjnhqm3a5aqhoikpv72z3drpjglfzc2wr5z4yd.onion",
|
||||||
"http://fub6vgedgeadlu3ctskrpkcqjruh76tckwtj5swfhyblgml2tzgzckqd.onion/searx",
|
"http://fub6vgedgeadlu3ctskrpkcqjruh76tckwtj5swfhyblgml2tzgzckqd.onion/searx",
|
||||||
"http://searx3aolosaf3urwnhpynlhuokqsgz47si4pzz5hvb7uuzyjncl2tid.onion"
|
"http://searx3aolosaf3urwnhpynlhuokqsgz47si4pzz5hvb7uuzyjncl2tid.onion",
|
||||||
|
"https://lgmekfnpealdqhnctyg3p5fuelpdwnbqbwnl2ickpdoodzatzgz27ryd.onion"
|
||||||
],
|
],
|
||||||
"i2p": [],
|
"i2p": [],
|
||||||
"loki": []
|
"loki": []
|
||||||
|
@ -715,7 +712,7 @@
|
||||||
"https://gowogle.voring.me",
|
"https://gowogle.voring.me",
|
||||||
"https://whoogle.privacydev.net",
|
"https://whoogle.privacydev.net",
|
||||||
"https://wg.vern.cc",
|
"https://wg.vern.cc",
|
||||||
"https://www.indexia.gq",
|
"https://whoogle.hxvy0.gq",
|
||||||
"https://whoogle.lunar.icu",
|
"https://whoogle.lunar.icu",
|
||||||
"https://whoogle.rhyshl.live",
|
"https://whoogle.rhyshl.live",
|
||||||
"https://wgl.frail.duckdns.org"
|
"https://wgl.frail.duckdns.org"
|
||||||
|
@ -736,6 +733,7 @@
|
||||||
"https://search.femboy.hu",
|
"https://search.femboy.hu",
|
||||||
"https://lx.vern.cc",
|
"https://lx.vern.cc",
|
||||||
"https://librex.sesu.cc",
|
"https://librex.sesu.cc",
|
||||||
|
"https://librex.zzls.xyz",
|
||||||
"https://librex.mikata.ru",
|
"https://librex.mikata.ru",
|
||||||
"https://librex.terryiscool160.xyz",
|
"https://librex.terryiscool160.xyz",
|
||||||
"https://librex.nekus.gay",
|
"https://librex.nekus.gay",
|
||||||
|
@ -757,13 +755,15 @@
|
||||||
"http://search.cepyxplublbyw2f4axy4pyztfbxmf63lrt2c7uwv6wl4iixz53czload.onion",
|
"http://search.cepyxplublbyw2f4axy4pyztfbxmf63lrt2c7uwv6wl4iixz53czload.onion",
|
||||||
"http://lx.vernccvbvyi5qhfzyqengccj7lkove6bjot2xhh5kajhwvidqafczrad.onion",
|
"http://lx.vernccvbvyi5qhfzyqengccj7lkove6bjot2xhh5kajhwvidqafczrad.onion",
|
||||||
"http://librex.swxoebbpeqiiixyhbuh3vbw53pdrmtbiaj2sqveol6kkn5rpapfi4aad.onion",
|
"http://librex.swxoebbpeqiiixyhbuh3vbw53pdrmtbiaj2sqveol6kkn5rpapfi4aad.onion",
|
||||||
|
"http://librex.zzlsghu6mvvwyy75mvga6gaf4znbp3erk5xwfzedb4gg6qqh2j6rlvid.onion",
|
||||||
"http://f7ssz7l3biu4fugwctfpcx4txg5yq4gqhrt473ledsuc3ivtd3omniid.onion",
|
"http://f7ssz7l3biu4fugwctfpcx4txg5yq4gqhrt473ledsuc3ivtd3omniid.onion",
|
||||||
"http://librex.n53wt4ivvfdfaqkwldgdzfsubszukie2an6auja6x2wp3e3oa7v2gqyd.onion",
|
"http://librex.n53wt4ivvfdfaqkwldgdzfsubszukie2an6auja6x2wp3e3oa7v2gqyd.onion",
|
||||||
"http://5yblccekvswxl4n43bn5eg4pr7c4xygvu5lhhdb6ulzmislvahmhitad.onion"
|
"http://5yblccekvswxl4n43bn5eg4pr7c4xygvu5lhhdb6ulzmislvahmhitad.onion"
|
||||||
],
|
],
|
||||||
"i2p": [
|
"i2p": [
|
||||||
"http://vernziqfqvweijfaacmwazohgpdo2bt2ib2jlupt2pwwu27bhgxq.b32.i2p",
|
"http://vernziqfqvweijfaacmwazohgpdo2bt2ib2jlupt2pwwu27bhgxq.b32.i2p",
|
||||||
"http://lqbchqljxiwl3bbjt4vqe76luovk5ly6khqhg7mt5qcqfn6e4sbq.b32.i2p"
|
"http://lqbchqljxiwl3bbjt4vqe76luovk5ly6khqhg7mt5qcqfn6e4sbq.b32.i2p",
|
||||||
|
"http://7huurwog32tny663wkglrhozfoyqyqmsuxjbd7dtudccx44awjda.b32.i2p"
|
||||||
],
|
],
|
||||||
"loki": []
|
"loki": []
|
||||||
},
|
},
|
||||||
|
@ -781,17 +781,20 @@
|
||||||
"https://rimgo.hostux.net",
|
"https://rimgo.hostux.net",
|
||||||
"https://ri.zzls.xyz",
|
"https://ri.zzls.xyz",
|
||||||
"https://rimgo.marcopisco.com",
|
"https://rimgo.marcopisco.com",
|
||||||
"https://rimgo.lunar.icu"
|
"https://rimgo.lunar.icu",
|
||||||
|
"https://imgur.010032.xyz"
|
||||||
],
|
],
|
||||||
"tor": [
|
"tor": [
|
||||||
"http://rimgo.esmail5pdn24shtvieloeedh7ehz3nrwcdivnfhfcedl7gf4kwddhkqd.onion",
|
"http://rimgo.esmail5pdn24shtvieloeedh7ehz3nrwcdivnfhfcedl7gf4kwddhkqd.onion",
|
||||||
"http://imgur.lpoaj7z2zkajuhgnlltpeqh3zyq7wk2iyeggqaduhgxhyajtdt2j7wad.onion",
|
"http://imgur.lpoaj7z2zkajuhgnlltpeqh3zyq7wk2iyeggqaduhgxhyajtdt2j7wad.onion",
|
||||||
"http://rimgo.vernccvbvyi5qhfzyqengccj7lkove6bjot2xhh5kajhwvidqafczrad.onion",
|
"http://rimgo.vernccvbvyi5qhfzyqengccj7lkove6bjot2xhh5kajhwvidqafczrad.onion",
|
||||||
"http://tdp6uqjtmok723suum5ms3jbquht6d7dssug4cgcxhfniatb25gcipad.onion",
|
"http://tdp6uqjtmok723suum5ms3jbquht6d7dssug4cgcxhfniatb25gcipad.onion",
|
||||||
"http://i.habeehrhadazsw3izbrbilqajalfyqqln54mrja3iwpqxgcuxnus7eid.onion"
|
"http://i.habeehrhadazsw3izbrbilqajalfyqqln54mrja3iwpqxgcuxnus7eid.onion",
|
||||||
|
"http://rimgo.zzlsghu6mvvwyy75mvga6gaf4znbp3erk5xwfzedb4gg6qqh2j6rlvid.onion"
|
||||||
],
|
],
|
||||||
"i2p": [
|
"i2p": [
|
||||||
"rimgov7l2tqyrm5txrtvhtnfyrzkc5d7ipafofavchbnnyog4r3q.b32.i2p"
|
"rimgov7l2tqyrm5txrtvhtnfyrzkc5d7ipafofavchbnnyog4r3q.b32.i2p",
|
||||||
|
"p57356k2xwhxrg2lxrjajcftkrptv4zejeeblzfgkcvpzuetkz2a.b32.i2p"
|
||||||
],
|
],
|
||||||
"loki": []
|
"loki": []
|
||||||
},
|
},
|
||||||
|
@ -862,10 +865,10 @@
|
||||||
"https://breezewiki.com",
|
"https://breezewiki.com",
|
||||||
"https://antifandom.com",
|
"https://antifandom.com",
|
||||||
"https://breezewiki.pussthecat.org",
|
"https://breezewiki.pussthecat.org",
|
||||||
|
"https://bw.projectsegfau.lt",
|
||||||
"https://breeze.hostux.net",
|
"https://breeze.hostux.net",
|
||||||
"https://bw.us.projectsegfau.lt",
|
|
||||||
"https://bw.eu.projectsegfau.lt",
|
|
||||||
"https://bw.artemislena.eu",
|
"https://bw.artemislena.eu",
|
||||||
|
"https://breeze.777.tf",
|
||||||
"https://breezewiki.esmailelbob.xyz"
|
"https://breezewiki.esmailelbob.xyz"
|
||||||
],
|
],
|
||||||
"tor": [],
|
"tor": [],
|
||||||
|
@ -888,5 +891,52 @@
|
||||||
"tor": [],
|
"tor": [],
|
||||||
"i2p": [],
|
"i2p": [],
|
||||||
"loki": []
|
"loki": []
|
||||||
|
},
|
||||||
|
"libMedium": {
|
||||||
|
"clearnet": [
|
||||||
|
"https://libmedium.batsense.net",
|
||||||
|
"https://md.vern.cc"
|
||||||
|
],
|
||||||
|
"tor": [
|
||||||
|
"http://md.vernccvbvyi5qhfzyqengccj7lkove6bjot2xhh5kajhwvidqafczrad.onion"
|
||||||
|
],
|
||||||
|
"i2p": [
|
||||||
|
"http://vernaqj2qr2pijpgvf3od6ssc3ulz3nv52gwr3hba5l6humuzmgq.b32.i2p"
|
||||||
|
],
|
||||||
|
"loki": []
|
||||||
|
},
|
||||||
|
"dumb": {
|
||||||
|
"clearnet": [
|
||||||
|
"https://dm.vern.cc",
|
||||||
|
"https://sing.whatever.social",
|
||||||
|
"https://dumb.lunar.icu",
|
||||||
|
"https://dumb.esmailelbob.xyz"
|
||||||
|
],
|
||||||
|
"tor": [
|
||||||
|
"http://dm.vernccvbvyi5qhfzyqengccj7lkove6bjot2xhh5kajhwvidqafczrad.onion",
|
||||||
|
"http://dumb.esmail5pdn24shtvieloeedh7ehz3nrwcdivnfhfcedl7gf4kwddhkqd.onion"
|
||||||
|
],
|
||||||
|
"i2p": [
|
||||||
|
"http://vernxpcpqi2y4uhu7to4rnjmyjjgzh3x3qxyzpmkhykefchkmleq.b32.i2p"
|
||||||
|
],
|
||||||
|
"loki": []
|
||||||
|
},
|
||||||
|
"anonymousOverflow": {
|
||||||
|
"clearnet": [
|
||||||
|
"https://code.whatever.social",
|
||||||
|
"https://overflow.777.tf",
|
||||||
|
"https://ao.vern.cc",
|
||||||
|
"https://overflow.smnz.de",
|
||||||
|
"https://anonymousoverflow.esmailelbob.xyz",
|
||||||
|
"https://overflow.lunar.icu"
|
||||||
|
],
|
||||||
|
"tor": [
|
||||||
|
"http://ao.vernccvbvyi5qhfzyqengccj7lkove6bjot2xhh5kajhwvidqafczrad.onion",
|
||||||
|
"http://anonymousoverflow.esmail5pdn24shtvieloeedh7ehz3nrwcdivnfhfcedl7gf4kwddhkqd.onion"
|
||||||
|
],
|
||||||
|
"i2p": [
|
||||||
|
"http://vernmzgraj6aaoafmehupvtkkynpaa67rxcdj2kinwiy6konn6rq.b32.i2p"
|
||||||
|
],
|
||||||
|
"loki": []
|
||||||
}
|
}
|
||||||
}
|
}
|
109
instances.py
109
instances.py
|
@ -98,22 +98,23 @@ def is_cloudflare(url):
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
|
||||||
def fetchCache(frontend, name):
|
def fetchCache(frontend):
|
||||||
try:
|
try:
|
||||||
with open('./data.json') as file:
|
with open('./data.json') as file:
|
||||||
mightyList[frontend] = json.load(file)[frontend]
|
mightyList[frontend] = json.load(file)[frontend]
|
||||||
print(Fore.YELLOW + 'Failed' + Style.RESET_ALL + ' to fetch ' + name)
|
print(Fore.YELLOW + 'Failed' + Style.RESET_ALL + ' to fetch ' + frontend)
|
||||||
except Exception:
|
except Exception:
|
||||||
print(Fore.RED + 'Failed' + Style.RESET_ALL + ' to get cached ' + name)
|
print(Fore.RED + 'Failed' + Style.RESET_ALL +
|
||||||
|
' to get cached ' + frontend)
|
||||||
|
|
||||||
|
|
||||||
def fetchFromFile(frontend, name):
|
def fetchFromFile(frontend):
|
||||||
with open('./fixed/' + frontend + '.json') as file:
|
with open('./fixed/' + frontend + '.json') as file:
|
||||||
mightyList[frontend] = json.load(file)
|
mightyList[frontend] = json.load(file)
|
||||||
print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + name)
|
print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + frontend)
|
||||||
|
|
||||||
|
|
||||||
def fetchJsonList(frontend, name, url, urlItem, jsonObject):
|
def fetchJsonList(frontend, url, urlItem, jsonObject):
|
||||||
try:
|
try:
|
||||||
r = requests.get(url)
|
r = requests.get(url)
|
||||||
rJson = json.loads(r.text)
|
rJson = json.loads(r.text)
|
||||||
|
@ -150,13 +151,13 @@ def fetchJsonList(frontend, name, url, urlItem, jsonObject):
|
||||||
_list['clearnet'].append(tmpItem)
|
_list['clearnet'].append(tmpItem)
|
||||||
|
|
||||||
mightyList[frontend] = _list
|
mightyList[frontend] = _list
|
||||||
print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + name)
|
print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + frontend)
|
||||||
except Exception:
|
except Exception:
|
||||||
fetchCache(frontend, name)
|
fetchCache(frontend, frontend)
|
||||||
logging.error(traceback.format_exc())
|
logging.error(traceback.format_exc())
|
||||||
|
|
||||||
|
|
||||||
def fetchRegexList(frontend, name, url, regex):
|
def fetchRegexList(frontend, url, regex):
|
||||||
try:
|
try:
|
||||||
r = requests.get(url)
|
r = requests.get(url)
|
||||||
_list = {}
|
_list = {}
|
||||||
|
@ -177,13 +178,13 @@ def fetchRegexList(frontend, name, url, regex):
|
||||||
else:
|
else:
|
||||||
_list['clearnet'].append(item)
|
_list['clearnet'].append(item)
|
||||||
mightyList[frontend] = _list
|
mightyList[frontend] = _list
|
||||||
print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + name)
|
print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + frontend)
|
||||||
except Exception:
|
except Exception:
|
||||||
fetchCache(frontend, name)
|
fetchCache(frontend, )
|
||||||
logging.error(traceback.format_exc())
|
logging.error(traceback.format_exc())
|
||||||
|
|
||||||
|
|
||||||
def fetchTextList(frontend, name, url, prepend):
|
def fetchTextList(frontend, url, prepend):
|
||||||
try:
|
try:
|
||||||
_list = {}
|
_list = {}
|
||||||
for network in networks:
|
for network in networks:
|
||||||
|
@ -212,9 +213,9 @@ def fetchTextList(frontend, name, url, prepend):
|
||||||
else:
|
else:
|
||||||
_list['clearnet'].append(item)
|
_list['clearnet'].append(item)
|
||||||
mightyList[frontend] = _list
|
mightyList[frontend] = _list
|
||||||
print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + name)
|
print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + frontend)
|
||||||
except Exception:
|
except Exception:
|
||||||
fetchCache(frontend, name)
|
fetchCache(frontend, frontend)
|
||||||
logging.error(traceback.format_exc())
|
logging.error(traceback.format_exc())
|
||||||
|
|
||||||
|
|
||||||
|
@ -276,62 +277,62 @@ def piped():
|
||||||
|
|
||||||
|
|
||||||
def pipedMaterial():
|
def pipedMaterial():
|
||||||
fetchRegexList('pipedMaterial', 'Piped-Material', 'https://raw.githubusercontent.com/mmjee/Piped-Material/master/README.md',
|
fetchRegexList('pipedMaterial', 'https://raw.githubusercontent.com/mmjee/Piped-Material/master/README.md',
|
||||||
r"\| (https?:\/{2}(?:\S+\.)+[a-zA-Z0-9]*) +\| Production")
|
r"\| (https?:\/{2}(?:\S+\.)+[a-zA-Z0-9]*) +\| Production")
|
||||||
|
|
||||||
|
|
||||||
def cloudtube():
|
def cloudtube():
|
||||||
fetchFromFile('cloudtube', 'Cloudtube')
|
fetchFromFile('cloudtube')
|
||||||
|
|
||||||
|
|
||||||
def proxitok():
|
def proxitok():
|
||||||
fetchRegexList('proxiTok', 'ProxiTok', 'https://raw.githubusercontent.com/wiki/pablouser1/ProxiTok/Public-instances.md',
|
fetchRegexList('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]*.*\|.*\|)|(?:$))")
|
r"\| \[.*\]\(([-a-zA-Z0-9@:%_\+.~#?&//=]{2,}\.[a-z]{2,}\b(?:\/[-a-zA-Z0-9@:%_\+.~#?&//=]*)?)\)(?: \(Official\))? +\|(?:(?: [A-Z]*.*\|.*\|)|(?:$))")
|
||||||
|
|
||||||
|
|
||||||
def send():
|
def send():
|
||||||
fetchRegexList('send', 'Send', 'https://gitlab.com/timvisee/send-instances/-/raw/master/README.md',
|
fetchRegexList('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,}")
|
r"- ([-a-zA-Z0-9@:%_\+.~#?&//=]{2,}\.[a-z0-9]{2,}\b(?:\/[-a-zA-Z0-9@:%_\+.~#?&//=]*)?)\)*\|*[A-Z]{0,}")
|
||||||
|
|
||||||
|
|
||||||
def nitter():
|
def nitter():
|
||||||
fetchRegexList('nitter', 'Nitter', 'https://raw.githubusercontent.com/wiki/zedeus/nitter/Instances.md',
|
fetchRegexList('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))")
|
r"(?:(?:\| )|(?:- ))\[(?:(?:\S+\.)+[a-zA-Z0-9]+)\/?\]\((https?:\/{2}(?:\S+\.)+[a-zA-Z0-9]+)\/?\)(?:(?: (?:\((?:\S+ ?\S*)\) )? *\| [^❌]{1,4} +\|(?:(?:\n)|(?: ❌)|(?: ✅)|(?: ❓)|(?: \[)))|(?:\n))")
|
||||||
|
|
||||||
|
|
||||||
def libreddit():
|
def libreddit():
|
||||||
fetchJsonList('libreddit', 'Libreddit', 'https://github.com/libreddit/libreddit-instances/raw/master/instances.json',
|
fetchJsonList('libreddit', 'https://github.com/libreddit/libreddit-instances/raw/master/instances.json',
|
||||||
{'clearnet': 'url', 'tor': 'onion', 'i2p': 'i2p', 'loki': None}, True)
|
{'clearnet': 'url', 'tor': 'onion', 'i2p': 'i2p', 'loki': None}, True)
|
||||||
|
|
||||||
|
|
||||||
def teddit():
|
def teddit():
|
||||||
fetchJsonList('teddit', 'Teddit', 'https://codeberg.org/teddit/teddit/raw/branch/main/instances.json',
|
fetchJsonList('teddit', 'https://codeberg.org/teddit/teddit/raw/branch/main/instances.json',
|
||||||
{'clearnet': 'url', 'tor': 'onion', 'i2p': 'i2p', 'loki': None}, False)
|
{'clearnet': 'url', 'tor': 'onion', 'i2p': 'i2p', 'loki': None}, False)
|
||||||
|
|
||||||
|
|
||||||
def scribe():
|
def scribe():
|
||||||
fetchJsonList('scribe', 'Scribe',
|
fetchJsonList(
|
||||||
'https://git.sr.ht/~edwardloveall/scribe/blob/main/docs/instances.json', None, False)
|
'scribe', 'https://git.sr.ht/~edwardloveall/scribe/blob/main/docs/instances.json', None, False)
|
||||||
|
|
||||||
|
|
||||||
def quetre():
|
def quetre():
|
||||||
fetchRegexList('quetre', 'Quetre', 'https://raw.githubusercontent.com/zyachel/quetre/main/README.md',
|
fetchRegexList('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,}.*\|.*\|")
|
r"\| \[.*\]\(([-a-zA-Z0-9@:%_\+.~#?&//=]{2,}\.[a-z0-9]{2,}\b(?:\/[-a-zA-Z0-9@:%_\+.~#?&//=]*)?)\)*\|*[A-Z]{0,}.*\|.*\|")
|
||||||
|
|
||||||
|
|
||||||
def libremdb():
|
def libremdb():
|
||||||
fetchRegexList('libremdb', 'libremdb', 'https://raw.githubusercontent.com/zyachel/libremdb/main/README.md',
|
fetchRegexList('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,}.*\|.*\|")
|
r"\| \[.*\]\(([-a-zA-Z0-9@:%_\+.~#?&//=]{2,}\.[a-z0-9]{2,}\b(?:\/[-a-zA-Z0-9@:%_\+.~#?&//=]*)?)\)*\|*[A-Z]{0,}.*\|.*\|")
|
||||||
|
|
||||||
|
|
||||||
def simplytranslate():
|
def simplytranslate():
|
||||||
fetchTextList('simplyTranslate', 'SimplyTranslate', {'clearnet': 'https://simple-web.org/instances/simplytranslate', 'tor': 'https://simple-web.org/instances/simplytranslate_onion',
|
fetchTextList('simplyTranslate', {'clearnet': 'https://simple-web.org/instances/simplytranslate', 'tor': 'https://simple-web.org/instances/simplytranslate_onion',
|
||||||
'i2p': 'https://simple-web.org/instances/simplytranslate_i2p', 'loki': 'https://simple-web.org/instances/simplytranslate_loki'}, {'clearnet': 'https://', 'tor': 'http://', 'i2p': 'http://', 'loki': 'http://'})
|
'i2p': 'https://simple-web.org/instances/simplytranslate_i2p', 'loki': 'https://simple-web.org/instances/simplytranslate_loki'}, {'clearnet': 'https://', 'tor': 'http://', 'i2p': 'http://', 'loki': 'http://'})
|
||||||
|
|
||||||
|
|
||||||
def linvgatranslate():
|
def linvgatranslate():
|
||||||
fetchJsonList('lingva', 'LingvaTranslate',
|
fetchJsonList(
|
||||||
'https://raw.githubusercontent.com/TheDavidDelta/lingva-translate/main/instances.json', None, False)
|
'lingva', 'https://raw.githubusercontent.com/TheDavidDelta/lingva-translate/main/instances.json', None, False)
|
||||||
|
|
||||||
|
|
||||||
def searx_searxng():
|
def searx_searxng():
|
||||||
|
@ -371,63 +372,78 @@ def searx_searxng():
|
||||||
|
|
||||||
|
|
||||||
def whoogle():
|
def whoogle():
|
||||||
fetchRegexList('whoogle', 'Whoogle', 'https://raw.githubusercontent.com/benbusby/whoogle-search/main/README.md',
|
fetchRegexList('whoogle', 'https://raw.githubusercontent.com/benbusby/whoogle-search/main/README.md',
|
||||||
r"\| \[https?:\/{2}(?:[^\s\/]+\.)*(?:[^\s\/]+\.)+[a-zA-Z0-9]+\]\((https?:\/{2}(?:[^\s\/]+\.)*(?:[^\s\/]+\.)+[a-zA-Z0-9]+)\/?\) \| ")
|
r"\| \[https?:\/{2}(?:[^\s\/]+\.)*(?:[^\s\/]+\.)+[a-zA-Z0-9]+\]\((https?:\/{2}(?:[^\s\/]+\.)*(?:[^\s\/]+\.)+[a-zA-Z0-9]+)\/?\) \| ")
|
||||||
|
|
||||||
|
|
||||||
def librex():
|
def librex():
|
||||||
fetchJsonList('librex', 'LibreX', 'https://raw.githubusercontent.com/hnhx/librex/main/instances.json',
|
fetchJsonList('librex', 'https://raw.githubusercontent.com/hnhx/librex/main/instances.json',
|
||||||
{'clearnet': 'clearnet', 'tor': 'tor', 'i2p': 'i2p', 'loki': None}, True)
|
{'clearnet': 'clearnet', 'tor': 'tor', 'i2p': 'i2p', 'loki': None}, True)
|
||||||
|
|
||||||
|
|
||||||
def rimgo():
|
def rimgo():
|
||||||
fetchJsonList('rimgo', 'rimgo', 'https://codeberg.org/video-prize-ranch/rimgo/raw/branch/main/instances.json',
|
fetchJsonList('rimgo', 'https://codeberg.org/video-prize-ranch/rimgo/raw/branch/main/instances.json',
|
||||||
{'clearnet': 'url', 'tor': 'onion', 'i2p': 'i2p', 'loki': None}, False)
|
{'clearnet': 'url', 'tor': 'onion', 'i2p': 'i2p', 'loki': None}, False)
|
||||||
|
|
||||||
|
|
||||||
def librarian():
|
def librarian():
|
||||||
fetchJsonList('librarian', 'Librarian',
|
fetchJsonList(
|
||||||
'https://codeberg.org/librarian/librarian/raw/branch/main/instances.json', 'url', True)
|
'librarian', 'https://codeberg.org/librarian/librarian/raw/branch/main/instances.json', 'url', True)
|
||||||
|
|
||||||
|
|
||||||
def beatbump():
|
def beatbump():
|
||||||
fetchFromFile('beatbump', 'Beatbump')
|
fetchFromFile('beatbump')
|
||||||
|
|
||||||
|
|
||||||
def hyperpipe():
|
def hyperpipe():
|
||||||
fetchJsonList('hyperpipe', 'Hyperpipe',
|
fetchJsonList(
|
||||||
'https://codeberg.org/Hyperpipe/pages/raw/branch/main/api/frontend.json', 'url', False)
|
'hyperpipe', 'https://codeberg.org/Hyperpipe/pages/raw/branch/main/api/frontend.json', 'url', False)
|
||||||
|
|
||||||
|
|
||||||
def facil():
|
def facil():
|
||||||
fetchFromFile('facil', 'FacilMap')
|
fetchFromFile('facil')
|
||||||
|
|
||||||
|
|
||||||
def osm():
|
def osm():
|
||||||
fetchFromFile('osm', 'OpenStreetMap')
|
fetchFromFile('osm')
|
||||||
|
|
||||||
|
|
||||||
def libreTranslate():
|
def libreTranslate():
|
||||||
fetchRegexList('libreTranslate', 'LibreTranslate', 'https://raw.githubusercontent.com/LibreTranslate/LibreTranslate/main/README.md',
|
fetchRegexList('libreTranslate', 'https://raw.githubusercontent.com/LibreTranslate/LibreTranslate/main/README.md',
|
||||||
r"\[(?:[^\s\/]+\.)+[a-zA-Z0-9]+\]\((https?:\/{2}(?:[^\s\/]+\.)+[a-zA-Z0-9]+)\/?\)\|")
|
r"\[(?:[^\s\/]+\.)+[a-zA-Z0-9]+\]\((https?:\/{2}(?:[^\s\/]+\.)+[a-zA-Z0-9]+)\/?\)\|")
|
||||||
|
|
||||||
|
|
||||||
def breezeWiki():
|
def breezeWiki():
|
||||||
fetchJsonList('breezeWiki', 'BreezeWiki',
|
fetchJsonList(
|
||||||
'https://docs.breezewiki.com/files/instances.json', 'instance', False)
|
'breezeWiki', 'https://docs.breezewiki.com/files/instances.json', 'instance', False)
|
||||||
|
|
||||||
|
|
||||||
def privateBin():
|
def privateBin():
|
||||||
fetchJsonList('privateBin', 'PrivateBin',
|
fetchJsonList('privateBin', 'https://privatebin.info/directory/api?top=100&https_redirect=true&min_rating=A&csp_header=true&min_uptime=100&attachments=true', 'url', False)
|
||||||
'https://privatebin.info/directory/api?top=100&https_redirect=true&min_rating=A&csp_header=true&min_uptime=100&attachments=true', 'url', False)
|
|
||||||
|
|
||||||
|
|
||||||
def neuters():
|
def neuters():
|
||||||
fetchFromFile('neuters', 'Neuters')
|
fetchFromFile('neuters')
|
||||||
|
|
||||||
|
|
||||||
|
def libMedium():
|
||||||
|
fetchRegexList('libMedium', 'https://raw.githubusercontent.com/realaravinth/libmedium/master/README.md',
|
||||||
|
r"\| (https?:\/{2}(?:[^\s\/]+\.)+[a-zA-Z0-9]+)\/? +\|")
|
||||||
|
|
||||||
|
|
||||||
|
def dumb():
|
||||||
|
fetchRegexList('dumb', 'https://raw.githubusercontent.com/rramiachraf/dumb/main/README.md',
|
||||||
|
r"\| <(https?:\/{2}(?:[^\s\/]+\.)+[a-zA-Z0-9]+)\/?> +\|")
|
||||||
|
|
||||||
|
|
||||||
def ruralDictionary():
|
def ruralDictionary():
|
||||||
fetchJsonList('ruralDictionary', 'Rural Dictionary', 'https://codeberg.org/zortazert/rural-dictionary/raw/branch/master/instances.json', 'clearnet', False)
|
fetchJsonList('ruralDictionary',
|
||||||
|
'https://codeberg.org/zortazert/rural-dictionary/raw/branch/master/instances.json', 'clearnet', False)
|
||||||
|
|
||||||
|
|
||||||
|
def anonymousOverflow():
|
||||||
|
fetchRegexList('anonymousOverflow', 'https://raw.githubusercontent.com/httpjamesm/AnonymousOverflow/main/README.md',
|
||||||
|
r"\| \[(?:[^\s\/]+\.)+[a-zA-Z0-9]+\]\((https?:\/{2}(?:[^\s\/]+\.)+[a-zA-Z0-9]+)\/?\) +\|")
|
||||||
|
|
||||||
|
|
||||||
def isValid(url): # This code is contributed by avanitrachhadiya2155
|
def isValid(url): # This code is contributed by avanitrachhadiya2155
|
||||||
|
@ -466,6 +482,9 @@ breezeWiki()
|
||||||
# privateBin()
|
# privateBin()
|
||||||
neuters()
|
neuters()
|
||||||
ruralDictionary()
|
ruralDictionary()
|
||||||
|
libMedium()
|
||||||
|
dumb()
|
||||||
|
anonymousOverflow()
|
||||||
|
|
||||||
mightyList = filterLastSlash(mightyList)
|
mightyList = filterLastSlash(mightyList)
|
||||||
mightyList = idnaEncode(mightyList)
|
mightyList = idnaEncode(mightyList)
|
||||||
|
|
新しいイシューから参照