import { useState, useEffect } from 'react'; import { readYamlConfig, updateYamlConfig } from '../../utils/yamlHelper'; export default function Bili() { const [config, setConfig] = useState({ biliSessData: '', biliDuration: 480, biliIntroLenLimit: 50, biliDisplayCover: true, biliDisplayInfo: true, biliDisplayIntro: true, biliDisplayOnline: true, biliDisplaySummary: false, biliUseBBDown: false, biliCDN: 0, biliDownloadMethod: 0, biliResolution: 5 }); const [loading, setLoading] = useState(false); // 读取配置 useEffect(() => { const loadConfig = async () => { const yamlConfig = await readYamlConfig(); if (yamlConfig) { setConfig({ biliSessData: yamlConfig.biliSessData || '', biliDuration: yamlConfig.biliDuration || 480, biliIntroLenLimit: yamlConfig.biliIntroLenLimit || 50, biliDisplayCover: yamlConfig.biliDisplayCover ?? true, biliDisplayInfo: yamlConfig.biliDisplayInfo ?? true, biliDisplayIntro: yamlConfig.biliDisplayIntro ?? true, biliDisplayOnline: yamlConfig.biliDisplayOnline ?? true, biliDisplaySummary: yamlConfig.biliDisplaySummary ?? false, biliUseBBDown: yamlConfig.biliUseBBDown ?? false, biliCDN: yamlConfig.biliCDN || 0, biliDownloadMethod: yamlConfig.biliDownloadMethod || 0, biliResolution: yamlConfig.biliResolution || 5 }); } }; loadConfig(); }, []); // 保存配置 const handleSave = async () => { setLoading(true); try { const success = await updateYamlConfig({ biliSessData: config.biliSessData, biliDuration: config.biliDuration, biliIntroLenLimit: config.biliIntroLenLimit, biliDisplayCover: config.biliDisplayCover, biliDisplayInfo: config.biliDisplayInfo, biliDisplayIntro: config.biliDisplayIntro, biliDisplayOnline: config.biliDisplayOnline, biliDisplaySummary: config.biliDisplaySummary, biliUseBBDown: config.biliUseBBDown, biliCDN: config.biliCDN, biliDownloadMethod: config.biliDownloadMethod, biliResolution: config.biliResolution }); if (success) { // 使用 daisyUI 的 toast 提示 document.getElementById('toast-success').classList.remove('hidden'); setTimeout(() => { document.getElementById('toast-success').classList.add('hidden'); }, 3000); } } catch (error) { console.error('保存配置失败:', error); } finally { setLoading(false); } }; // 重置配置 const handleReset = async () => { const yamlConfig = await readYamlConfig(); if (yamlConfig) { setConfig({ biliSessData: yamlConfig.biliSessData || '', biliDuration: yamlConfig.biliDuration || 480, biliIntroLenLimit: yamlConfig.biliIntroLenLimit || 50, biliDisplayCover: yamlConfig.biliDisplayCover ?? true, biliDisplayInfo: yamlConfig.biliDisplayInfo ?? true, biliDisplayIntro: yamlConfig.biliDisplayIntro ?? true, biliDisplayOnline: yamlConfig.biliDisplayOnline ?? true, biliDisplaySummary: yamlConfig.biliDisplaySummary ?? false, biliUseBBDown: yamlConfig.biliUseBBDown ?? false, biliCDN: yamlConfig.biliCDN || 0, biliDownloadMethod: yamlConfig.biliDownloadMethod || 0, biliResolution: yamlConfig.biliResolution || 5 }); } }; return (
{/* 成功提示 */}
配置保存成功!

Bilibili 配置

{/* 基础配置部分 */}

基础配置

{/* SESSDATA配置 */}
setConfig({ ...config, biliSessData: e.target.value })} placeholder="请输入Bilibili SESSDATA" className="input input-bordered w-full" />
{/* 数值配置部分 */}
setConfig({ ...config, biliDuration: parseInt(e.target.value) })} className="input input-bordered" />
setConfig({ ...config, biliIntroLenLimit: parseInt(e.target.value) })} className="input input-bordered" />
{/* 开关配置部分 */}
{/* 下拉选择配置部分 */}
{/* 保存按钮 */}
) }