"use client"; import { useState, useEffect } from "react"; import { Bot, RefreshCw, Server } from "lucide-react"; interface BotStatus { bot: { enabled: boolean; polling: boolean }; hugo: { running: boolean; starting: boolean }; } export default function BotPage() { const [status, setStatus] = useState(null); const [restarting, setRestarting] = useState(false); async function fetchStatus() { try { const res = await fetch("/api/bot/status"); const data = await res.json(); setStatus(data); } catch { setStatus(null); } } async function restartHugo() { setRestarting(true); try { await fetch("/api/bot/restart", { method: "POST" }); } catch { /* ignore */ } setTimeout(async () => { await fetchStatus(); setRestarting(false); }, 3000); } useEffect(() => { fetchStatus(); const timer = setInterval(fetchStatus, 10000); return () => clearInterval(timer); }, []); return (

Bot 管理

{/* Bot Status */}

Telegram Bot

{status?.bot.enabled ? "已配置,随服务自动启动" : "未配置 TG_BOT_TOKEN"}
{/* Hugo Status */}

Hugo Server

{status?.hugo.running ? "运行中 — localhost:1313" : status?.hugo.starting ? "启动中..." : "已停止"}
); }