From de251c67caa164fd9bb2194415f5e4de2361948a Mon Sep 17 00:00:00 2001 From: BrickheadJohnny Date: Tue, 28 Jan 2025 15:59:48 +0100 Subject: [PATCH] feat: optimize og image generation --- src/components/common/LinkPreviewHead.tsx | 10 +++++++++- .../api/linkpreview/[timestamp]/[guild]/[group].tsx | 7 +++---- .../api/linkpreview/[timestamp]/[guild]/index.tsx | 7 +++---- 3 files changed, 15 insertions(+), 9 deletions(-) diff --git a/src/components/common/LinkPreviewHead.tsx b/src/components/common/LinkPreviewHead.tsx index b8aaeb83f3..5a1bd6f3fd 100644 --- a/src/components/common/LinkPreviewHead.tsx +++ b/src/components/common/LinkPreviewHead.tsx @@ -4,8 +4,16 @@ type Props = { path: string } +const getTimestamp = () => { + const rounded = new Date() + rounded.setMinutes(0) + rounded.setSeconds(0) + rounded.setMilliseconds(0) + return rounded.getTime() +} + const LinkPreviewHead = ({ path }: Props) => { - const url = `https://guild.xyz/api/linkpreview/${Date.now()?.toString()}/${path}` + const url = `https://guild.xyz/api/linkpreview/${getTimestamp()}/${path}` return ( diff --git a/src/pages/api/linkpreview/[timestamp]/[guild]/[group].tsx b/src/pages/api/linkpreview/[timestamp]/[guild]/[group].tsx index b50f4fb18b..53e545b46b 100644 --- a/src/pages/api/linkpreview/[timestamp]/[guild]/[group].tsx +++ b/src/pages/api/linkpreview/[timestamp]/[guild]/[group].tsx @@ -3,10 +3,6 @@ import loadGoogleFont from "fonts/loadGoogleFont" import { ImageResponse } from "next/og" import { Guild } from "types" -export const config = { - runtime: "edge", -} - const interFont = loadGoogleFont("Inter", "400") const interBoldFont = loadGoogleFont("Inter", "700") const dystopianFont = fetch( @@ -260,6 +256,9 @@ const handler = async (req, _) => { , { + headers: { + "Cache-Control": "s-maxage=3600", // 1 hour + }, width: 800, height: 450, fonts: [ diff --git a/src/pages/api/linkpreview/[timestamp]/[guild]/index.tsx b/src/pages/api/linkpreview/[timestamp]/[guild]/index.tsx index 59f32dabf9..99d6db8e47 100644 --- a/src/pages/api/linkpreview/[timestamp]/[guild]/index.tsx +++ b/src/pages/api/linkpreview/[timestamp]/[guild]/index.tsx @@ -3,10 +3,6 @@ import loadGoogleFont from "fonts/loadGoogleFont" import { ImageResponse } from "next/og" import { Guild } from "types" -export const config = { - runtime: "edge", -} - const interFont = loadGoogleFont("Inter", "400") const interBoldFont = loadGoogleFont("Inter", "700") const dystopianFont = fetch( @@ -246,6 +242,9 @@ const handler = async (req, _) => { , { + headers: { + "Cache-Control": "s-maxage=3600", // 1 hour + }, width: 800, height: 450, fonts: [