mirror of
https://github.com/trafficlunar/tomodachi-share.git
synced 2026-05-13 21:27:46 +00:00
81 lines
1.6 KiB
TypeScript
81 lines
1.6 KiB
TypeScript
import { prisma } from "@/lib/prisma";
|
|
import type { MetadataRoute } from "next";
|
|
|
|
type SitemapRoute = MetadataRoute.Sitemap[0];
|
|
|
|
export const revalidate = 43200; // update every 12 hours
|
|
|
|
export default async function sitemap(): Promise<MetadataRoute.Sitemap> {
|
|
const baseUrl = process.env.NEXT_PUBLIC_FRONTEND_URL!;
|
|
const apiUrl = process.env.NEXT_PUBLIC_BASE_URL!;
|
|
|
|
const miis = await prisma.mii.findMany({
|
|
select: {
|
|
id: true,
|
|
createdAt: true,
|
|
},
|
|
where: {
|
|
in_queue: false,
|
|
quarantined: false,
|
|
},
|
|
});
|
|
|
|
// const users = await prisma.user.findMany({
|
|
// select: {
|
|
// id: true,
|
|
// updatedAt: true,
|
|
// },
|
|
// });
|
|
|
|
const dynamicRoutes: MetadataRoute.Sitemap = [
|
|
...miis.map(
|
|
(mii) =>
|
|
({
|
|
url: `${baseUrl}/mii/${mii.id}`,
|
|
lastModified: mii.createdAt,
|
|
changeFrequency: "weekly",
|
|
priority: 0.7,
|
|
images: [`${apiUrl}/mii/${mii.id}/image?type=metadata`],
|
|
}) as SitemapRoute,
|
|
),
|
|
// ...users.map(
|
|
// (user) =>
|
|
// ({
|
|
// url: `${baseUrl}/profile/${user.id}`,
|
|
// lastModified: user.updatedAt,
|
|
// changeFrequency: "weekly",
|
|
// priority: 0.2,
|
|
// }) as SitemapRoute,
|
|
// ),
|
|
];
|
|
|
|
const lastModified = new Date();
|
|
|
|
return [
|
|
{
|
|
url: baseUrl,
|
|
lastModified,
|
|
changeFrequency: "always",
|
|
priority: 1,
|
|
},
|
|
{
|
|
url: `${baseUrl}/login`,
|
|
lastModified,
|
|
changeFrequency: "monthly",
|
|
priority: 0.6,
|
|
},
|
|
{
|
|
url: `${baseUrl}/privacy`,
|
|
lastModified,
|
|
changeFrequency: "yearly",
|
|
priority: 0.4,
|
|
},
|
|
{
|
|
url: `${baseUrl}/terms-of-service`,
|
|
lastModified,
|
|
changeFrequency: "yearly",
|
|
priority: 0.4,
|
|
},
|
|
...dynamicRoutes,
|
|
];
|
|
}
|