diff --git a/src/app/admin/page.tsx b/src/app/admin/page.tsx
index 0908c85..c89bf2a 100644
--- a/src/app/admin/page.tsx
+++ b/src/app/admin/page.tsx
@@ -70,6 +70,7 @@ interface DataSource {
detail?: string;
disabled?: boolean;
from: 'config' | 'custom';
+ is_adult?: boolean; // 添加成人内容标记字段
}
// 可折叠标签组件
@@ -643,6 +644,7 @@ const VideoSourceConfig = ({
detail: '',
disabled: false,
from: 'config',
+ is_adult: false, // 默认不是成人内容
});
// dnd-kit 传感器
@@ -721,6 +723,7 @@ const VideoSourceConfig = ({
name: newSource.name,
api: newSource.api,
detail: newSource.detail,
+ is_adult: newSource.is_adult, // 传递成人内容标记
})
.then(() => {
setNewSource({
@@ -730,6 +733,7 @@ const VideoSourceConfig = ({
detail: '',
disabled: false,
from: 'custom',
+ is_adult: false, // 重置为默认值
});
setShowAddForm(false);
})
@@ -866,7 +870,8 @@ const VideoSourceConfig = ({
exportConfig.api_site[source.key] = {
api: source.api,
name: source.name,
- ...(source.detail && { detail: source.detail })
+ ...(source.detail && { detail: source.detail }),
+ ...(source.is_adult !== undefined && { is_adult: source.is_adult }) // 确保导出 is_adult 字段
};
}
});
@@ -939,7 +944,7 @@ const VideoSourceConfig = ({
throw new Error(`${key}: 无效的配置对象`);
}
- const sourceObj = source as { api?: string; name?: string; detail?: string };
+ const sourceObj = source as { api?: string; name?: string; detail?: string; is_adult?: boolean };
if (!sourceObj.api || !sourceObj.name) {
throw new Error(`${key}: 缺少必要字段 api 或 name`);
@@ -950,7 +955,8 @@ const VideoSourceConfig = ({
key: key,
name: sourceObj.name,
api: sourceObj.api,
- detail: sourceObj.detail || ''
+ detail: sourceObj.detail || '',
+ is_adult: sourceObj.is_adult || false // 确保处理 is_adult 字段
});
successCount++;
} catch (error) {
@@ -1246,6 +1252,25 @@ const VideoSourceConfig = ({
}
className='px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-lg bg-white dark:bg-gray-800 text-gray-900 dark:text-gray-100'
/>
+
+ {/* 成人内容标记复选框 */}
+
+
+ setNewSource((prev) => ({ ...prev, is_adult: e.target.checked }))
+ }
+ className='w-4 h-4 text-red-600 bg-gray-100 border-gray-300 rounded focus:ring-red-500 dark:bg-gray-700 dark:border-gray-600'
+ />
+
+