From 24223a5d273b5eae62b9fe550827dae4c95b6e56 Mon Sep 17 00:00:00 2001 From: mtvpls Date: Mon, 29 Dec 2025 10:19:38 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A7=81=E4=BA=BA=E5=BD=B1=E5=BA=93=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E6=89=8B=E5=8A=A8=E7=BA=A0=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app/admin/page.tsx | 13 + src/app/api/openlist/correct/route.ts | 13 +- src/app/api/openlist/list/route.ts | 1 + src/components/CorrectDialog.tsx | 518 ++++++++++++++++++++++---- src/lib/tmdb.search.ts | 6 + 5 files changed, 464 insertions(+), 87 deletions(-) diff --git a/src/app/admin/page.tsx b/src/app/admin/page.tsx index d4a439c..3967d1f 100644 --- a/src/app/admin/page.tsx +++ b/src/app/admin/page.tsx @@ -3310,6 +3310,8 @@ const OpenListConfigComponent = ({ )} + {!showManualInput && ( +
+
+ setSearchQuery(e.target.value)} + onKeyDown={(e) => { + if (e.key === 'Enter') { + handleSearch(); + } + }} + placeholder='输入搜索关键词' + className='flex-1 px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-lg bg-white dark:bg-gray-700 text-gray-900 dark:text-gray-100 focus:ring-2 focus:ring-blue-500 focus:border-transparent' + /> + +
+ {error && ( +

{error}

+ )}
- {error && ( -

{error}

- )} - + )} {/* 结果列表 */}
- {showSeasonSelection ? ( + {showManualInput ? ( + // 手动输入界面 +
+
+ +
+ +
+ {/* 标题 - 必填 */} +
+ + setManualData({ ...manualData, title: e.target.value })} + placeholder='请输入影片标题' + className='w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-lg bg-white dark:bg-gray-700 text-gray-900 dark:text-gray-100 focus:ring-2 focus:ring-blue-500 focus:border-transparent' + /> +
+ + {/* TMDB ID - 可选 */} +
+ + setManualData({ ...manualData, tmdbId: e.target.value })} + placeholder='例如:550' + className='w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-lg bg-white dark:bg-gray-700 text-gray-900 dark:text-gray-100 focus:ring-2 focus:ring-blue-500 focus:border-transparent' + /> +

+ 可在 TMDB 网站查找影片对应的 ID +

+
+ + {/* 豆瓣 ID - 可选 */} +
+ + setManualData({ ...manualData, doubanId: e.target.value })} + placeholder='例如:1292052' + className='w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-lg bg-white dark:bg-gray-700 text-gray-900 dark:text-gray-100 focus:ring-2 focus:ring-blue-500 focus:border-transparent' + /> +

+ 可在豆瓣网站查找影片对应的 ID +

+
+ + {/* 媒体类型 */} +
+ +
+ + +
+
+ + {/* 如果是电视剧,显示季度信息 */} + {manualData.mediaType === 'tv' && ( + <> +
+ + setManualData({ ...manualData, seasonNumber: e.target.value })} + placeholder='例如:1' + className='w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-lg bg-white dark:bg-gray-700 text-gray-900 dark:text-gray-100 focus:ring-2 focus:ring-blue-500 focus:border-transparent' + /> +
+
+ + setManualData({ ...manualData, seasonName: e.target.value })} + placeholder='例如:第 1 季' + className='w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-lg bg-white dark:bg-gray-700 text-gray-900 dark:text-gray-100 focus:ring-2 focus:ring-blue-500 focus:border-transparent' + /> +
+ + )} + + {/* 封面图链接 */} +
+ + setManualData({ ...manualData, posterPath: e.target.value })} + placeholder='请输入图片链接' + className='w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-lg bg-white dark:bg-gray-700 text-gray-900 dark:text-gray-100 focus:ring-2 focus:ring-blue-500 focus:border-transparent' + /> +
+ + {/* 上映日期 */} +
+ + setManualData({ ...manualData, releaseDate: e.target.value })} + className='w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-lg bg-white dark:bg-gray-700 text-gray-900 dark:text-gray-100 focus:ring-2 focus:ring-blue-500 focus:border-transparent' + /> +
+ + {/* 评分 */} +
+ + setManualData({ ...manualData, voteAverage: e.target.value })} + placeholder='例如:8.5' + className='w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-lg bg-white dark:bg-gray-700 text-gray-900 dark:text-gray-100 focus:ring-2 focus:ring-blue-500 focus:border-transparent' + /> +
+ + {/* 简介 */} +
+ +