import { allPublishedForFeeds } from "@autoscholar/core";
import { db } from "@/lib/server/db";
export const runtime = "nodejs";
export const dynamic = "force-dynamic";
const esc = (s: string) =>
s.replace(/&/g, "&").replace(//g, ">").replace(/"/g, """);
export async function GET() {
const base = process.env.APP_BASE_URL ?? "http://localhost:8470";
const rows = await allPublishedForFeeds(db(), 100);
const updated = rows[0] ? new Date(rows[0].p.updatedAt).toISOString() : new Date().toISOString();
const entries = rows
.map(
(r) =>
`${esc(r.v.title)}${base}/research/${r.p.slug}${new Date(r.p.updatedAt).toISOString()}${new Date(r.v.publishedAt).toISOString()}AutoScholar (AI-generated research)${esc(r.v.abstract)}${r.v.keywords.map((k) => ``).join("")}`,
)
.join("");
const xml = `AutoScholar.ai working papers${base}/${updated}${entries}`;
return new Response(xml, {
headers: {
"content-type": "application/atom+xml; charset=utf-8",
"cache-control": "public, max-age=300",
},
});
}