fix: 修复 WebUI 源码缺失、环境检测路径及文档说明

- 调整 .gitignore,避免误忽略 webui/src/lib/ 和 webui/src/components/env/
- 补齐 WebUI 缺失的 lib 工具函数、API 封装及环境检测组件
- 修复 /api/env/check 使用相对路径导致启动目录不同时检测失败的问题
- 更新中/英/西三语 README 的 WebUI 开发调试与生产构建说明
This commit is contained in:
程序员阿江(Relakkes)
2026-07-01 23:32:10 +08:00
parent 92c98e658e
commit 076dcba978
9 changed files with 528 additions and 28 deletions

View File

@@ -25,6 +25,7 @@ import asyncio
import os
import sys
import subprocess
from pathlib import Path
import uvicorn
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
@@ -33,6 +34,9 @@ from fastapi.responses import FileResponse
from .routers import crawler_router, data_router, websocket_router
# Project root directory (used for running subprocesses like uv run main.py)
PROJECT_ROOT = Path(__file__).parent.parent
app = FastAPI(
title="MediaCrawler WebUI API",
description="API for controlling MediaCrawler from WebUI",
@@ -86,6 +90,7 @@ async def check_environment():
"""Check if MediaCrawler environment is configured correctly"""
try:
# Run uv run main.py --help command to check environment
# Use PROJECT_ROOT so it works regardless of where uvicorn was started
if sys.platform == "win32":
loop = asyncio.get_running_loop()
process = await loop.run_in_executor(
@@ -94,7 +99,7 @@ async def check_environment():
["uv", "run", "main.py", "--help"],
capture_output=True,
timeout=30.0,
cwd="."
cwd=str(PROJECT_ROOT)
)
)
stdout, stderr = process.stdout, process.stderr # bytes
@@ -103,7 +108,7 @@ async def check_environment():
"uv", "run", "main.py", "--help",
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
cwd="." # Project root directory
cwd=str(PROJECT_ROOT) # Project root directory
)
stdout, stderr = await asyncio.wait_for(
process.communicate(),