import { NextResponse } from "next/server"; // The crawl tick, fired by the PM2 cron (scripts/cron-digest.cjs) every 15 min. // Protected by the CRON_SECRET header so a random visitor cannot trigger a // crawl on demand (it costs feed fetches + og:image rescues + article // prefetches). export const maxDuration = 290; export async function POST(req) { const secret = req.headers.get("x-bama-cron"); if (secret !== (process.env.CRON_SECRET || "bama-cron")) { return NextResponse.json({ error: "unauthorized" }, { status: 401 }); } try { const { crawlOnce } = await import("../../../lib/crawl"); const crawl = await crawlOnce(); return NextResponse.json({ ok: true, crawl }); } catch (e) { return NextResponse.json({ ok: false, error: String((e && e.message) || e) }, { status: 500 }); } }