Added LibMedium, Dumb, AnonymousOverflow

このコミットが含まれているのは:
ManeraKai 2023-02-05 11:44:53 +03:00
コミット a4bb1b4a78
この署名に対応する既知のキーがデータベースに存在しません
GPGキーID: 5ABC31FFD562E337
5個のファイルの変更205行の追加77行の削除

ファイルの表示

@ -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)
- 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)
- 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)
- 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)
@ -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)
- 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)
- 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:

ファイルの表示

@ -5,10 +5,9 @@
"https://yt.oelrichsgarcia.de",
"https://piped.video",
"https://piped.tokhmi.xyz",
"https://piped.moomoo.me",
"https://piped.mha.fi",
"https://piped.garudalinux.org",
"https://watch.leptons.xyz",
"https://efy.piped.pages.dev",
"https://piped.lunar.icu",
"https://piped.video",
"https://proxitok.marcopisco.com",
@ -62,11 +61,15 @@
"https://search.albony.xyz",
"https://search.garudalinux.org",
"https://search.dr460nf1r3.org",
"https://whoogle.hxvy0.gq",
"https://whoogle.lunar.icu",
"https://whoogle.rhyshl.live",
"https://rimgo.privacytools.io",
"https://rimgo.marcopisco.com",
"https://rimgo.lunar.icu",
"https://beatbump.ml"
"https://imgur.010032.xyz",
"https://beatbump.ml",
"https://dumb.lunar.icu",
"https://overflow.lunar.icu"
]
}

53
cloudflare.py ノーマルファイル
ファイルの表示

@ -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
ファイルの表示

