diff --git a/bot.py b/bot.py
index 9a5d47291..68068a9f9 100644
--- a/bot.py
+++ b/bot.py
@@ -51,15 +51,15 @@ def init_env():
with open(".env", "w") as f:
f.write("ENVIRONMENT=prod")
- # 检测.env.prod文件是否存在
- if not os.path.exists(".env.prod"):
- logger.error("检测到.env.prod文件不存在")
- shutil.copy("template.env", "./.env.prod")
+ # 检测.env.prod文件是否存在
+ if not os.path.exists(".env.prod"):
+ logger.error("检测到.env.prod文件不存在")
+ shutil.copy("template.env", "./.env.prod")
# 检测.env.dev文件是否存在,不存在的话直接复制生产环境配置
if not os.path.exists(".env.dev"):
logger.error("检测到.env.dev文件不存在")
- shutil.copy("template.env", "./.env.dev")
+ shutil.copy(".env.prod", "./.env.dev")
# 首先加载基础环境变量.env
if os.path.exists(".env"):
@@ -99,15 +99,25 @@ def load_env():
def load_logger():
logger.remove() # 移除默认配置
- logger.add(
- sys.stderr,
- format="{time:YYYY-MM-DD HH:mm:ss.SSS} |> {level: <7} |> {name:.<8}:{function:.<8}:{line: >4} -> {message}",
- colorize=True,
- level=os.getenv("LOG_LEVEL", "INFO"), # 根据环境设置日志级别,默认为INFO
- filter=lambda record: "nonebot" not in record["name"]
- )
+ if os.getenv("ENVIRONMENT") == "dev":
+ logger.add(
+ sys.stderr,
+ format="{time:YYYY-MM-DD HH:mm:ss.SSS} |> {level: <7} |> {name:.<8}:{function:.<8}:{line: >4} -> {message}",
+ colorize=True,
+ level=os.getenv("LOG_LEVEL", "DEBUG"), # 根据环境设置日志级别,默认为DEBUG
+ )
+ else:
+ logger.add(
+ sys.stderr,
+ format="{time:YYYY-MM-DD HH:mm:ss.SSS} |> {level: <7} |> {name:.<8}:{function:.<8}:{line: >4} -> {message}",
+ colorize=True,
+ level=os.getenv("LOG_LEVEL", "INFO"), # 根据环境设置日志级别,默认为INFO
+ filter=lambda record: "nonebot" not in record["name"]
+ )
diff --git a/src/plugins/config_reload/__init__.py b/src/plugins/config_reload/__init__.py
new file mode 100644
index 000000000..ddb7fa754
--- /dev/null
+++ b/src/plugins/config_reload/__init__.py
@@ -0,0 +1,10 @@
+from nonebot import get_app
+from .api import router
+from loguru import logger
+
+# 获取主应用实例并挂载路由
+app = get_app()
+app.include_router(router, prefix="/api")
+
+# 打印日志,方便确认API已注册
+logger.success("配置重载API已注册,可通过 /api/reload-config 访问")
\ No newline at end of file
diff --git a/src/plugins/config_reload/api.py b/src/plugins/config_reload/api.py
new file mode 100644
index 000000000..4202ba9bd
--- /dev/null
+++ b/src/plugins/config_reload/api.py
@@ -0,0 +1,17 @@
+from fastapi import APIRouter, HTTPException
+from src.plugins.chat.config import BotConfig
+import os
+
+# 创建APIRouter而不是FastAPI实例
+router = APIRouter()
+
+@router.post("/reload-config")
+async def reload_config():
+ try:
+ bot_config_path = os.path.join(BotConfig.get_config_dir(), "bot_config.toml")
+ global_config = BotConfig.load_config(config_path=bot_config_path)
+ return {"message": "配置重载成功", "status": "success"}
+ except FileNotFoundError as e:
+ raise HTTPException(status_code=404, detail=str(e))
+ except Exception as e:
+ raise HTTPException(status_code=500, detail=f"重载配置时发生错误: {str(e)}")
\ No newline at end of file
diff --git a/src/plugins/config_reload/test.py b/src/plugins/config_reload/test.py
new file mode 100644
index 000000000..b3b8a9e92
--- /dev/null
+++ b/src/plugins/config_reload/test.py
@@ -0,0 +1,3 @@
+import requests
+response = requests.post("http://localhost:8080/api/reload-config")
+print(response.json())
\ No newline at end of file