From b64a007d0f5fbf01e55d681083837957a28c4189 Mon Sep 17 00:00:00 2001 From: Jordan Eldredge Date: Wed, 4 Jun 2025 23:00:32 -0700 Subject: [PATCH] Next.js sitemaps --- packages/skin-database/app/sitemap.ts | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/packages/skin-database/app/sitemap.ts b/packages/skin-database/app/sitemap.ts index 1ad56565..b5210960 100644 --- a/packages/skin-database/app/sitemap.ts +++ b/packages/skin-database/app/sitemap.ts @@ -6,11 +6,13 @@ const PAGE_SIZE = 50000; const BASE_URL = "https://skins.webamp.org"; -export async function generateSitemaps(): Promise<{ id: number }[]> { +export const dynamic = "force-dynamic"; // This ensures the sitemap is always generated fresh + +export async function generateSitemaps(): Promise<{ id: string }[]> { const count = await Skins.getClassicSkinCount(); - const maps: { id: number }[] = []; + const maps: { id: string }[] = []; for (let i = 0; i < Math.ceil(count / PAGE_SIZE); i++) { - maps.push({ id: i }); + maps.push({ id: String(i) }); } return maps; } @@ -21,7 +23,9 @@ export default async function sitemap({ id: string; }): Promise { const md5s = await Skins.getAllClassicSkins(); - const skinUrls = md5s.map(({ md5, fileName }) => `skin/${md5}/${fileName}`); + const skinUrls = md5s.map( + ({ md5, fileName }) => `/skin/${md5}/${encodeURIComponent(fileName)}` + ); const urls = ["/about", "/", "/upload", ...skinUrls]; const slice = urls.slice( parseInt(id, 10) * PAGE_SIZE,