@ -10,34 +10,34 @@
"https://invidious.nerdvpn.de",
"https://invidious.tiekoetter.com",
"https://yt.artemislena.eu",
"https://invidious.flokinet.to",
"https://inv.bp.projectsegfau.lt",
"https://inv.odyssey346.dev",
"https://invidious.baczek.me",
"https://invidious.snopyta.org",
"https://invidious.sethforprivacy.com",
"https://yt.funami.tech",
"https://invidious.drivet.xyz",
"https://iv.ggtyler.dev",
"https://invidious.epicsite.xyz",
"https://invidious.silur.me",
"https://iv.ggtyler.dev",
"https://yt.oelrichsgarcia.de",
"https://vid.priv.au",
"https://invidious.slipfox.xyz",
"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.esmailelbob.xyz",
"https://invidious.dhusch.de",
"https://invidious.weblibre.org",
"https://iv.melmac.space",
"https://invidious.silur.me",
"https://invidious.lidarshield.cloud",
"https://invidious.drivet.xyz",
"https://invidious.privacydev.net",
"https://invidious.flokinet.to",
"https://invidious.namazso.eu"
],
"tor": [
"http://w6ijuptxiku4xpnnaetxvnkc5vqcdu7mgns2u77qefoixi63vbvnpnqd.onion",
"http://kbjggqkzv65ivcqj6bumvp337z6264huv5kpkwuv6gu5yjiskvan7fad.onion",
"http://grwp24hodrefzvjjuccrkw3mjq4tzhaaq32amf33dzpmuxe7ilepcmad.onion",
"http://osbivz6guyeahrwp2lnwyjk2xos342h4ocsxyqrlaopqjuhwn2djiiyd.onion",
"http://c7hqkpkpemu6e7emz5b4vyz7idjgdvgaaa3dyimmeojqbgpea3xqjoid.onion",
"http://u2cvlit75owumwpy4dj2hsmvkq7nvrclkpht7xgyye2pyoxhpmclkrad.onion",
"http://euxxcnhsynwmfidvhjf6uzptsmh4dipkmgdmcmxxuo7tunp3ad2jrwyd.onion",
"http://invidious.esmail5pdn24shtvieloeedh7ehz3nrwcdivnfhfcedl7gf4kwddhkqd.onion",
@ -46,7 +46,7 @@
"http://ng27owmagn5amdm7l5s3rsqxwscl5ynppnis5dqcasogkyxcfqn7psid.onion",
"http://iv.odysfvr23q5wgt7i456o5t3trw2cw5dgn56vbjfbq2m7xsc5vqbqpcyd.onion",
"http://invidious.g4c3eya4clenolymqbpgwz3q3tawoxw56yhzk4vugqrl6dtu3ejvhjid.onion",
"http://c7hqkpkpemu6e7emz5b4vyz7idjgdvgaaa3dyimmeojqbgpea3xqjoid.onion"
"http://osbivz6guyeahrwp2lnwyjk2xos342h4ocsxyqrlaopqjuhwn2djiiyd.onion"
],
"i2p": [
"http://verni6dr4qxjgjumnvesxerh5rvhv6oy5ddeibaqy5d7tgbiiyfa.b32.i2p"
@ -57,22 +57,18 @@
"clearnet": [
"https://piped.video",
"https://piped.tokhmi.xyz",
"https://piped.moomoo.me",
"https://piped.mha.fi",
"https://watch.whatever.social",
"https://piped.garudalinux.org",
"https://watch.leptons.xyz",
"https://efy.piped.pages.dev",
"https://piped.lunar.icu",
"https://piped.video",
"https://yt.jae.fi",
"https://il.ax",
"https://piped.esmailelbob.xyz",
"https://piped.projectsegfau.lt",
"https://piped.privacydev.net",
"https://piped.palveluntarjoaja.eu",
"https://piped.smnz.de",
"https://piped.adminforge.de",
"https://piped.qdi.fi",
"https://piped.hostux.net",
"https://pd.vern.cc",
"https://piped.chauvet.pro"
@ -562,7 +558,6 @@
"searx": {
"clearnet": [
"https://jsearch.pw",
"https://search.kvj.ovh",
"https://search.stinpriza.org",
"https://search.trom.tf",
"https://searx.bissisoft.com",
@ -587,11 +582,9 @@
],
"tor": [
"http://3afisqjw2rxm6z7mmstyt5rx75qfqrgxnkzftknbp2vhipr2nrmrjdyd.onion",
"http://searchvrzxoqa4k76duqh4wtzpr553hfl53qpytclxf7zci53lwklfyd.onion",
"http://z5vawdol25vrmorm4yydmohsd4u6rdoj2sylvoi3e3nqvxkvpqul7bqd.onion",
"http://zbuc3bbzbfdqqo2x46repx2ddajbha6fpsjeeptjhhhhzji3zopxdqyd.onion",
"http://f4qfqajszpx5b7itzxt6mb7kj4ktpgbdq7lq6xaiqyqx6a7de3epptad.onion",
"http://searx.esmail5pdn24shtvieloeedh7ehz3nrwcdivnfhfcedl7gf4kwddhkqd.onion",
"http://searxfilowxokbogygrigir4wqxfxqzuxofxgdon7dg6rsii4yxzytyd.onion",
"http://searx.micohauwkjbyw5meacrb4ipicwvwg4xtzl7y7viv53kig2mdcsvwkyyd.onion"
],
@ -608,8 +601,8 @@
"https://darmarit.org/searx",
"https://dynabyte.ca",
"https://etsi.me",
"https://gsch.eu",
"https://intelwinds.com",
"https://myprivatesrx.us",
"https://northboot.xyz",
"https://notsearch.uk",
"https://ooglester.com",
@ -632,6 +625,7 @@
"https://search.disroot.org",
"https://search.gcomm.ch",
"https://search.kiwitalk.de",
"https://search.kvj.ovh",
"https://search.leptons.xyz",
"https://search.mdosch.de",
"https://search.mpx.wtf",
@ -692,13 +686,16 @@
"http://4n53nafyi77iplnbrpmxnp3x4exbswwxigujaxy3b37fvr7bvlopxeyd.onion",
"http://privateoz3u5utrimal2edr56j3r5caakektxxgixigdkycuxigvquid.onion",
"http://searxyqdegtqksicnwpxa24ipnb2ylmp6iutnnwtazbhup4dit4eeyqd.onion",
"http://searchvrzxoqa4k76duqh4wtzpr553hfl53qpytclxf7zci53lwklfyd.onion",
"http://gbat2pbpg7ys3fi3pbp64667tt5x66mg45xok35bxdw7v55brm7a27yd.onion",
"http://qyyb5xsar7gp4q3agxnrxgajx4nnnihptqhmyee5nolidtkhxjks6ayd.onion",
"http://searxdr3pqz4nydgnqocsia2xbywptxbkympa2emn7zlgggrir4bkfad.onion",
"http://searx.esmail5pdn24shtvieloeedh7ehz3nrwcdivnfhfcedl7gf4kwddhkqd.onion",
"http://searx.privpw3tndpkw6pnp3g727zfgfdzbu3k6a7chv226s3xymv2p4eiuqyd.onion",
"http://rq2w52kyrif3xpfihkgjnhqm3a5aqhoikpv72z3drpjglfzc2wr5z4yd.onion",
"http://fub6vgedgeadlu3ctskrpkcqjruh76tckwtj5swfhyblgml2tzgzckqd.onion/searx",
"http://searx3aolosaf3urwnhpynlhuokqsgz47si4pzz5hvb7uuzyjncl2tid.onion"
"http://searx3aolosaf3urwnhpynlhuokqsgz47si4pzz5hvb7uuzyjncl2tid.onion",
"https://lgmekfnpealdqhnctyg3p5fuelpdwnbqbwnl2ickpdoodzatzgz27ryd.onion"
],
"i2p": [],
"loki": []
@ -715,7 +712,7 @@
"https://gowogle.voring.me",
"https://whoogle.privacydev.net",
"https://wg.vern.cc",
"https://www.indexia.gq",
"https://whoogle.hxvy0.gq",
"https://whoogle.lunar.icu",
"https://whoogle.rhyshl.live",
"https://wgl.frail.duckdns.org"
@ -736,6 +733,7 @@
"https://search.femboy.hu",
"https://lx.vern.cc",
"https://librex.sesu.cc",
"https://librex.zzls.xyz",
"https://librex.mikata.ru",
"https://librex.terryiscool160.xyz",
"https://librex.nekus.gay",
@ -757,13 +755,15 @@
"http://search.cepyxplublbyw2f4axy4pyztfbxmf63lrt2c7uwv6wl4iixz53czload.onion",
"http://lx.vernccvbvyi5qhfzyqengccj7lkove6bjot2xhh5kajhwvidqafczrad.onion",
"http://librex.swxoebbpeqiiixyhbuh3vbw53pdrmtbiaj2sqveol6kkn5rpapfi4aad.onion",
"http://librex.zzlsghu6mvvwyy75mvga6gaf4znbp3erk5xwfzedb4gg6qqh2j6rlvid.onion",
"http://f7ssz7l3biu4fugwctfpcx4txg5yq4gqhrt473ledsuc3ivtd3omniid.onion",
"http://librex.n53wt4ivvfdfaqkwldgdzfsubszukie2an6auja6x2wp3e3oa7v2gqyd.onion",
"http://5yblccekvswxl4n43bn5eg4pr7c4xygvu5lhhdb6ulzmislvahmhitad.onion"
],
"i2p": [
"http://vernziqfqvweijfaacmwazohgpdo2bt2ib2jlupt2pwwu27bhgxq.b32.i2p",
"http://lqbchqljxiwl3bbjt4vqe76luovk5ly6khqhg7mt5qcqfn6e4sbq.b32.i2p"
"http://lqbchqljxiwl3bbjt4vqe76luovk5ly6khqhg7mt5qcqfn6e4sbq.b32.i2p",
"http://7huurwog32tny663wkglrhozfoyqyqmsuxjbd7dtudccx44awjda.b32.i2p"
],
"loki": []
},
@ -781,17 +781,20 @@
"https://rimgo.hostux.net",
"https://ri.zzls.xyz",
"https://rimgo.marcopisco.com",
"https://rimgo.lunar.icu"
"https://rimgo.lunar.icu",
"https://imgur.010032.xyz"
],
"tor": [
"http://rimgo.esmail5pdn24shtvieloeedh7ehz3nrwcdivnfhfcedl7gf4kwddhkqd.onion",
"http://imgur.lpoaj7z2zkajuhgnlltpeqh3zyq7wk2iyeggqaduhgxhyajtdt2j7wad.onion",
"http://rimgo.vernccvbvyi5qhfzyqengccj7lkove6bjot2xhh5kajhwvidqafczrad.onion",
"http://tdp6uqjtmok723suum5ms3jbquht6d7dssug4cgcxhfniatb25gcipad.onion",
"http://i.habeehrhadazsw3izbrbilqajalfyqqln54mrja3iwpqxgcuxnus7eid.onion"
"http://i.habeehrhadazsw3izbrbilqajalfyqqln54mrja3iwpqxgcuxnus7eid.onion",
"http://rimgo.zzlsghu6mvvwyy75mvga6gaf4znbp3erk5xwfzedb4gg6qqh2j6rlvid.onion"
],
"i2p": [
"rimgov7l2tqyrm5txrtvhtnfyrzkc5d7ipafofavchbnnyog4r3q.b32.i2p"
"rimgov7l2tqyrm5txrtvhtnfyrzkc5d7ipafofavchbnnyog4r3q.b32.i2p",
"p57356k2xwhxrg2lxrjajcftkrptv4zejeeblzfgkcvpzuetkz2a.b32.i2p"
],
"loki": []
},
@ -862,10 +865,10 @@
"https://breezewiki.com",
"https://antifandom.com",
"https://breezewiki.pussthecat.org",
"https://bw.projectsegfau.lt",
"https://breeze.hostux.net",
"https://bw.us.projectsegfau.lt",
"https://bw.eu.projectsegfau.lt",
"https://bw.artemislena.eu",
"https://breeze.777.tf",
"https://breezewiki.esmailelbob.xyz"
],
"tor": [],
@ -888,5 +891,52 @@
"tor": [],
"i2p": [],
"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": []
}
}

