import { readFile } from "node:fs/promises"; import path from "node:path"; import { getAllUniversiteler } from "@/lib/katalog"; import { trBaslikDuzeni } from "@/lib/slug"; import { uniLogoYolu } from "@/lib/uni-logolar"; import { createOgSayfaImage, OG_CONTENT_TYPE, OG_SIZE, } from "@/lib/og-sayfa"; import { SON_YIL } from "@/lib/veri-yillari"; export const alt = "Üniversite taban puanları ve sıralamaları — KolayTercih"; export const size = OG_SIZE; export const contentType = OG_CONTENT_TYPE; export default async function Image({ params, }: { params: Promise<{ slug: string }>; }) { const { slug } = await params; const uni = getAllUniversiteler().find((u) => u.slug === slug); const ad = uni?.ad ?? "Üniversite"; const parcalar: string[] = []; if (uni?.il) parcalar.push(trBaslikDuzeni(uni.il)); if (uni?.programSayisi != null) { parcalar.push(`${uni.programSayisi.toLocaleString("tr-TR")} program`); } parcalar.push(`${SON_YIL} yerleştirme verileri`); // Logo dosyası varsa OG kartına data URI olarak gömülür; okuma hatası // kartı düşürmesin diye sessizce logosuz karta düşülür. let logo: string | undefined; if (uniLogoYolu(slug)) { try { const buf = await readFile( path.join(process.cwd(), "public", "uni-logo", `${slug}.png`), ); logo = `data:image/png;base64,${buf.toString("base64")}`; } catch { logo = undefined; } } return createOgSayfaImage({ eyebrow: "Üniversite", title: `${ad} taban puanları`, description: parcalar.join(" · "), logo, }); }