mirror of
https://github.com/ajayyy/SponsorBlock.git
synced 2024-11-09 16:52:14 +01:00
62 lines
1.8 KiB
TypeScript
62 lines
1.8 KiB
TypeScript
/*
|
|
This file is only ran by GitHub Actions in order to populate the Invidious instances list
|
|
|
|
This file should not be shipped with the extension
|
|
*/
|
|
|
|
/*
|
|
Criteria for inclusion:
|
|
Invidious
|
|
- uptime >= 80%
|
|
- must have been up for at least 90 days
|
|
- HTTPS only
|
|
- url includes name (this is to avoid redirects)
|
|
|
|
Piped
|
|
- 30d uptime >= 90%
|
|
- available for at least 80/90 days
|
|
- must have been up for at least 90 days
|
|
- must not be a wildcard redirect to piped.video
|
|
- must be currently up
|
|
- must have a functioning frontend
|
|
- must have a functioning API
|
|
*/
|
|
|
|
import { writeFile, existsSync } from "fs"
|
|
import { join } from "path"
|
|
import { getInvidiousList } from "./invidiousCI";
|
|
// import { getPipedList } from "./pipedCI";
|
|
|
|
const checkPath = (path: string) => existsSync(path);
|
|
const fixArray = (arr: string[]) => [...new Set(arr)].sort()
|
|
|
|
async function generateList() {
|
|
// import file from https://api.invidious.io/instances.json
|
|
const invidiousPath = join(__dirname, "invidious_instances.json");
|
|
// import file from https://github.com/TeamPiped/piped-uptime/raw/master/history/summary.json
|
|
const pipedPath = join(__dirname, "piped_instances.json");
|
|
|
|
// check if files exist
|
|
if (!checkPath(invidiousPath) || !checkPath(pipedPath)) {
|
|
console.log("Missing files")
|
|
process.exit(1);
|
|
}
|
|
|
|
// static non-invidious instances
|
|
const staticInstances = ["www.youtubekids.com"];
|
|
// invidious instances
|
|
const invidiousList = fixArray(getInvidiousList())
|
|
// piped instnaces
|
|
// const pipedList = fixArray(await getPipedList())
|
|
|
|
console.log([...staticInstances, ...invidiousList])
|
|
|
|
writeFile(
|
|
join(__dirname, "./invidiouslist.json"),
|
|
JSON.stringify([...staticInstances, ...invidiousList]),
|
|
(err) => {
|
|
if (err) return console.log(err);
|
|
}
|
|
);
|
|
}
|
|
generateList()
|