ファイルの表示

@ -98,22 +98,23 @@ def is_cloudflare(url):
return False
def fetchCache(frontend, name):
def fetchCache(frontend):
try:
with open('./data.json') as file:
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:
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:
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:
r = requests.get(url)
rJson = json.loads(r.text)
@ -150,13 +151,13 @@ def fetchJsonList(frontend, name, url, urlItem, jsonObject):
_list['clearnet'].append(tmpItem)
mightyList[frontend] = _list
print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + name)
print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + frontend)
except Exception:
fetchCache(frontend, name)
fetchCache(frontend, frontend)
logging.error(traceback.format_exc())
def fetchRegexList(frontend, name, url, regex):
def fetchRegexList(frontend, url, regex):
try:
r = requests.get(url)
_list = {}
@ -177,13 +178,13 @@ def fetchRegexList(frontend, name, url, regex):
else:
_list['clearnet'].append(item)
mightyList[frontend] = _list
print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + name)
print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + frontend)
except Exception:
fetchCache(frontend, name)
fetchCache(frontend, )
logging.error(traceback.format_exc())
def fetchTextList(frontend, name, url, prepend):
def fetchTextList(frontend, url, prepend):
try:
_list = {}
for network in networks:
@ -212,9 +213,9 @@ def fetchTextList(frontend, name, url, prepend):
else:
_list['clearnet'].append(item)
mightyList[frontend] = _list
print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + name)
print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + frontend)
except Exception:
fetchCache(frontend, name)
fetchCache(frontend, frontend)
logging.error(traceback.format_exc())
@ -276,62 +277,62 @@ def piped():
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")
def cloudtube():
fetchFromFile('cloudtube', 'Cloudtube')
fetchFromFile('cloudtube')
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]*.*\|.*\|)|(?:$))")
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,}")
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))")
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)
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)
def scribe():
fetchJsonList('scribe', 'Scribe',
'https://git.sr.ht/~edwardloveall/scribe/blob/main/docs/instances.json', None, False)
fetchJsonList(
'scribe', 'https://git.sr.ht/~edwardloveall/scribe/blob/main/docs/instances.json', None, False)
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,}.*\|.*\|")
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,}.*\|.*\|")
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://'})
def linvgatranslate():
fetchJsonList('lingva', 'LingvaTranslate',
'https://raw.githubusercontent.com/TheDavidDelta/lingva-translate/main/instances.json', None, False)
fetchJsonList(
'lingva', 'https://raw.githubusercontent.com/TheDavidDelta/lingva-translate/main/instances.json', None, False)
def searx_searxng():
@ -371,63 +372,78 @@ def searx_searxng():
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]+)\/?\) \| ")
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)
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)
def librarian():
fetchJsonList('librarian', 'Librarian',
'https://codeberg.org/librarian/librarian/raw/branch/main/instances.json', 'url', True)
fetchJsonList(
'librarian', 'https://codeberg.org/librarian/librarian/raw/branch/main/instances.json', 'url', True)
def beatbump():
fetchFromFile('beatbump', 'Beatbump')
fetchFromFile('beatbump')
def hyperpipe():
fetchJsonList('hyperpipe', 'Hyperpipe',
'https://codeberg.org/Hyperpipe/pages/raw/branch/main/api/frontend.json', 'url', False)
fetchJsonList(
'hyperpipe', 'https://codeberg.org/Hyperpipe/pages/raw/branch/main/api/frontend.json', 'url', False)
def facil():
fetchFromFile('facil', 'FacilMap')
fetchFromFile('facil')
def osm():
fetchFromFile('osm', 'OpenStreetMap')
fetchFromFile('osm')
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]+)\/?\)\|")
def breezeWiki():
fetchJsonList('breezeWiki', 'BreezeWiki',
'https://docs.breezewiki.com/files/instances.json', 'instance', False)
fetchJsonList(
'breezeWiki', 'https://docs.breezewiki.com/files/instances.json', 'instance', False)
def privateBin():
fetchJsonList('privateBin', 'PrivateBin',
'https://privatebin.info/directory/api?top=100&https_redirect=true&min_rating=A&csp_header=true&min_uptime=100&attachments=true', 'url', False)
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)
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():
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
@ -466,6 +482,9 @@ breezeWiki()
# privateBin()
neuters()
ruralDictionary()
libMedium()
dumb()
anonymousOverflow()
mightyList = filterLastSlash(mightyList)
mightyList = idnaEncode(mightyList)