import { getPaths } from "yt-dlp-transcript-common/lib/paths"; import { listSites } from "yt-dlp-transcript-common/lib/site"; import { isListedSite, isPrivateSite } from "yt-dlp-transcript-common/lib/siteSchema"; import { readRoute } from "../_read"; export const dynamic = "force-dynamic"; // GET /api/ops/sites // // Every site, one row each, from its site.json: id, title, public URL // (`siteUrl`), Pages project, audience, whether the family lists it, whether it // publishes search, its publish policy and the channels it carries. The deep // status of a site's builds and deploys is `get publish`. export async function GET(request: Request) { return readRoute(request, [], async () => ({ sites: listSites(getPaths()).map((s) => ({ siteId: s.siteId, title: s.siteTitle, siteUrl: s.siteUrl ?? null, cloudflareProject: s.cloudflareProject ?? null, audience: isPrivateSite(s) ? "private" : "public", listed: isListedSite(s), search: s.search !== false, publish: s.publish ?? null, channels: s.channels.map((c) => c.slug), })), })); }