2024-08-24 06:28:25 +02:00
|
|
|
import { getAllBlogPostSlugs } from "@/lib/getBlogPost";
|
2024-09-07 22:06:58 +02:00
|
|
|
import clientPromise from "@/lib/db";
|
2024-08-24 06:28:25 +02:00
|
|
|
|
2024-07-28 17:20:53 +02:00
|
|
|
export default async function sitemap() {
|
2024-09-07 09:12:48 +02:00
|
|
|
const blogPostSlugs = await getAllBlogPostSlugs();
|
2024-08-24 06:28:25 +02:00
|
|
|
|
2024-09-07 09:12:48 +02:00
|
|
|
const baseRoutes = [
|
|
|
|
"/",
|
|
|
|
"/blog",
|
2024-09-07 12:00:05 +02:00
|
|
|
"/changelog",
|
2024-09-07 09:12:48 +02:00
|
|
|
"/contact",
|
|
|
|
"/contribute",
|
|
|
|
"/downloads",
|
|
|
|
"/mods",
|
2024-09-07 12:00:05 +02:00
|
|
|
"/privacy",
|
2024-09-07 09:12:48 +02:00
|
|
|
"/tos",
|
|
|
|
"/vulnerabilities",
|
|
|
|
"/newsletter"
|
|
|
|
].map((route) => ({
|
2024-09-08 13:16:43 +02:00
|
|
|
url: `${process.env.NEXT_PUBLIC_WEBSITE_URL}${route}`,
|
2024-09-07 09:12:48 +02:00
|
|
|
lastModified: new Date().toISOString().split("T")[0]
|
|
|
|
}));
|
2024-08-24 06:28:25 +02:00
|
|
|
|
2024-09-07 09:12:48 +02:00
|
|
|
const blogRoutes = blogPostSlugs.map((slug) => ({
|
2024-09-08 13:16:43 +02:00
|
|
|
url: `${process.env.NEXT_PUBLIC_WEBSITE_URL}/blog/${slug.slug}`,
|
2024-09-07 09:12:48 +02:00
|
|
|
lastModified: new Date().toISOString().split("T")[0]
|
|
|
|
}));
|
2024-07-28 17:20:53 +02:00
|
|
|
|
2024-09-07 22:08:35 +02:00
|
|
|
let changelogRoutes: any[] = [];
|
2024-09-07 22:06:58 +02:00
|
|
|
try {
|
|
|
|
const client = await clientPromise;
|
|
|
|
const db = client.db(process.env.MONGODB_DB);
|
|
|
|
const slugs = await db.collection("pages").find().toArray();
|
|
|
|
changelogRoutes = slugs.map((slug) => ({
|
2024-09-08 13:16:43 +02:00
|
|
|
url: `${process.env.NEXT_PUBLIC_WEBSITE_URL}/changelog/${slug.slug}`,
|
2024-09-07 22:06:58 +02:00
|
|
|
lastModified: new Date().toISOString().split("T")[0]
|
|
|
|
}));
|
|
|
|
} catch (err) {}
|
|
|
|
|
|
|
|
return [...baseRoutes, ...blogRoutes, ...changelogRoutes];
|
2024-07-28 17:20:53 +02:00
|
|
|
}
|