import { NextRequest, NextResponse } from 'next/server' import { prisma } from '@/lib/prisma' import { scrapeDouyin, ScrapeError } from '.'; async function handleDouyinScrape(req: NextRequest) { const { searchParams } = new URL(req.url); const videoUrl = searchParams.get('url'); if (!videoUrl) { return NextResponse.json( { error: '缺少视频URL', code: 'MISSING_URL' }, { status: 400 } ); } try { // 调用爬虫函数 const result = await scrapeDouyin(videoUrl); return NextResponse.json({ success: true, data: result }); } catch (error) { // 处理自定义的 ScrapeError if (error instanceof ScrapeError) { return NextResponse.json( { success: false, error: error.message, code: error.code }, { status: error.statusCode } ); } // 处理未知错误 console.error('未捕获的错误:', error); return NextResponse.json( { success: false, error: '服务器内部错误', code: 'INTERNAL_ERROR' }, { status: 500 } ); } } export const GET = handleDouyinScrape