diff --git a/tonesc-red-packet/app/api/og/[id]/route.tsx b/tonesc-red-packet/app/api/og/[id]/route.tsx deleted file mode 100644 index 234d31c..0000000 --- a/tonesc-red-packet/app/api/og/[id]/route.tsx +++ /dev/null @@ -1,80 +0,0 @@ -import { db } from "@/app/server/db" -import { redPackets } from "@/app/server/schema/red-packet" -import { ImageResponse } from "@vercel/og" -import { eq } from "drizzle-orm" -import { NextRequest } from "next/server" - -export const runtime = "edge" // 使用 Edge Runtime 加快生成速度 - -export async function GET(req: NextRequest) { - try { - const { searchParams } = new URL(req.url) - const id = searchParams.get("id") - if (!id) return new Response("Missing red packet ID", { status: 400 }) - - // 查询红包信息 - const packet = (await db - .select() - .from(redPackets) - .where(eq(redPackets.id, id)) - .limit(1))[0] - - if (!packet) return new Response("Red packet not found", { status: 404 }) - - // 生成规则文字 - let ruleText = "" - const rule = packet.rule as any - if (rule.type === "fixed") { - ruleText = `固定金额 ${rule.singleAmount} ${packet.currencyName}` - } else if (rule.type === "random") { - ruleText = `随机金额 ${rule.min} ~ ${rule.max} ${packet.currencyName}` - } else if (rule.type === "luck") { - ruleText = `拼手气,总额 ${rule.total} ${packet.currencyName}` - } - - return new ImageResponse( - ( -
-
- 🎁 tonesc 红包 -
-
- {ruleText} -
- {/* 卡通红包图标 */} -
🧧
-
- ), - { - width: 1200, - height: 630, - } - ) - } catch (e) { - return new Response("Failed to generate image", { status: 500 }) - } -}