diff --git a/src/pages/meta/plugins/group-[cls].svg.ts b/src/pages/meta/plugins/group-[cls].svg.ts index 262a691b74c..b7a1842e186 100644 --- a/src/pages/meta/plugins/group-[cls].svg.ts +++ b/src/pages/meta/plugins/group-[cls].svg.ts @@ -6,14 +6,22 @@ export const prerender = false export async function GET({ request, params }: { request: any; params: { cls: string } }) { const cls = params.cls - const metadata = await $fetchApiCached(`/plugins/metadata/group/${cls}`) + if (!cls || cls === "undefined" || cls === "null") { + return new Response("Not found", { status: 404 }) + } - const category = "Plugins" - const title = metadata.title - const description = metadata.description - const image = metadata.icon + let metadata: PluginMetadata + try { + metadata = await $fetchApiCached(`/plugins/metadata/group/${cls}`) + } catch { + return new Response("Not found", { status: 404 }) + } - const svgString = generate(request, category as string, title as string, image, description) + if (!metadata?.title) { + return new Response("Not found", { status: 404 }) + } + + const svgString = generate(request, "Plugins", metadata.title, metadata.icon, metadata.description) return new Response(svgString, { headers: { diff --git a/src/utils/plugins/buildPluginPageProps.ts b/src/utils/plugins/buildPluginPageProps.ts index f04aeeb1e5e..f6f6d4b7173 100644 --- a/src/utils/plugins/buildPluginPageProps.ts +++ b/src/utils/plugins/buildPluginPageProps.ts @@ -275,8 +275,11 @@ export function buildPluginPageProps(input: BuildPluginPagePropsInput) { ), ) - const ogImage = effectiveSubGroup - ? `/meta/plugins/group-${subgroups.find((r) => slugify(r.title) === effectiveSubGroup)?.subGroup}.svg` + const matchedSubGroup = effectiveSubGroup + ? subgroups.find((r) => slugify(r.title) === effectiveSubGroup)?.subGroup + : undefined + const ogImage = matchedSubGroup + ? `/meta/plugins/group-${matchedSubGroup}.svg` : `/meta/plugins/${pluginType ?? pluginName}.svg` const prunedRootPlugin = rootPlugin ? prunePluginsForSidebar([rootPlugin])[0] : undefined