23 lines
995 B
TypeScript
23 lines
995 B
TypeScript
import { auth } from "@/app/(auth)/auth";
|
|
import { captionFont } from "@/lib/video-canvas/smart-edit/fonts";
|
|
import { captionFontFile } from "@/lib/video-canvas/smart-edit/font-files";
|
|
import { readFile } from "node:fs/promises";
|
|
export const runtime = "nodejs";
|
|
export const maxDuration = 180;
|
|
export async function GET(_request: Request, { params }: { params: Promise<{ id: string }> }) {
|
|
if (!(await auth())?.user?.id) return Response.json({ error: "未登录" }, { status: 401 });
|
|
const { id } = await params;
|
|
if (!captionFont(id)) return Response.json({ error: "字体不存在" }, { status: 404 });
|
|
try {
|
|
const data = await readFile(await captionFontFile(id));
|
|
return new Response(new Uint8Array(data), {
|
|
headers: {
|
|
"Content-Type": "font/ttf",
|
|
"Cache-Control": "private, max-age=31536000, immutable",
|
|
},
|
|
});
|
|
} catch {
|
|
return Response.json({ error: "字体加载失败,请检查字体服务配置后重试" }, { status: 503 });
|
|
}
|
|
}
|