diff --git a/.github/workflows/update-instances.yml b/.github/workflows/update-instances.yml new file mode 100644 index 0000000..9723f53 --- /dev/null +++ b/.github/workflows/update-instances.yml @@ -0,0 +1,59 @@ +on: + schedule: + - cron: '0 0 * * *' + +jobs: + update-instances: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + - name: Install dependencies + run: sudo apt-get install -y jq + - name: Fetch instances + run: | + function apply_update() { + mv services-tmp.json services.json + rm -f *-tmp.json + } + + # ============================================================== + # Git config + # ============================================================== + git config --global user.name github-actions + git config --global user.email 41898282+github-actions[bot]@users.noreply.github.com + git remote set-url origin git@github.com:benbusby/farside.git + git checkout main + + # ============================================================== + # Searx update + # ============================================================== + curl -s https://searx.space/data/instances.json | \ + jq '[ + .instances | + to_entries[] | + select(.value.network_type == "normal") | + select(.value.tls != null) | + .key + ] | sort' > searx-tmp.json + + jq --slurpfile searx searx-tmp.json \ + '( .[] | select(.type == "searx") ) + .instances |= $searx[0]' services.json > services-tmp.json + + apply_update + + # ============================================================== + # TODO: Update instances for other services + # ============================================================== + + # ============================================================== + # Push changes + # ============================================================== + if [[ $(git diff-index --quiet HEAD) ]]; then + echo "No updates" + else + git add services.json + git commit -m '[CI] Auto update instances' + git push + fi diff --git a/services.json b/services.json index 995bbee..81c14d1 100644 --- a/services.json +++ b/services.json @@ -1,169 +1,227 @@ [ - { - "type": "libreddit", - "test_url": "/r/popular", - "fallback": "https://libredd.it", - "instances": [ - "https://libreddit.albony.xyz", - "https://libredd.it", - "https://libreddit.spike.codes", - "https://libreddit.dothq.co", - "https://libreddit.kavin.rocks", - "https://libreddit.40two.app", - "https://reddit.invak.id", - "https://reddit.phii.me", - "https://lr.riverside.rocks", - "https://libreddit.silkky.cloud", - "https://libreddit.database.red", - "https://libreddit.exonip.de", - "https://libreddit.domain.glass", - "https://libreddit.sugoma.tk", - "https://libreddit.trevorthalacker.com", - "https://reddit.artemislena.eu", - "https://r.nf", - "https://libreddit.awesomehub.io", - "https://libreddit.some-things.org", - "https://reddit.stuehieyr.com", - "https://lr.mint.lgbt", - "https://libreddit.alefvanoon.xyz", - "https://libreddit.igna.rocks", - "https://libreddit.autarkic.org", - "https://libreddit.flux.industries", - "https://libreddit.drivet.xyz", - "https://lr.oversold.host", - "https://libreddit.de" - ] - }, - { - "type": "bibliogram", - "test_url": "/u/officialrickastley", - "fallback": "https://bibliogram.art", - "instances": [ - "https://bibliogram.art", - "https://bibliogram.snopyta.org", - "https://bibliogram.pussthecat.org", - "https://bibliogram.1d4.us", - "https://insta.trom.tf", - "https://bibliogram.hamster.dance", - "https://bib.actionsack.com", - "https://biblio.alefvanoon.xyz" - ] - }, - { - "type": "invidious", - "test_url": "/watch?v=eBGIQ7ZuuiU", - "fallback": "https://invidious.snopyta.org", - "instances": [ - "https://yewtu.be", - "https://invidious.snopyta.org", - "https://invidious.kavin.rocks", - "https://vid.puffyan.org", - "https://invidious-us.kavin.rocks", - "https://inv.riverside.rocks", - "https://invidio.xamh.de", - "https://vid.mint.lgbt", - "https://invidious-jp.kavin.rocks", - "https://invidious.hub.ne.kr", - "https://yt.artemislena.eu", - "https://youtube.076.ne.jp", - "https://invidious.namazso.eu" - ] - }, - { - "type": "nitter", - "test_url": "/twitter", - "fallback": "https://nitter.net", - "instances": [ - "https://nitter.net", - "https://nitter.42l.fr", - "https://nitter.pussthecat.org", - "https://nitter.nixnet.services", - "https://nitter.fdn.fr", - "https://nitter.1d4.us", - "https://nitter.kavin.rocks", - "https://nitter.vxempire.xyz", - "https://nitter.unixfox.eu", - "https://nitter.domain.glass", - "https://nitter.eu", - "https://nitter.namazso.eu", - "https://nitter.mailstation.de", - "https://nitter.actionsack.com", - "https://nitter.cattube.org", - "https://birdsite.xanny.family", - "https://nitter.hu", - "https://nitter.exonip.de", - "https://twitr.gq", - "https://nitter.moomoo.me", - "https://bird.trom.tf", - "https://nitter.it", - "https://twitter.censors.us", - "https://nitter.grimneko.de", - "https://nitter.koyu.space", - "https://nitter.alefvanoon.xyz", - "https://nitter.ir", - "https://nitter.autarkic.org", - "https://n.0x0.st", - "https://n.hyperborea.cloud", - "https://nitter.ca", - "https://twitter.076.ne.jp", - "https://lu-nitter.resolv.ee", - "https://is-nitter.resolv.ee", - "https://cy-nitter.resolv.ee", - "https://tweet.lambda.dance" - ] - }, - { - "type": "whoogle", - "test_url": "/search?q=github", - "fallback": "https://search.garudalinux.org", - "instances": [ - "https://search.albony.xyz", - "https://whoogle.sdf.org", - "https://whoogle.kavin.rocks", - "https://search.garudalinux.org", - "https://whooglesearch.net", - "https://search.flawcra.cc", - "https://search.exonip.de", - "https://s.alefvanoon.xyz", - "https://search.flux.industries", - "https://www.whooglesearch.ml" - ] - }, - { - "type": "searx", - "test_url": "/search?q=github", - "fallback": "https://searx.be", - "instances": [ - "https://paulgo.io", - "https://search.asynchronousexchange.com", - "https://anon.sx", - "https://searx.be", - "https://searx.gnous.eu", - "https://xeek.com", - "https://searx.bar", - "https://sx.fedi.tech", - "https://searx.tiekoetter.com", - "https://search.disroot.org", - "https://northboot.xyz", - "https://searx.fmac.xyz", - "https://metasearch.nl", - "https://searx.nevrlands.de", - "https://search.mdosch.de", - "https://searx.rasp.fr", - "https://searx.zackptg5.com", - "https://procurx.pt", - "https://searx2.zackptg5.com", - "https://searx.pwoss.org", - "https://search.076.ne.jp/searx", - "https://darmarit.org/searx", - "https://suche.uferwerk.org", - "https://searx.nakhan.ne", - "https://suche.dasnetzundich.de", - "https://search.antonkling.se", - "https://jsearch.pw", - "https://searx.hummel-web.at", - "https://search.mdosch.de", - "https://searx.ru" - ] - } + { + "type": "libreddit", + "test_url": "/r/popular", + "fallback": "https://libredd.it", + "instances": [ + "https://libreddit.albony.xyz", + "https://libredd.it", + "https://libreddit.spike.codes", + "https://libreddit.dothq.co", + "https://libreddit.kavin.rocks", + "https://libreddit.40two.app", + "https://reddit.invak.id", + "https://reddit.phii.me", + "https://lr.riverside.rocks", + "https://libreddit.silkky.cloud", + "https://libreddit.database.red", + "https://libreddit.exonip.de", + "https://libreddit.domain.glass", + "https://libreddit.sugoma.tk", + "https://libreddit.trevorthalacker.com", + "https://reddit.artemislena.eu", + "https://r.nf", + "https://libreddit.awesomehub.io", + "https://libreddit.some-things.org", + "https://reddit.stuehieyr.com", + "https://lr.mint.lgbt", + "https://libreddit.alefvanoon.xyz", + "https://libreddit.igna.rocks", + "https://libreddit.autarkic.org", + "https://libreddit.flux.industries", + "https://libreddit.drivet.xyz", + "https://lr.oversold.host", + "https://libreddit.de" + ] + }, + { + "type": "bibliogram", + "test_url": "/u/officialrickastley", + "fallback": "https://bibliogram.art", + "instances": [ + "https://bibliogram.art", + "https://bibliogram.snopyta.org", + "https://bibliogram.pussthecat.org", + "https://bibliogram.1d4.us", + "https://insta.trom.tf", + "https://bibliogram.hamster.dance", + "https://bib.actionsack.com", + "https://biblio.alefvanoon.xyz" + ] + }, + { + "type": "invidious", + "test_url": "/watch?v=eBGIQ7ZuuiU", + "fallback": "https://invidious.snopyta.org", + "instances": [ + "https://yewtu.be", + "https://invidious.snopyta.org", + "https://invidious.kavin.rocks", + "https://vid.puffyan.org", + "https://invidious-us.kavin.rocks", + "https://inv.riverside.rocks", + "https://invidio.xamh.de", + "https://vid.mint.lgbt", + "https://invidious-jp.kavin.rocks", + "https://invidious.hub.ne.kr", + "https://yt.artemislena.eu", + "https://youtube.076.ne.jp", + "https://invidious.namazso.eu" + ] + }, + { + "type": "nitter", + "test_url": "/twitter", + "fallback": "https://nitter.net", + "instances": [ + "https://nitter.net", + "https://nitter.42l.fr", + "https://nitter.pussthecat.org", + "https://nitter.nixnet.services", + "https://nitter.fdn.fr", + "https://nitter.1d4.us", + "https://nitter.kavin.rocks", + "https://nitter.vxempire.xyz", + "https://nitter.unixfox.eu", + "https://nitter.domain.glass", + "https://nitter.eu", + "https://nitter.namazso.eu", + "https://nitter.mailstation.de", + "https://nitter.actionsack.com", + "https://nitter.cattube.org", + "https://birdsite.xanny.family", + "https://nitter.hu", + "https://nitter.exonip.de", + "https://twitr.gq", + "https://nitter.moomoo.me", + "https://bird.trom.tf", + "https://nitter.it", + "https://twitter.censors.us", + "https://nitter.grimneko.de", + "https://nitter.koyu.space", + "https://nitter.alefvanoon.xyz", + "https://nitter.ir", + "https://nitter.autarkic.org", + "https://n.0x0.st", + "https://n.hyperborea.cloud", + "https://nitter.ca", + "https://twitter.076.ne.jp", + "https://lu-nitter.resolv.ee", + "https://is-nitter.resolv.ee", + "https://cy-nitter.resolv.ee", + "https://tweet.lambda.dance" + ] + }, + { + "type": "whoogle", + "test_url": "/search?q=github", + "fallback": "https://search.garudalinux.org", + "instances": [ + "https://search.albony.xyz", + "https://whoogle.sdf.org", + "https://whoogle.kavin.rocks", + "https://search.garudalinux.org", + "https://whooglesearch.net", + "https://search.flawcra.cc", + "https://search.exonip.de", + "https://s.alefvanoon.xyz", + "https://search.flux.industries", + "https://www.whooglesearch.ml" + ] + }, + { + "type": "searx", + "test_url": "/search?q=github", + "fallback": "https://searx.be", + "instances": [ + "https://anon.sx/", + "https://darmarit.org/searx/", + "https://dynabyte.ca/", + "https://engo.mint.lgbt/", + "https://haku.ahmia.fi/", + "https://jsearch.pw/", + "https://metasearch.nl/", + "https://northboot.xyz/", + "https://paulgo.io/", + "https://procurx.pt/", + "https://recherche.catmargue.org/", + "https://s.zhaocloud.net/", + "https://search.antonkling.se/", + "https://search.asynchronousexchange.com/", + "https://search.bluelock.org/", + "https://search.disroot.org/", + "https://search.ethibox.fr/", + "https://search.fedi.life/", + "https://search.jigsaw-security.com/", + "https://search.jpope.org/", + "https://search.mdosch.de/", + "https://search.snopyta.org/", + "https://search.st8.at/", + "https://search.stinpriza.org/", + "https://search.trom.tf/", + "https://search.zdechov.net/", + "https://searx.bar/", + "https://searx.be/", + "https://searx.bissisoft.com/", + "https://searx.devol.it/", + "https://searx.divided-by-zero.eu/", + "https://searx.dresden.network/", + "https://searx.feneas.org/", + "https://searx.fmac.xyz/", + "https://searx.gnous.eu/", + "https://searx.gnu.style/", + "https://searx.hardwired.link/", + "https://searx.hummel-web.at/", + "https://searx.lavatech.top/", + "https://searx.mastodontech.de/", + "https://searx.mha.fi/", + "https://searx.mxchange.org/", + "https://searx.nakhan.net/", + "https://searx.netzspielplatz.de/", + "https://searx.nevrlands.de/", + "https://searx.ninja/", + "https://searx.nixnet.services/", + "https://searx.openhoofd.nl/", + "https://searx.org/", + "https://searx.prvcy.eu/", + "https://searx.pwoss.org/", + "https://searx.rasp.fr/", + "https://searx.roughs.ru/", + "https://searx.ru/", + "https://searx.run/", + "https://searx.silkky.cloud/", + "https://searx.slash-dev.de/", + "https://searx.solusar.de/", + "https://searx.sp-codes.de/", + "https://searx.stuehieyr.com/", + "https://searx.sunless.cloud/", + "https://searx.theanonymouse.xyz/", + "https://searx.thegreenwebfoundation.org/", + "https://searx.tiekoetter.com/", + "https://searx.tk/", + "https://searx.tux.land/", + "https://searx.tuxcloud.net/", + "https://searx.tyil.nl/", + "https://searx.webheberg.info/", + "https://searx.xkek.net/", + "https://searx.xyz/", + "https://searx.zackptg5.com/", + "https://searx.zecircle.xyz/", + "https://searx2.zackptg5.com/", + "https://spot.ecloud.global/", + "https://suche.dasnetzundich.de/", + "https://suche.uferwerk.org/", + "https://swag.pw/", + "https://sx.catgirl.cloud/", + "https://sx.fedi.tech/", + "https://timdor.noip.me/searx/", + "https://trovu.komun.org/", + "https://www.gruble.de/", + "https://www.perfectpixel.de/searx/", + "https://www.webrats.xyz/", + "https://xeek.com/", + "https://search.076.ne.jp/searx/", + "https://searx.roflcopter.fr/" + ] + } ]