import { useState, useEffect } from 'react'; import { readYamlConfig, updateYamlConfig } from '../../utils/yamlHelper'; export default function Youtube() { const [config, setConfig] = useState({ youtubeGraphicsOptions: 720, youtubeClipTime: 0, youtubeDuration: 480, youtubeCookiePath: '' }); const [loading, setLoading] = useState(false); // 读取配置 useEffect(() => { const loadConfig = async () => { const yamlConfig = await readYamlConfig(); if (yamlConfig) { setConfig({ youtubeGraphicsOptions: yamlConfig.youtubeGraphicsOptions || 720, youtubeClipTime: yamlConfig.youtubeClipTime || 0, youtubeDuration: yamlConfig.youtubeDuration || 480, youtubeCookiePath: yamlConfig.youtubeCookiePath || '' }); } }; loadConfig(); }, []); // 保存配置 const handleSave = async () => { setLoading(true); try { const success = await updateYamlConfig({ youtubeGraphicsOptions: config.youtubeGraphicsOptions, youtubeClipTime: config.youtubeClipTime, youtubeDuration: config.youtubeDuration, youtubeCookiePath: config.youtubeCookiePath }); if (success) { document.getElementById('youtube-toast-success').classList.remove('hidden'); setTimeout(() => { document.getElementById('youtube-toast-success').classList.add('hidden'); }, 3000); } } catch (error) { console.error('保存配置失败:', error); } finally { setLoading(false); } }; // 重置配置 const handleReset = async () => { const yamlConfig = await readYamlConfig(); if (yamlConfig) { setConfig({ youtubeGraphicsOptions: yamlConfig.youtubeGraphicsOptions || 720, youtubeClipTime: yamlConfig.youtubeClipTime || 0, youtubeDuration: yamlConfig.youtubeDuration || 480, youtubeCookiePath: yamlConfig.youtubeCookiePath || '' }); } }; return (
{/* 成功提示 */}
配置保存成功!

YouTube 配置

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

基础配置

{/* Cookie路径配置 */}
setConfig({ ...config, youtubeCookiePath: e.target.value })} placeholder="请输入Cookie.txt文件路径..." className="input input-bordered w-full" />
{/* 数值配置部分 */}
setConfig({ ...config, youtubeClipTime: parseInt(e.target.value) })} className="input input-bordered" />
setConfig({ ...config, youtubeDuration: parseInt(e.target.value) })} className="input input-bordered" />
{/* 保存按钮 */}
); }