export const runtime = 'nodejs'

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
