/* eslint-disable no-console */ import { NextRequest, NextResponse } from 'next/server'; import { getAuthInfoFromCookie } from '@/lib/auth'; import { getConfig } from '@/lib/config'; import { db } from '@/lib/db'; import { refreshLiveChannels } from '@/lib/live'; export async function POST(request: NextRequest) { try { // 权限检查 const authInfo = getAuthInfoFromCookie(request); const username = authInfo?.username; const config = await getConfig(); if (username !== process.env.USERNAME) { // 管理员 const user = config.UserConfig.Users.find( (u) => u.username === username ); if (!user || user.role !== 'admin' || user.banned) { return NextResponse.json({ error: '权限不足' }, { status: 401 }); } } for (const liveInfo of config.LiveConfig || []) { if (liveInfo.disabled) { continue; } try { const nums = await refreshLiveChannels(liveInfo); liveInfo.channelNumber = nums; } catch (error) { console.error('刷新直播源失败:', error); liveInfo.channelNumber = 0; } } // 保存配置 await db.saveAdminConfig(config); return NextResponse.json({ success: true, message: '直播源刷新成功', }); } catch (error) { console.error('直播源刷新失败:', error); return NextResponse.json( { error: error instanceof Error ? error.message : '刷新失败' }, { status: 500 } ); } }