新增路由器、主机客户端和共享协议模块,支持多主机部署模式: - 路由器作为中央节点管理主机连接和消息路由 - 主机客户端作为工作节点运行本地代理 - 共享协议定义通信消息格式 - 新增独立运行模式standalone.py - 更新配置系统支持路由模式
36 lines
1.1 KiB
Python
36 lines
1.1 KiB
Python
import yaml
|
|
from pathlib import Path
|
|
from typing import List, Optional
|
|
|
|
_CONFIG_PATH = Path(__file__).parent / "keyring.yaml"
|
|
|
|
|
|
def _load() -> dict:
|
|
with open(_CONFIG_PATH, "r", encoding="utf-8") as f:
|
|
return yaml.safe_load(f) or {}
|
|
|
|
|
|
_cfg = _load()
|
|
|
|
FEISHU_APP_ID: str = _cfg["FEISHU_APP_ID"]
|
|
FEISHU_APP_SECRET: str = _cfg["FEISHU_APP_SECRET"]
|
|
OPENAI_BASE_URL: str = _cfg["OPENAI_BASE_URL"]
|
|
OPENAI_API_KEY: str = _cfg["OPENAI_API_KEY"]
|
|
OPENAI_MODEL: str = _cfg.get("OPENAI_MODEL", "glm-4.7")
|
|
WORKING_DIR: Path = Path(_cfg.get("WORKING_DIR", Path.home())).expanduser().resolve()
|
|
METASO_API_KEY: str = _cfg.get("METASO_API_KEY", "")
|
|
|
|
ROUTER_MODE: bool = _cfg.get("ROUTER_MODE", False)
|
|
ROUTER_SECRET: str = _cfg.get("ROUTER_SECRET", "")
|
|
|
|
ALLOWED_OPEN_IDS: List[str] = _cfg.get("ALLOWED_OPEN_IDS", [])
|
|
if ALLOWED_OPEN_IDS and not isinstance(ALLOWED_OPEN_IDS, list):
|
|
ALLOWED_OPEN_IDS = [str(ALLOWED_OPEN_IDS)]
|
|
|
|
|
|
def is_user_allowed(open_id: str) -> bool:
|
|
"""Check if a user is allowed to use the bot."""
|
|
if not ALLOWED_OPEN_IDS:
|
|
return True
|
|
return open_id in ALLOWED_OPEN_IDS
|