From 736bf531f9ad779c8888334863d8afa261df4e15 Mon Sep 17 00:00:00 2001 From: katelya Date: Fri, 5 Sep 2025 01:15:25 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=9B=B4=E6=96=B0=E6=90=9C=E7=B4=A2?= =?UTF-8?q?=E7=BB=93=E6=9E=9C=E5=A4=84=E7=90=86=E9=80=BB=E8=BE=91=EF=BC=8C?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E5=90=88=E5=B9=B6=E5=B8=B8=E8=A7=84=E5=92=8C?= =?UTF-8?q?=E6=88=90=E4=BA=BA=E5=86=85=E5=AE=B9=E7=BB=93=E6=9E=9C=EF=BC=8C?= =?UTF-8?q?=E5=85=BC=E5=AE=B9=E6=97=A7=E6=A0=BC=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config.json | 30 +++++++++++++++++++++--------- src/app/api/search/route.ts | 4 ++++ src/app/play/page.tsx | 16 +++++++++++++++- src/app/search/page.tsx | 13 ++++++++++--- 4 files changed, 50 insertions(+), 13 deletions(-) diff --git a/config.json b/config.json index 559ff10..65d5b5c 100644 --- a/config.json +++ b/config.json @@ -1,17 +1,29 @@ { "cache_time": 7200, "api_site": { - "example_test": { - "api": "https://example.com/api.php/provide/vod", - "name": "示例视频源", - "detail": "https://example.com", + "okzy": { + "api": "https://okzy.tv/api.php/provide/vod", + "name": "OK资源", + "detail": "https://okzy.tv/api.php/provide/vod/?ac=detail&ids={ids}", "is_adult": false }, - "adult_example": { - "api": "https://adult-example.com/api.php/provide/vod", - "name": "成人内容源(仅供示例)", - "detail": "https://adult-example.com", - "is_adult": true + "hnzy": { + "api": "https://www.hongniuzy.com/inc/api.php", + "name": "红牛资源", + "detail": "https://www.hongniuzy.com/inc/api.php?ac=detail&ids={ids}", + "is_adult": false + }, + "ffzy": { + "api": "https://cj.ffzyapi.com/api.php/provide/vod", + "name": "非凡资源", + "detail": "https://cj.ffzyapi.com/api.php/provide/vod/?ac=detail&ids={ids}", + "is_adult": false + }, + "lzzy": { + "api": "https://api.lzapi.com/api.php/provide/vod", + "name": "量子资源", + "detail": "https://api.lzapi.com/api.php/provide/vod/?ac=detail&ids={ids}", + "is_adult": false } } } diff --git a/src/app/api/search/route.ts b/src/app/api/search/route.ts index 4d573bc..4ec1562 100644 --- a/src/app/api/search/route.ts +++ b/src/app/api/search/route.ts @@ -48,8 +48,12 @@ export async function GET(request: Request) { // 获取常规资源站 const regularSites = await getAvailableApiSites(true); // 总是过滤成人内容 + console.log('搜索API - 获取到的常规站点数量:', regularSites.length); + console.log('搜索API - 常规站点列表:', regularSites.map(s => s.name).join(', ')); + const regularSearchPromises = regularSites.map((site) => searchFromApi(site, query)); const regularResults = (await Promise.all(regularSearchPromises)).flat(); + console.log('搜索API - 常规搜索结果数量:', regularResults.length); let adultResults: unknown[] = []; diff --git a/src/app/play/page.tsx b/src/app/play/page.tsx index 777a3c3..970e468 100644 --- a/src/app/play/page.tsx +++ b/src/app/play/page.tsx @@ -505,8 +505,22 @@ function PlayPageClient() { } const data = await response.json(); + // 处理新的搜索结果格式:合并 regular_results 和 adult_results + let allResults: SearchResult[] = []; + if (data.regular_results && Array.isArray(data.regular_results)) { + allResults = allResults.concat(data.regular_results); + } + if (data.adult_results && Array.isArray(data.adult_results)) { + allResults = allResults.concat(data.adult_results); + } + + // 兼容旧格式(如果有的话) + if (data.results && Array.isArray(data.results)) { + allResults = data.results; + } + // 处理搜索结果,根据规则过滤 - const results = data.results.filter( + const results = allResults.filter( (result: SearchResult) => result.title.replaceAll(' ', '').toLowerCase() === videoTitleRef.current.replaceAll(' ', '').toLowerCase() && diff --git a/src/app/search/page.tsx b/src/app/search/page.tsx index 7f78837..b4e8395 100644 --- a/src/app/search/page.tsx +++ b/src/app/search/page.tsx @@ -185,16 +185,23 @@ function SearchPageClient() { ); const data = await response.json(); - // 如果返回了分组结果,我们需要处理这种格式 - if (data.grouped) { + // 处理新的搜索结果格式 + if (data.regular_results || data.adult_results) { // 处理分组结果 + setGroupedResults({ + regular: data.regular_results || [], + adult: data.adult_results || [] + }); + setSearchResults([...(data.regular_results || []), ...(data.adult_results || [])]); + } else if (data.grouped) { + // 兼容旧的分组格式 setGroupedResults({ regular: data.regular || [], adult: data.adult || [] }); setSearchResults([...(data.regular || []), ...(data.adult || [])]); } else { - // 处理普通结果 + // 兼容旧的普通结果格式 setGroupedResults(null); setSearchResults(data.results || []); }