feat: 全面优化系统 - 修复task1语法错误 + Bot超时保护 + 熔断重试 + Redis缓存 + SEO + 日志清理 + 内容质量评估

This commit is contained in:
ZhuiGuangAI Dev
2026-06-13 15:26:39 +08:00
parent a0a60ee9dc
commit b44601bb66
12 changed files with 399 additions and 12 deletions
+23
View File
@@ -0,0 +1,23 @@
import { MetadataRoute } from "next";
export default function robots(): MetadataRoute.Robots {
return {
rules: [
{
userAgent: "*",
allow: ["/", "/daily", "/skills", "/reviews", "/community"],
disallow: ["/admin", "/api/", "/login", "/_next/"],
},
{
userAgent: "Googlebot",
allow: "/",
},
{
userAgent: "Baiduspider",
allow: "/",
},
],
sitemap: "https://www.zhuig.com/sitemap.xml",
host: "https://www.zhuig.com",
};
}
+67
View File
@@ -0,0 +1,67 @@
import { MetadataRoute } from "next";
export default async function sitemap(): Promise<MetadataRoute.Sitemap> {
const baseUrl = "https://www.zhuig.com";
// 静态页面
const staticPages: MetadataRoute.Sitemap = [
{ url: baseUrl, lastModified: new Date(), changeFrequency: "daily", priority: 1 },
{ url: `${baseUrl}/daily`, lastModified: new Date(), changeFrequency: "daily", priority: 0.9 },
{ url: `${baseUrl}/skills`, lastModified: new Date(), changeFrequency: "daily", priority: 0.8 },
{ url: `${baseUrl}/reviews`, lastModified: new Date(), changeFrequency: "daily", priority: 0.8 },
{ url: `${baseUrl}/community`, lastModified: new Date(), changeFrequency: "daily", priority: 0.9 },
{ url: `${baseUrl}/community/bots`, lastModified: new Date(), changeFrequency: "weekly", priority: 0.7 },
{ url: `${baseUrl}/community/bots/leaderboard`, lastModified: new Date(), changeFrequency: "daily", priority: 0.7 },
{ url: `${baseUrl}/community/search`, lastModified: new Date(), changeFrequency: "monthly", priority: 0.5 },
{ url: `${baseUrl}/community/tags`, lastModified: new Date(), changeFrequency: "weekly", priority: 0.6 },
{ url: `${baseUrl}/community/checkin`, lastModified: new Date(), changeFrequency: "daily", priority: 0.6 },
{ url: `${baseUrl}/login`, lastModified: new Date(), changeFrequency: "monthly", priority: 0.3 },
];
// 动态页面:论坛分类
try {
const { PrismaClient } = await import("@prisma/client");
const { PrismaMariaDb } = await import("@prisma/adapter-mariadb");
const databaseUrl = process.env.DATABASE_URL;
if (databaseUrl) {
const base = databaseUrl.replace("mysql://", "mariadb://");
const sep = base.includes("?") ? "&" : "?";
const connectionString = `${base}${sep}connection_limit=5&pool_timeout=30`;
const adapter = new PrismaMariaDb(connectionString);
const prisma = new PrismaClient({ adapter });
// 论坛分类
const categories = await prisma.forumCategory.findMany({
select: { slug: true, updatedAt: true },
});
const categoryPages: MetadataRoute.Sitemap = categories.map((cat) => ({
url: `${baseUrl}/community/${cat.slug}`,
lastModified: cat.updatedAt,
changeFrequency: "daily" as const,
priority: 0.7,
}));
// 最近的话题
const topics = await prisma.forumTopic.findMany({
where: { isHidden: false },
select: { id: true, slug: true, updatedAt: true, category: { select: { slug: true } } },
orderBy: { updatedAt: "desc" },
take: 500,
});
const topicPages: MetadataRoute.Sitemap = topics.map((topic) => ({
url: `${baseUrl}/community/${topic.category.slug}/${topic.slug}`,
lastModified: topic.updatedAt,
changeFrequency: "weekly" as const,
priority: 0.6,
}));
await prisma.$disconnect();
return [...staticPages, ...categoryPages, ...topicPages];
}
} catch (e) {
console.error("Sitemap generation error:", e);
}
return staticPages;
}